|WP1 - RTOS State of the Art Analysis: Deliverable D1.1 - RTOS Analysis|
|Prev||Chapter 10. RTEMS 4.5+||Next|
Interrupts are not converted to signals or other asynchronous events. They are handled by any C routine which was connected to the given interrupt vector. An interrupt handler can be established by any normal thread, kernel driver is not needed.
Functions to manage interrupt handlers are system specific and that is why only classic API is available.
This directive establishes new specified interrupt service routine (ISR) for the specified interrupt vector number. The previous ISR for the specified vector is returned by call.
This directive disables all maskable interrupts and returns the previous level. A later invocation of the rtems_interrupt_enable() directive should be used to restore the interrupt level.
This directive enables maskable interrupts to the level which was returned by a previous call to rtems_interrupt_disable(). Immediately prior to invoking this directive, maskable interrupts should be disabled by a call to rtems_interrupt_disable and will be enabled when this directive returns to the caller.
This directive temporarily enables disabled maskable interrupts to the level which was returned by a previous call to rtems_interrupt_disable().
This directive returns TRUE if the processor is currently servicing an interrupt and FALSE otherwise. A return value of TRUE indicates that the caller is an interrupt service routine, not a task. The directives available to an interrupt service routine are restricted.
Drivers are written as regular POSIX or RTEMS threads. Only ISR notification function is special case, which should transfer/invoke processing to regular threads.