Re: [PATCH 04/41] rtems: Add rtems_interrupt_cause_on()

2021-07-22 Thread Sebastian Huber

On 21/07/2021 20:10, Gedare Bloom wrote:

One more thing, should we specifically say "on_processor" or
something, to make it clear what this means? When I first read the
function name, I thought it is "cause on a condition" so I was
confused.


Another thought with this "cause_on" directive, should we have an
opaque type for the cpu_index?


In the RTEMS API we use uint32_t currently. I think this is in line with 
other numbers such as a pending message count.


--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: [PATCH 04/41] rtems: Add rtems_interrupt_cause_on()

2021-07-21 Thread Gedare Bloom
On Wed, Jul 21, 2021 at 11:46 AM Gedare Bloom  wrote:
>
> On Wed, Jul 21, 2021 at 11:43 AM Gedare Bloom  wrote:
> >
> > Before we bake this into the API forever, I want to ask if "cause" is
> > the right word to use here? Often, "interrupt cause" is thought of as
> > a noun to mean what caused the interrupt, while the verb is usually
> > "raise" or post, trigger, etc. Because "cause" is both a noun and a
> > verb that mean something in this context, it may be better to use a
> > different verb. English is pretty much terrible.
> >
> > I don't have a major problem with sticking to "cause" but thought I'd
> > bring this up.
> >
> > On Mon, Jul 12, 2021 at 6:50 AM Sebastian Huber
> >  wrote:
> > >
> > > Document the currently not implemented rtems_interrupt_cause() and
> > > rtems_interrupt_clear().
> > >
> > > Update #3269.
> > > ---
> > >  cpukit/include/rtems/rtems/intr.h | 162 +++---
> > >  1 file changed, 125 insertions(+), 37 deletions(-)
> > >
> > > diff --git a/cpukit/include/rtems/rtems/intr.h 
> > > b/cpukit/include/rtems/rtems/intr.h
> > > index 178cf342df..a8b1b892b5 100644
> > > --- a/cpukit/include/rtems/rtems/intr.h
> > > +++ b/cpukit/include/rtems/rtems/intr.h
> > > @@ -54,6 +54,7 @@
> > >  #ifndef _RTEMS_RTEMS_INTR_H
> > >  #define _RTEMS_RTEMS_INTR_H
> > >
> > > +#include 
> > >  #include 
> > >  #include 
> > >  #include 
> > > @@ -99,7 +100,7 @@ typedef ISR_Handler rtems_isr;
> > >   * @ingroup RTEMSAPIClassicIntr
> > >   *
> > >   * @brief Interrupt service routines installed by 
> > > rtems_interrupt_catch() shall
> > > - *   have this function pointer type.
> > > + *   have this type.
> > >   */
> > >  #if CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE
> > >typedef ISR_Handler_entry rtems_isr_entry;
> > > @@ -502,42 +503,6 @@ rtems_status_code rtems_interrupt_catch(
> > >   */
> > >  #define rtems_interrupt_is_in_progress() _ISR_Is_in_progress()
> > >
> > > -/* Generated from spec:/rtems/intr/if/cause */
> > > -
> > > -/**
> > > - * @ingroup RTEMSAPIClassicIntr
> > > - *
> > > - * @brief Causes the interrupt.
> > > - *
> > > - * @param _vector is the vector number of the interrupt to cause.
> > > - *
> > > - * @par Constraints
> > > - * @parblock
> > > - * The following constraints apply to this directive:
> > > - *
> > > - * * The directive is not implemented.
> > > - * @endparblock
> > > - */
> > > -#define rtems_interrupt_cause( _vector ) do { } while ( 0 )
> > > -
> > > -/* Generated from spec:/rtems/intr/if/clear */
> > > -
> > > -/**
> > > - * @ingroup RTEMSAPIClassicIntr
> > > - *
> > > - * @brief Clears the interrupt.
> > > - *
> > > - * @param _vector is the vector number of the interrupt to clear.
> > > - *
> > > - * @par Constraints
> > > - * @parblock
> > > - * The following constraints apply to this directive:
> > > - *
> > > - * * The directive is not implemented.
> > > - * @endparblock
> > > - */
> > > -#define rtems_interrupt_clear( _vector ) do { } while ( 0 )
> > > -
> > >  /* Generated from spec:/rtems/intr/if/lock-initialize */
> > >
> > >  /**
> > > @@ -909,6 +874,129 @@ rtems_status_code rtems_interrupt_catch(
> > >  #define RTEMS_INTERRUPT_LOCK_REFERENCE( _designator, _target ) \
> > >ISR_LOCK_REFERENCE( _designator, _target )
> > >
> > > +/* Generated from spec:/rtems/intr/if/cause */
> > > +
> > > +/**
> > > + * @ingroup RTEMSAPIClassicIntr
> > > + *
> > > + * @brief Causes the interrupt vector.
> > > + *
> > > + * @param vector is the number of the interrupt vector to cause.
> > > + *
> > > + * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.
> > > + *
> > > + * @retval ::RTEMS_INVALID_ID There was no interrupt vector associated 
> > > with the
> > > + *   number specified by ``vector``.
> > > + *
> > > + * @retval ::RTEMS_UNSATISFIED The request to cause the interrupt vector 
> > > has
> > > + *   not been satisfied.
> > > + *
> > > + * @par Notes
> > > + * The rtems_interrupt_get_attributes() directive may be used to check 
> > > if an
> > > + * interrupt vector can be caused.
> > > + *
> > > + * @par Constraints
> > > + * @parblock
> > > + * The following constraints apply to this directive:
> > > + *
> > > + * * The directive may be called from within interrupt context.
> > > + *
> > > + * * The directive may be called from within device driver initialization
> > > + *   context.
> > > + *
> > > + * * The directive may be called from within task context.
> > > + *
> > > + * * The directive will not cause the calling task to be preempted.
> > > + * @endparblock
> > > + */
> > > +rtems_status_code rtems_interrupt_cause( rtems_vector_number vector );
> > > +
> > > +/* Generated from spec:/rtems/intr/if/cause-on */
> > > +
> > > +/**
> > > + * @ingroup RTEMSAPIClassicIntr
> > > + *
> > > + * @brief Causes the interrupt vector on the processor.
> > > + *
> > > + * @param vector is the number of the interrupt vector to cause.
> > > + *
> > > + * @param cpu_index is the index of the target processor of the interrupt
> > > 

Re: [PATCH 04/41] rtems: Add rtems_interrupt_cause_on()

2021-07-21 Thread Sebastian Huber

On 21/07/2021 19:43, Gedare Bloom wrote:

Before we bake this into the API forever, I want to ask if "cause" is
the right word to use here? Often, "interrupt cause" is thought of as
a noun to mean what caused the interrupt, while the verb is usually
"raise" or post, trigger, etc. Because "cause" is both a noun and a
verb that mean something in this context, it may be better to use a
different verb. English is pretty much terrible.

I don't have a major problem with sticking to "cause" but thought I'd
bring this up.


I just used the existing (not implemented) directive. We can also use 
rtems_interrupt_raise() (similar to the signal raise()). In this case we 
should remove rtems_interrupt_cause().


--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: [PATCH 04/41] rtems: Add rtems_interrupt_cause_on()

2021-07-21 Thread Gedare Bloom
On Wed, Jul 21, 2021 at 11:43 AM Gedare Bloom  wrote:
>
> Before we bake this into the API forever, I want to ask if "cause" is
> the right word to use here? Often, "interrupt cause" is thought of as
> a noun to mean what caused the interrupt, while the verb is usually
> "raise" or post, trigger, etc. Because "cause" is both a noun and a
> verb that mean something in this context, it may be better to use a
> different verb. English is pretty much terrible.
>
> I don't have a major problem with sticking to "cause" but thought I'd
> bring this up.
>
> On Mon, Jul 12, 2021 at 6:50 AM Sebastian Huber
>  wrote:
> >
> > Document the currently not implemented rtems_interrupt_cause() and
> > rtems_interrupt_clear().
> >
> > Update #3269.
> > ---
> >  cpukit/include/rtems/rtems/intr.h | 162 +++---
> >  1 file changed, 125 insertions(+), 37 deletions(-)
> >
> > diff --git a/cpukit/include/rtems/rtems/intr.h 
> > b/cpukit/include/rtems/rtems/intr.h
> > index 178cf342df..a8b1b892b5 100644
> > --- a/cpukit/include/rtems/rtems/intr.h
> > +++ b/cpukit/include/rtems/rtems/intr.h
> > @@ -54,6 +54,7 @@
> >  #ifndef _RTEMS_RTEMS_INTR_H
> >  #define _RTEMS_RTEMS_INTR_H
> >
> > +#include 
> >  #include 
> >  #include 
> >  #include 
> > @@ -99,7 +100,7 @@ typedef ISR_Handler rtems_isr;
> >   * @ingroup RTEMSAPIClassicIntr
> >   *
> >   * @brief Interrupt service routines installed by rtems_interrupt_catch() 
> > shall
> > - *   have this function pointer type.
> > + *   have this type.
> >   */
> >  #if CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE
> >typedef ISR_Handler_entry rtems_isr_entry;
> > @@ -502,42 +503,6 @@ rtems_status_code rtems_interrupt_catch(
> >   */
> >  #define rtems_interrupt_is_in_progress() _ISR_Is_in_progress()
> >
> > -/* Generated from spec:/rtems/intr/if/cause */
> > -
> > -/**
> > - * @ingroup RTEMSAPIClassicIntr
> > - *
> > - * @brief Causes the interrupt.
> > - *
> > - * @param _vector is the vector number of the interrupt to cause.
> > - *
> > - * @par Constraints
> > - * @parblock
> > - * The following constraints apply to this directive:
> > - *
> > - * * The directive is not implemented.
> > - * @endparblock
> > - */
> > -#define rtems_interrupt_cause( _vector ) do { } while ( 0 )
> > -
> > -/* Generated from spec:/rtems/intr/if/clear */
> > -
> > -/**
> > - * @ingroup RTEMSAPIClassicIntr
> > - *
> > - * @brief Clears the interrupt.
> > - *
> > - * @param _vector is the vector number of the interrupt to clear.
> > - *
> > - * @par Constraints
> > - * @parblock
> > - * The following constraints apply to this directive:
> > - *
> > - * * The directive is not implemented.
> > - * @endparblock
> > - */
> > -#define rtems_interrupt_clear( _vector ) do { } while ( 0 )
> > -
> >  /* Generated from spec:/rtems/intr/if/lock-initialize */
> >
> >  /**
> > @@ -909,6 +874,129 @@ rtems_status_code rtems_interrupt_catch(
> >  #define RTEMS_INTERRUPT_LOCK_REFERENCE( _designator, _target ) \
> >ISR_LOCK_REFERENCE( _designator, _target )
> >
> > +/* Generated from spec:/rtems/intr/if/cause */
> > +
> > +/**
> > + * @ingroup RTEMSAPIClassicIntr
> > + *
> > + * @brief Causes the interrupt vector.
> > + *
> > + * @param vector is the number of the interrupt vector to cause.
> > + *
> > + * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.
> > + *
> > + * @retval ::RTEMS_INVALID_ID There was no interrupt vector associated 
> > with the
> > + *   number specified by ``vector``.
> > + *
> > + * @retval ::RTEMS_UNSATISFIED The request to cause the interrupt vector 
> > has
> > + *   not been satisfied.
> > + *
> > + * @par Notes
> > + * The rtems_interrupt_get_attributes() directive may be used to check if 
> > an
> > + * interrupt vector can be caused.
> > + *
> > + * @par Constraints
> > + * @parblock
> > + * The following constraints apply to this directive:
> > + *
> > + * * The directive may be called from within interrupt context.
> > + *
> > + * * The directive may be called from within device driver initialization
> > + *   context.
> > + *
> > + * * The directive may be called from within task context.
> > + *
> > + * * The directive will not cause the calling task to be preempted.
> > + * @endparblock
> > + */
> > +rtems_status_code rtems_interrupt_cause( rtems_vector_number vector );
> > +
> > +/* Generated from spec:/rtems/intr/if/cause-on */
> > +
> > +/**
> > + * @ingroup RTEMSAPIClassicIntr
> > + *
> > + * @brief Causes the interrupt vector on the processor.
> > + *
> > + * @param vector is the number of the interrupt vector to cause.
> > + *
> > + * @param cpu_index is the index of the target processor of the interrupt
> > + *   vector to cause.
> > + *
> > + * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.
> > + *
> > + * @retval ::RTEMS_INVALID_ID There was no interrupt vector associated 
> > with the
> > + *   number specified by ``vector``.
> > + *
> > + * @retval ::RTEMS_NOT_CONFIGURED The processor specified by ``cpu_index`` 
> > was
>

Re: [PATCH 04/41] rtems: Add rtems_interrupt_cause_on()

2021-07-21 Thread Gedare Bloom
Before we bake this into the API forever, I want to ask if "cause" is
the right word to use here? Often, "interrupt cause" is thought of as
a noun to mean what caused the interrupt, while the verb is usually
"raise" or post, trigger, etc. Because "cause" is both a noun and a
verb that mean something in this context, it may be better to use a
different verb. English is pretty much terrible.

I don't have a major problem with sticking to "cause" but thought I'd
bring this up.

On Mon, Jul 12, 2021 at 6:50 AM Sebastian Huber
 wrote:
>
> Document the currently not implemented rtems_interrupt_cause() and
> rtems_interrupt_clear().
>
> Update #3269.
> ---
>  cpukit/include/rtems/rtems/intr.h | 162 +++---
>  1 file changed, 125 insertions(+), 37 deletions(-)
>
> diff --git a/cpukit/include/rtems/rtems/intr.h 
> b/cpukit/include/rtems/rtems/intr.h
> index 178cf342df..a8b1b892b5 100644
> --- a/cpukit/include/rtems/rtems/intr.h
> +++ b/cpukit/include/rtems/rtems/intr.h
> @@ -54,6 +54,7 @@
>  #ifndef _RTEMS_RTEMS_INTR_H
>  #define _RTEMS_RTEMS_INTR_H
>
> +#include 
>  #include 
>  #include 
>  #include 
> @@ -99,7 +100,7 @@ typedef ISR_Handler rtems_isr;
>   * @ingroup RTEMSAPIClassicIntr
>   *
>   * @brief Interrupt service routines installed by rtems_interrupt_catch() 
> shall
> - *   have this function pointer type.
> + *   have this type.
>   */
>  #if CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE
>typedef ISR_Handler_entry rtems_isr_entry;
> @@ -502,42 +503,6 @@ rtems_status_code rtems_interrupt_catch(
>   */
>  #define rtems_interrupt_is_in_progress() _ISR_Is_in_progress()
>
> -/* Generated from spec:/rtems/intr/if/cause */
> -
> -/**
> - * @ingroup RTEMSAPIClassicIntr
> - *
> - * @brief Causes the interrupt.
> - *
> - * @param _vector is the vector number of the interrupt to cause.
> - *
> - * @par Constraints
> - * @parblock
> - * The following constraints apply to this directive:
> - *
> - * * The directive is not implemented.
> - * @endparblock
> - */
> -#define rtems_interrupt_cause( _vector ) do { } while ( 0 )
> -
> -/* Generated from spec:/rtems/intr/if/clear */
> -
> -/**
> - * @ingroup RTEMSAPIClassicIntr
> - *
> - * @brief Clears the interrupt.
> - *
> - * @param _vector is the vector number of the interrupt to clear.
> - *
> - * @par Constraints
> - * @parblock
> - * The following constraints apply to this directive:
> - *
> - * * The directive is not implemented.
> - * @endparblock
> - */
> -#define rtems_interrupt_clear( _vector ) do { } while ( 0 )
> -
>  /* Generated from spec:/rtems/intr/if/lock-initialize */
>
>  /**
> @@ -909,6 +874,129 @@ rtems_status_code rtems_interrupt_catch(
>  #define RTEMS_INTERRUPT_LOCK_REFERENCE( _designator, _target ) \
>ISR_LOCK_REFERENCE( _designator, _target )
>
> +/* Generated from spec:/rtems/intr/if/cause */
> +
> +/**
> + * @ingroup RTEMSAPIClassicIntr
> + *
> + * @brief Causes the interrupt vector.
> + *
> + * @param vector is the number of the interrupt vector to cause.
> + *
> + * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.
> + *
> + * @retval ::RTEMS_INVALID_ID There was no interrupt vector associated with 
> the
> + *   number specified by ``vector``.
> + *
> + * @retval ::RTEMS_UNSATISFIED The request to cause the interrupt vector has
> + *   not been satisfied.
> + *
> + * @par Notes
> + * The rtems_interrupt_get_attributes() directive may be used to check if an
> + * interrupt vector can be caused.
> + *
> + * @par Constraints
> + * @parblock
> + * The following constraints apply to this directive:
> + *
> + * * The directive may be called from within interrupt context.
> + *
> + * * The directive may be called from within device driver initialization
> + *   context.
> + *
> + * * The directive may be called from within task context.
> + *
> + * * The directive will not cause the calling task to be preempted.
> + * @endparblock
> + */
> +rtems_status_code rtems_interrupt_cause( rtems_vector_number vector );
> +
> +/* Generated from spec:/rtems/intr/if/cause-on */
> +
> +/**
> + * @ingroup RTEMSAPIClassicIntr
> + *
> + * @brief Causes the interrupt vector on the processor.
> + *
> + * @param vector is the number of the interrupt vector to cause.
> + *
> + * @param cpu_index is the index of the target processor of the interrupt
> + *   vector to cause.
> + *
> + * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.
> + *
> + * @retval ::RTEMS_INVALID_ID There was no interrupt vector associated with 
> the
> + *   number specified by ``vector``.
> + *
> + * @retval ::RTEMS_NOT_CONFIGURED The processor specified by ``cpu_index`` 
> was
> + *   not configured to be used by the application.
> + *
> + * @retval ::RTEMS_INCORRECT_STATE The processor specified by ``cpu_index`` 
> was
> + *   configured to be used by the application, however, it was not online.
> + *
> + * @retval ::RTEMS_UNSATISFIED The request to cause the interrupt vector has
> + *   not been satisfied.
> + *
> + * @par Notes
> 

[PATCH 04/41] rtems: Add rtems_interrupt_cause_on()

2021-07-12 Thread Sebastian Huber
Document the currently not implemented rtems_interrupt_cause() and
rtems_interrupt_clear().

Update #3269.
---
 cpukit/include/rtems/rtems/intr.h | 162 +++---
 1 file changed, 125 insertions(+), 37 deletions(-)

diff --git a/cpukit/include/rtems/rtems/intr.h 
b/cpukit/include/rtems/rtems/intr.h
index 178cf342df..a8b1b892b5 100644
--- a/cpukit/include/rtems/rtems/intr.h
+++ b/cpukit/include/rtems/rtems/intr.h
@@ -54,6 +54,7 @@
 #ifndef _RTEMS_RTEMS_INTR_H
 #define _RTEMS_RTEMS_INTR_H
 
+#include 
 #include 
 #include 
 #include 
@@ -99,7 +100,7 @@ typedef ISR_Handler rtems_isr;
  * @ingroup RTEMSAPIClassicIntr
  *
  * @brief Interrupt service routines installed by rtems_interrupt_catch() shall
- *   have this function pointer type.
+ *   have this type.
  */
 #if CPU_SIMPLE_VECTORED_INTERRUPTS == TRUE
   typedef ISR_Handler_entry rtems_isr_entry;
@@ -502,42 +503,6 @@ rtems_status_code rtems_interrupt_catch(
  */
 #define rtems_interrupt_is_in_progress() _ISR_Is_in_progress()
 
-/* Generated from spec:/rtems/intr/if/cause */
-
-/**
- * @ingroup RTEMSAPIClassicIntr
- *
- * @brief Causes the interrupt.
- *
- * @param _vector is the vector number of the interrupt to cause.
- *
- * @par Constraints
- * @parblock
- * The following constraints apply to this directive:
- *
- * * The directive is not implemented.
- * @endparblock
- */
-#define rtems_interrupt_cause( _vector ) do { } while ( 0 )
-
-/* Generated from spec:/rtems/intr/if/clear */
-
-/**
- * @ingroup RTEMSAPIClassicIntr
- *
- * @brief Clears the interrupt.
- *
- * @param _vector is the vector number of the interrupt to clear.
- *
- * @par Constraints
- * @parblock
- * The following constraints apply to this directive:
- *
- * * The directive is not implemented.
- * @endparblock
- */
-#define rtems_interrupt_clear( _vector ) do { } while ( 0 )
-
 /* Generated from spec:/rtems/intr/if/lock-initialize */
 
 /**
@@ -909,6 +874,129 @@ rtems_status_code rtems_interrupt_catch(
 #define RTEMS_INTERRUPT_LOCK_REFERENCE( _designator, _target ) \
   ISR_LOCK_REFERENCE( _designator, _target )
 
+/* Generated from spec:/rtems/intr/if/cause */
+
+/**
+ * @ingroup RTEMSAPIClassicIntr
+ *
+ * @brief Causes the interrupt vector.
+ *
+ * @param vector is the number of the interrupt vector to cause.
+ *
+ * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.
+ *
+ * @retval ::RTEMS_INVALID_ID There was no interrupt vector associated with the
+ *   number specified by ``vector``.
+ *
+ * @retval ::RTEMS_UNSATISFIED The request to cause the interrupt vector has
+ *   not been satisfied.
+ *
+ * @par Notes
+ * The rtems_interrupt_get_attributes() directive may be used to check if an
+ * interrupt vector can be caused.
+ *
+ * @par Constraints
+ * @parblock
+ * The following constraints apply to this directive:
+ *
+ * * The directive may be called from within interrupt context.
+ *
+ * * The directive may be called from within device driver initialization
+ *   context.
+ *
+ * * The directive may be called from within task context.
+ *
+ * * The directive will not cause the calling task to be preempted.
+ * @endparblock
+ */
+rtems_status_code rtems_interrupt_cause( rtems_vector_number vector );
+
+/* Generated from spec:/rtems/intr/if/cause-on */
+
+/**
+ * @ingroup RTEMSAPIClassicIntr
+ *
+ * @brief Causes the interrupt vector on the processor.
+ *
+ * @param vector is the number of the interrupt vector to cause.
+ *
+ * @param cpu_index is the index of the target processor of the interrupt
+ *   vector to cause.
+ *
+ * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.
+ *
+ * @retval ::RTEMS_INVALID_ID There was no interrupt vector associated with the
+ *   number specified by ``vector``.
+ *
+ * @retval ::RTEMS_NOT_CONFIGURED The processor specified by ``cpu_index`` was
+ *   not configured to be used by the application.
+ *
+ * @retval ::RTEMS_INCORRECT_STATE The processor specified by ``cpu_index`` was
+ *   configured to be used by the application, however, it was not online.
+ *
+ * @retval ::RTEMS_UNSATISFIED The request to cause the interrupt vector has
+ *   not been satisfied.
+ *
+ * @par Notes
+ * The rtems_interrupt_get_attributes() directive may be used to check if an
+ * interrupt vector can be caused on a processor.
+ *
+ * @par Constraints
+ * @parblock
+ * The following constraints apply to this directive:
+ *
+ * * The directive may be called from within interrupt context.
+ *
+ * * The directive may be called from within device driver initialization
+ *   context.
+ *
+ * * The directive may be called from within task context.
+ *
+ * * The directive will not cause the calling task to be preempted.
+ * @endparblock
+ */
+rtems_status_code rtems_interrupt_cause_on(
+  rtems_vector_number vector,
+  uint32_tcpu_index
+);
+
+/* Generated from spec:/rtems/intr/if/clear */
+
+/**
+ * @ingroup RTEMSAPIClassicIntr
+ *
+ * @brief Clears the interrupt vector.
+ *
+ * @param vector is the number