summaryrefslogtreecommitdiffstats
path: root/c-user/interrupt/directives.rst
diff options
context:
space:
mode:
Diffstat (limited to 'c-user/interrupt/directives.rst')
-rw-r--r--c-user/interrupt/directives.rst91
1 files changed, 58 insertions, 33 deletions
diff --git a/c-user/interrupt/directives.rst b/c-user/interrupt/directives.rst
index 2d7dccf..80eddfd 100644
--- a/c-user/interrupt/directives.rst
+++ b/c-user/interrupt/directives.rst
@@ -1,6 +1,6 @@
.. SPDX-License-Identifier: CC-BY-SA-4.0
-.. Copyright (C) 2008, 2021 embedded brains GmbH (http://www.embedded-brains.de)
+.. Copyright (C) 2008, 2022 embedded brains GmbH & Co. KG
.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
.. This file is part of the RTEMS quality process and was automatically
@@ -63,9 +63,10 @@ Establishes an interrupt service routine.
This parameter is the interrupt vector number.
``old_isr_handler``
- This parameter is the pointer to an :c:type:`rtems_isr_entry` object. When
- the directive call is successful, the previous interrupt service routine
- established for this interrupt vector will be stored in this object.
+ This parameter is the pointer to an :ref:`InterfaceRtemsIsrEntry` object.
+ When the directive call is successful, the previous interrupt service
+ routine established for this interrupt vector will be stored in this
+ object.
.. rubric:: DESCRIPTION:
@@ -128,13 +129,13 @@ Disables the maskable interrupts on the current processor.
.. code-block:: c
- #define rtems_interrupt_disable( isr_cookie )
+ void rtems_interrupt_disable( rtems_interrupt_level isr_cookie );
.. rubric:: PARAMETERS:
``isr_cookie``
- This parameter is a variable of type :c:type:`rtems_interrupt_level` which
- will be used to save the previous interrupt level.
+ This parameter is a variable of type :ref:`InterfaceRtemsInterruptLevel`
+ which will be used to save the previous interrupt level.
.. rubric:: DESCRIPTION:
@@ -218,7 +219,7 @@ Restores the previous interrupt level on the current processor.
.. code-block:: c
- #define rtems_interrupt_enable( isr_cookie )
+ void rtems_interrupt_enable( rtems_interrupt_level isr_cookie );
.. rubric:: PARAMETERS:
@@ -280,7 +281,7 @@ Flashes interrupts on the current processor.
.. code-block:: c
- #define rtems_interrupt_flash( isr_cookie )
+ void rtems_interrupt_flash( rtems_interrupt_level isr_cookie );
.. rubric:: PARAMETERS:
@@ -338,13 +339,13 @@ Disables the maskable interrupts on the current processor.
.. code-block:: c
- #define rtems_interrupt_local_disable( isr_cookie )
+ void rtems_interrupt_local_disable( rtems_interrupt_level isr_cookie );
.. rubric:: PARAMETERS:
``isr_cookie``
- This parameter is a variable of type :c:type:`rtems_interrupt_level` which
- will be used to save the previous interrupt level.
+ This parameter is a variable of type :ref:`InterfaceRtemsInterruptLevel`
+ which will be used to save the previous interrupt level.
.. rubric:: DESCRIPTION:
@@ -428,7 +429,7 @@ Restores the previous interrupt level on the current processor.
.. code-block:: c
- #define rtems_interrupt_local_enable( isr_cookie )
+ void rtems_interrupt_local_enable( rtems_interrupt_level isr_cookie );
.. rubric:: PARAMETERS:
@@ -484,7 +485,7 @@ Checks if an ISR is in progress on the current processor.
.. code-block:: c
- #define rtems_interrupt_is_in_progress()
+ bool rtems_interrupt_is_in_progress( void );
.. rubric:: DESCRIPTION:
@@ -525,7 +526,10 @@ Initializes the ISR lock.
.. code-block:: c
- #define rtems_interrupt_lock_initialize( lock, name )
+ void rtems_interrupt_lock_initialize(
+ rtems_interrupt_lock *lock,
+ const char *name
+ );
.. rubric:: PARAMETERS:
@@ -561,7 +565,7 @@ Destroys the ISR lock.
.. code-block:: c
- #define rtems_interrupt_lock_destroy( lock )
+ void rtems_interrupt_lock_destroy( rtems_interrupt_lock *lock );
.. rubric:: PARAMETERS:
@@ -605,7 +609,10 @@ Acquires the ISR lock.
.. code-block:: c
- #define rtems_interrupt_lock_acquire( lock, lock_context )
+ void rtems_interrupt_lock_acquire(
+ rtems_interrupt_lock *lock,
+ rtems_interrupt_lock_context *lock_context
+ );
.. rubric:: PARAMETERS:
@@ -679,7 +686,7 @@ Releases the ISR lock.
.. code-block:: c
- #define rtems_interrupt_lock_release( lock, lock_context )
+ void rtems_interrupt_lock_release( rtems_interrupt_lock_context *lock );
.. rubric:: PARAMETERS:
@@ -737,7 +744,10 @@ Acquires the ISR lock from within an ISR.
.. code-block:: c
- #define rtems_interrupt_lock_acquire_isr( lock, lock_context )
+ void rtems_interrupt_lock_acquire_isr(
+ rtems_interrupt_lock *lock,
+ rtems_interrupt_lock_context *lock_context
+ );
.. rubric:: PARAMETERS:
@@ -800,7 +810,10 @@ Releases the ISR lock from within an ISR.
.. code-block:: c
- #define rtems_interrupt_lock_release_isr( lock, lock_context )
+ void rtems_interrupt_lock_release_isr(
+ rtems_interrupt_lock *lock,
+ rtems_interrupt_lock_context *lock_context
+ );
.. rubric:: PARAMETERS:
@@ -853,7 +866,9 @@ Disables maskable interrupts on the current processor.
.. code-block:: c
- #define rtems_interrupt_lock_interrupt_disable( lock_context )
+ void rtems_interrupt_lock_interrupt_disable(
+ rtems_interrupt_lock_context *lock_context
+ );
.. rubric:: PARAMETERS:
@@ -892,7 +907,7 @@ Declares an ISR lock object.
.. code-block:: c
- #define RTEMS_INTERRUPT_LOCK_DECLARE( specifier, designator )
+ RTEMS_INTERRUPT_LOCK_DECLARE( specifier, designator );
.. rubric:: PARAMETERS:
@@ -926,7 +941,7 @@ Defines an ISR lock object.
.. code-block:: c
- #define RTEMS_INTERRUPT_LOCK_DEFINE( specifier, designator, name )
+ RTEMS_INTERRUPT_LOCK_DEFINE( specifier, designator, const char *name );
.. rubric:: PARAMETERS:
@@ -968,7 +983,7 @@ Statically initializes an ISR lock object.
.. code-block:: c
- #define RTEMS_INTERRUPT_LOCK_INITIALIZER( name )
+ RTEMS_INTERRUPT_LOCK_INITIALIZER( const char *name );
.. rubric:: PARAMETERS:
@@ -1001,7 +1016,7 @@ Defines an ISR lock member.
.. code-block:: c
- #define RTEMS_INTERRUPT_LOCK_MEMBER( designator )
+ RTEMS_INTERRUPT_LOCK_MEMBER( designator );
.. rubric:: PARAMETERS:
@@ -1031,7 +1046,7 @@ Defines an ISR lock object reference.
.. code-block:: c
- #define RTEMS_INTERRUPT_LOCK_REFERENCE( designator, target )
+ RTEMS_INTERRUPT_LOCK_REFERENCE( designator, rtems_interrupt_lock *target );
.. rubric:: PARAMETERS:
@@ -1064,7 +1079,11 @@ Statically initializes an interrupt entry object.
.. code-block:: c
- #define RTEMS_INTERRUPT_ENTRY_INITIALIZER( routine, arg, info )
+ RTEMS_INTERRUPT_ENTRY_INITIALIZER(
+ rtems_interrupt_handler routine,
+ void *arg,
+ const char *info
+ );
.. rubric:: PARAMETERS:
@@ -2123,6 +2142,11 @@ Sets the processor affinity set of the interrupt vector.
The :ref:`InterfaceRtemsInterruptGetAttributes` directive may be used to check
if the processor affinity of an interrupt vector can be set.
+Only online processors of the affinity set specified by ``affinity_size`` and
+``affinity`` are considered by the directive. Other processors of the set are
+ignored. If the set contains no online processor, then the set is invalid and
+an error status is returned.
+
.. rubric:: CONSTRAINTS:
The following constraints apply to this directive:
@@ -2165,9 +2189,10 @@ Gets the attributes of the interrupt vector.
This parameter is the interrupt vector number.
``attributes``
- This parameter is the pointer to an :c:type:`rtems_interrupt_attributes`
- object. When the directive call is successful, the attributes of the
- interrupt vector will be stored in this object.
+ This parameter is the pointer to an
+ :ref:`InterfaceRtemsInterruptAttributes` object. When the directive call
+ is successful, the attributes of the interrupt vector will be stored in
+ this object.
.. rubric:: RETURN VALUES:
@@ -2395,9 +2420,9 @@ Creates an interrupt server.
``control``
This parameter is the pointer to an
- :c:type:`rtems_interrupt_server_control` object. When the directive call
- was successful, the ownership of the object was transferred from the caller
- of the directive to the interrupt server management.
+ :ref:`InterfaceRtemsInterruptServerControl` object. When the directive
+ call was successful, the ownership of the object was transferred from the
+ caller of the directive to the interrupt server management.
``config``
This parameter is the interrupt server configuration.