RTEMS
Files | Macros | Typedefs | Functions
Interrupt Manager

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. More...

Files

file  intr.h
 This header file defines the Interrupt Manager API.
 

Macros

#define rtems_interrupt_cause(_interrupt_to_cause)   %
 % More...
 
#define rtems_interrupt_clear(_interrupt_to_clear)   %
 % More...
 
#define rtems_interrupt_is_in_progress()   _ISR_Is_in_progress()
 %
 
#define rtems_interrupt_local_disable(_isr_cookie)   _ISR_Local_disable( _isr_cookie )
 % More...
 
#define rtems_interrupt_local_enable(_isr_cookie)   _ISR_Local_enable( _isr_cookie )
 % More...
 
#define rtems_interrupt_lock_acquire(_lock, _lock_context)   _ISR_lock_ISR_disable_and_acquire( _lock, _lock_context )
 % More...
 
#define rtems_interrupt_lock_acquire_isr(_lock, _lock_context)
 % More...
 
#define RTEMS_INTERRUPT_LOCK_DECLARE(_qualifier, _designator)   ISR_LOCK_DECLARE( _qualifier, _designator )
 % More...
 
#define RTEMS_INTERRUPT_LOCK_DEFINE(_qualifier, _designator, _name)   ISR_LOCK_DEFINE( _qualifier, _designator, _name )
 % More...
 
#define rtems_interrupt_lock_destroy(_lock)   _ISR_lock_Destroy( _lock )
 % More...
 
#define rtems_interrupt_lock_initialize(_lock, _name)   _ISR_lock_Initialize( _lock, _name )
 % More...
 
#define RTEMS_INTERRUPT_LOCK_INITIALIZER(_name)   ISR_LOCK_INITIALIZER( _name )
 % More...
 
#define rtems_interrupt_lock_interrupt_disable(_lock_context)   _ISR_lock_ISR_disable( _lock_context )
 % More...
 
#define RTEMS_INTERRUPT_LOCK_MEMBER(_designator)   ISR_LOCK_MEMBER( _designator )
 % More...
 
#define RTEMS_INTERRUPT_LOCK_REFERENCE(_designator, _target)   ISR_LOCK_REFERENCE( _designator, _target )
 % More...
 
#define rtems_interrupt_lock_release(_lock, _lock_context)   _ISR_lock_Release_and_ISR_enable( _lock, _lock_context )
 % More...
 
#define rtems_interrupt_lock_release_isr(_lock, _lock_context)
 % More...
 

Typedefs

typedef ISR_Vector_number rtems_vector_number
 %
 
typedef void(* rtems_isr_entry) (void *)
 Interrupt service routines installed by rtems_interrupt_catch() shall have this function pointer type.
 
typedef ISR_Handler rtems_isr
 %
 
typedef ISR_Level rtems_interrupt_level
 %
 
typedef ISR_lock_Control rtems_interrupt_lock
 %
 
typedef ISR_lock_Context rtems_interrupt_lock_context
 %
 

Functions

rtems_status_code rtems_interrupt_catch (rtems_isr_entry new_isr_handler, rtems_vector_number vector, rtems_isr_entry *old_isr_handler)
 % More...
 

Detailed Description

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.

Macro Definition Documentation

◆ rtems_interrupt_cause

#define rtems_interrupt_cause (   _interrupt_to_cause)    %

%

Parameters
_interrupt_to_cause%

Definition at line 134 of file intr.h.

◆ rtems_interrupt_clear

#define rtems_interrupt_clear (   _interrupt_to_clear)    %

%

Parameters
_interrupt_to_clear%

Definition at line 145 of file intr.h.

◆ rtems_interrupt_local_disable

#define rtems_interrupt_local_disable (   _isr_cookie)    _ISR_Local_disable( _isr_cookie )

%

Parameters
_isr_cookie%

Definition at line 222 of file intr.h.

◆ rtems_interrupt_local_enable

#define rtems_interrupt_local_enable (   _isr_cookie)    _ISR_Local_enable( _isr_cookie )

%

Parameters
_isr_cookie%

Definition at line 234 of file intr.h.

