summaryrefslogtreecommitdiffstats
path: root/c-user/interrupt/introduction.rst
blob: 3d5c71d417d61f51ca5ec05360ff5548e387cfa0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
.. SPDX-License-Identifier: CC-BY-SA-4.0

.. Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
.. 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/cause
.. spec:/rtems/intr/if/clear
.. 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

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:`InterfaceRtemsInterruptCause` - Causes the interrupt.

* :ref:`InterfaceRtemsInterruptClear` - Clears the interrupt.

* :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.