diff options
Diffstat (limited to 'c-user/interrupt/introduction.rst')
-rw-r--r-- | c-user/interrupt/introduction.rst | 241 |
1 files changed, 241 insertions, 0 deletions
diff --git a/c-user/interrupt/introduction.rst b/c-user/interrupt/introduction.rst new file mode 100644 index 0000000..14ea275 --- /dev/null +++ b/c-user/interrupt/introduction.rst @@ -0,0 +1,241 @@ +.. SPDX-License-Identifier: CC-BY-SA-4.0 + +.. 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 +.. generated. If you find something that needs to be fixed or +.. worded better please post a report or patch to an RTEMS mailing list +.. or raise a bug report: +.. +.. https://www.rtems.org/bugs.html +.. +.. For information on updating and regenerating please refer to the How-To +.. section in the Software Requirements Engineering chapter of the +.. RTEMS Software Engineering manual. The manual is provided as a part of +.. a release. For development sources please refer to the online +.. documentation at: +.. +.. https://docs.rtems.org + +.. Generated from spec:/rtems/intr/if/group + +.. _InterruptManagerIntroduction: + +Introduction +============ + +.. The following list was generated from: +.. spec:/rtems/intr/if/catch +.. spec:/rtems/intr/if/disable +.. spec:/rtems/intr/if/enable +.. spec:/rtems/intr/if/flash +.. spec:/rtems/intr/if/local-disable +.. spec:/rtems/intr/if/local-enable +.. spec:/rtems/intr/if/is-in-progress +.. spec:/rtems/intr/if/lock-initialize +.. spec:/rtems/intr/if/lock-destroy +.. spec:/rtems/intr/if/lock-acquire +.. spec:/rtems/intr/if/lock-release +.. spec:/rtems/intr/if/lock-acquire-isr +.. spec:/rtems/intr/if/lock-release-isr +.. spec:/rtems/intr/if/lock-isr-disable +.. spec:/rtems/intr/if/lock-declare +.. spec:/rtems/intr/if/lock-define +.. spec:/rtems/intr/if/lock-initializer +.. spec:/rtems/intr/if/lock-member +.. spec:/rtems/intr/if/lock-reference +.. spec:/rtems/intr/if/entry-initializer +.. spec:/rtems/intr/if/entry-initialize +.. spec:/rtems/intr/if/entry-install +.. spec:/rtems/intr/if/entry-remove +.. spec:/rtems/intr/if/handler-install +.. spec:/rtems/intr/if/handler-remove +.. spec:/rtems/intr/if/vector-is-enabled +.. spec:/rtems/intr/if/vector-enable +.. spec:/rtems/intr/if/vector-disable +.. spec:/rtems/intr/if/is-pending +.. spec:/rtems/intr/if/raise +.. spec:/rtems/intr/if/raise-on +.. spec:/rtems/intr/if/clear +.. spec:/rtems/intr/if/get-affinity +.. spec:/rtems/intr/if/set-affinity +.. spec:/rtems/intr/if/get-attributes +.. spec:/rtems/intr/if/handler-iterate +.. spec:/rtems/intr/if/server-initialize +.. spec:/rtems/intr/if/server-create +.. spec:/rtems/intr/if/server-handler-install +.. spec:/rtems/intr/if/server-handler-remove +.. spec:/rtems/intr/if/server-set-affinity +.. spec:/rtems/intr/if/server-delete +.. spec:/rtems/intr/if/server-suspend +.. spec:/rtems/intr/if/server-resume +.. spec:/rtems/intr/if/server-move +.. spec:/rtems/intr/if/server-handler-iterate +.. spec:/rtems/intr/if/server-entry-initialize +.. spec:/rtems/intr/if/server-action-prepend +.. spec:/rtems/intr/if/server-entry-destroy +.. spec:/rtems/intr/if/server-entry-submit +.. spec:/rtems/intr/if/server-entry-move +.. spec:/rtems/intr/if/server-request-initialize +.. spec:/rtems/intr/if/server-request-set-vector +.. spec:/rtems/intr/if/server-request-destroy +.. spec:/rtems/intr/if/server-request-submit + +Any real-time executive must provide a mechanism for quick response to +externally generated interrupts to satisfy the critical time constraints of the +application. The Interrupt Manager provides this mechanism for RTEMS. This +manager permits quick interrupt response times by providing the critical +ability to alter task execution which allows a task to be preempted upon exit +from an ISR. The directives provided by the Interrupt Manager are: + +* :ref:`InterfaceRtemsInterruptCatch` - Establishes an interrupt service + routine. + +* :ref:`InterfaceRtemsInterruptDisable` - Disables the maskable interrupts on + the current processor. + +* :ref:`InterfaceRtemsInterruptEnable` - Restores the previous interrupt level + on the current processor. + +* :ref:`InterfaceRtemsInterruptFlash` - Flashes interrupts on the current + processor. + +* :ref:`InterfaceRtemsInterruptLocalDisable` - Disables the maskable interrupts + on the current processor. + +* :ref:`InterfaceRtemsInterruptLocalEnable` - Restores the previous interrupt + level on the current processor. + +* :ref:`InterfaceRtemsInterruptIsInProgress` - Checks if an ISR is in progress + on the current processor. + +* :ref:`InterfaceRtemsInterruptLockInitialize` - Initializes the ISR lock. + +* :ref:`InterfaceRtemsInterruptLockDestroy` - Destroys the ISR lock. + +* :ref:`InterfaceRtemsInterruptLockAcquire` - Acquires the ISR lock. + +* :ref:`InterfaceRtemsInterruptLockRelease` - Releases the ISR lock. + +* :ref:`InterfaceRtemsInterruptLockAcquireIsr` - Acquires the ISR lock from + within an ISR. + +* :ref:`InterfaceRtemsInterruptLockReleaseIsr` - Releases the ISR lock from + within an ISR. + +* :ref:`InterfaceRtemsInterruptLockInterruptDisable` - Disables maskable + interrupts on the current processor. + +* :ref:`InterfaceRTEMSINTERRUPTLOCKDECLARE` - Declares an ISR lock object. + +* :ref:`InterfaceRTEMSINTERRUPTLOCKDEFINE` - Defines an ISR lock object. + +* :ref:`InterfaceRTEMSINTERRUPTLOCKINITIALIZER` - Statically initializes an ISR + lock object. + +* :ref:`InterfaceRTEMSINTERRUPTLOCKMEMBER` - Defines an ISR lock member. + +* :ref:`InterfaceRTEMSINTERRUPTLOCKREFERENCE` - Defines an ISR lock object + reference. + +* :ref:`InterfaceRTEMSINTERRUPTENTRYINITIALIZER` - Statically initializes an + interrupt entry object. + +* :ref:`InterfaceRtemsInterruptEntryInitialize` - Initializes the interrupt + entry. + +* :ref:`InterfaceRtemsInterruptEntryInstall` - Installs the interrupt entry at + the interrupt vector. + +* :ref:`InterfaceRtemsInterruptEntryRemove` - Removes the interrupt entry from + the interrupt vector. + +* :ref:`InterfaceRtemsInterruptHandlerInstall` - Installs the interrupt handler + routine and argument at the interrupt vector. + +* :ref:`InterfaceRtemsInterruptHandlerRemove` - Removes the interrupt handler + routine and argument from the interrupt vector. + +* :ref:`InterfaceRtemsInterruptVectorIsEnabled` - Checks if the interrupt + vector is enabled. + +* :ref:`InterfaceRtemsInterruptVectorEnable` - Enables the interrupt vector. + +* :ref:`InterfaceRtemsInterruptVectorDisable` - Disables the interrupt vector. + +* :ref:`InterfaceRtemsInterruptIsPending` - Checks if the interrupt is pending. + +* :ref:`InterfaceRtemsInterruptRaise` - Raises the interrupt vector. + +* :ref:`InterfaceRtemsInterruptRaiseOn` - Raises the interrupt vector on the + processor. + +* :ref:`InterfaceRtemsInterruptClear` - Clears the interrupt vector. + +* :ref:`InterfaceRtemsInterruptGetAffinity` - Gets the processor affinity set + of the interrupt vector. + +* :ref:`InterfaceRtemsInterruptSetAffinity` - Sets the processor affinity set + of the interrupt vector. + +* :ref:`InterfaceRtemsInterruptGetAttributes` - Gets the attributes of the + interrupt vector. + +* :ref:`InterfaceRtemsInterruptHandlerIterate` - Iterates over all interrupt + handler installed at the interrupt vector. + +* :ref:`InterfaceRtemsInterruptServerInitialize` - Initializes the interrupt + server tasks. + +* :ref:`InterfaceRtemsInterruptServerCreate` - Creates an interrupt server. + +* :ref:`InterfaceRtemsInterruptServerHandlerInstall` - Installs the interrupt + handler routine and argument at the interrupt vector on the interrupt server. + +* :ref:`InterfaceRtemsInterruptServerHandlerRemove` - Removes the interrupt + handler routine and argument from the interrupt vector and the interrupt + server. + +* :ref:`InterfaceRtemsInterruptServerSetAffinity` - Sets the processor affinity + of the interrupt server. + +* :ref:`InterfaceRtemsInterruptServerDelete` - Deletes the interrupt server. + +* :ref:`InterfaceRtemsInterruptServerSuspend` - Suspends the interrupt server. + +* :ref:`InterfaceRtemsInterruptServerResume` - Resumes the interrupt server. + +* :ref:`InterfaceRtemsInterruptServerMove` - Moves the interrupt handlers + installed at the interrupt vector and the source interrupt server to the + destination interrupt server. + +* :ref:`InterfaceRtemsInterruptServerHandlerIterate` - Iterates over all + interrupt handler installed at the interrupt vector and interrupt server. + +* :ref:`InterfaceRtemsInterruptServerEntryInitialize` - Initializes the + interrupt server entry. + +* :ref:`InterfaceRtemsInterruptServerActionPrepend` - Prepends the interrupt + server action to the list of actions of the interrupt server entry. + +* :ref:`InterfaceRtemsInterruptServerEntryDestroy` - Destroys the interrupt + server entry. + +* :ref:`InterfaceRtemsInterruptServerEntrySubmit` - Submits the interrupt + server entry to be serviced by the interrupt server. + +* :ref:`InterfaceRtemsInterruptServerEntryMove` - Moves the interrupt server + entry to the interrupt server. + +* :ref:`InterfaceRtemsInterruptServerRequestInitialize` - Initializes the + interrupt server request. + +* :ref:`InterfaceRtemsInterruptServerRequestSetVector` - Sets the interrupt + vector in the interrupt server request. + +* :ref:`InterfaceRtemsInterruptServerRequestDestroy` - Destroys the interrupt + server request. + +* :ref:`InterfaceRtemsInterruptServerRequestSubmit` - Submits the interrupt + server request to be serviced by the interrupt server. |