◆ rtems_interrupt_lock_acquire

#define rtems_interrupt_lock_acquire (   _lock,
  _lock_context 
)    _ISR_lock_ISR_disable_and_acquire( _lock, _lock_context )

%

Parameters
_lock%
_lock_context%

Definition at line 257 of file intr.h.

◆ rtems_interrupt_lock_acquire_isr

#define rtems_interrupt_lock_acquire_isr (   _lock,
  _lock_context 
)
Value:
&( _lock )->Lock, \
&( _lock_context )->Lock_context \
)
void _SMP_lock_Acquire(SMP_lock_Control *lock, SMP_lock_Context *context)
Acquires an SMP lock.
Definition: smplock.c:36

%

Parameters
_lock%
_lock_context%

Definition at line 272 of file intr.h.

◆ RTEMS_INTERRUPT_LOCK_DECLARE

#define RTEMS_INTERRUPT_LOCK_DECLARE (   _qualifier,
  _designator 
)    ISR_LOCK_DECLARE( _qualifier, _designator )

%

Parameters
_qualifier%
_designator%

Definition at line 302 of file intr.h.

◆ RTEMS_INTERRUPT_LOCK_DEFINE

#define RTEMS_INTERRUPT_LOCK_DEFINE (   _qualifier,
  _designator,
  _name 
)    ISR_LOCK_DEFINE( _qualifier, _designator, _name )

%

Parameters
_qualifier%
_designator%
_name%

Definition at line 318 of file intr.h.

◆ rtems_interrupt_lock_destroy

#define rtems_interrupt_lock_destroy (   _lock)    _ISR_lock_Destroy( _lock )

%

Parameters
_lock%

Definition at line 330 of file intr.h.

◆ rtems_interrupt_lock_initialize

#define rtems_interrupt_lock_initialize (   _lock,
  _name 
)    _ISR_lock_Initialize( _lock, _name )

%

Parameters
_lock%
_name%

Definition at line 343 of file intr.h.

◆ RTEMS_INTERRUPT_LOCK_INITIALIZER

#define RTEMS_INTERRUPT_LOCK_INITIALIZER (   _name)    ISR_LOCK_INITIALIZER( _name )

%

Parameters
_name%

Definition at line 355 of file intr.h.

◆ rtems_interrupt_lock_interrupt_disable

#define rtems_interrupt_lock_interrupt_disable (   _lock_context)    _ISR_lock_ISR_disable( _lock_context )

%

Parameters
_lock_context%

Definition at line 366 of file intr.h.

◆ RTEMS_INTERRUPT_LOCK_MEMBER

#define RTEMS_INTERRUPT_LOCK_MEMBER (   _designator)    ISR_LOCK_MEMBER( _designator )

%

Parameters
_designator%

Definition at line 378 of file intr.h.

◆ RTEMS_INTERRUPT_LOCK_REFERENCE

#define RTEMS_INTERRUPT_LOCK_REFERENCE (   _designator,
  _target 
)    ISR_LOCK_REFERENCE( _designator, _target )

%

Parameters
_designator%
_target%

Definition at line 392 of file intr.h.

◆ rtems_interrupt_lock_release

#define rtems_interrupt_lock_release (   _lock,
  _lock_context 
)    _ISR_lock_Release_and_ISR_enable( _lock, _lock_context )

%

Parameters
_lock%
_lock_context%

Definition at line 406 of file intr.h.

◆ rtems_interrupt_lock_release_isr

#define rtems_interrupt_lock_release_isr (   _lock,
  _lock_context 
)
Value:
&( _lock )->Lock, \
&( _lock_context )->Lock_context \
)
#define _SMP_lock_Release(lock, context)
Releases an SMP lock.
Definition: smplock.h:304

%

Parameters
_lock%
_lock_context%

Definition at line 421 of file intr.h.

Function Documentation

◆ rtems_interrupt_catch()

rtems_status_code rtems_interrupt_catch ( rtems_isr_entry  new_isr_handler,
rtems_vector_number  vector,
rtems_isr_entry old_isr_handler 
)

%

Parameters
new_isr_handler%
vector%
old_isr_handler%