RTEMS
|
Header file for the Interrupt Manager Extension. More...
Go to the source code of this file.
Classes | |
struct | rtems_interrupt_server_action |
An interrupt server action. More... | |
struct | rtems_interrupt_server_control |
An interrupt server control. More... | |
struct | rtems_interrupt_server_config |
An interrupt server configuration. More... | |
struct | rtems_interrupt_server_entry |
An interrupt server entry. More... | |
struct | rtems_interrupt_server_request |
An interrupt server request. More... | |
Macros | |
#define | RTEMS_INTERRUPT_UNIQUE ((rtems_option) 0x00000001) |
Makes the interrupt handler unique. Prevents other handler from using the same interrupt vector. | |
#define | RTEMS_INTERRUPT_SHARED ((rtems_option) 0x00000000) |
Allows that this interrupt handler may share a common interrupt vector with other handler. | |
#define | RTEMS_INTERRUPT_REPLACE ((rtems_option) 0x00000002) |
Forces that this interrupt handler replaces the first handler with the same argument. | |
#define | RTEMS_INTERRUPT_IS_UNIQUE(options) ((options) & RTEMS_INTERRUPT_UNIQUE) |
Returns true if the interrupt handler unique option is set. | |
#define | RTEMS_INTERRUPT_IS_SHARED(options) (!RTEMS_INTERRUPT_IS_UNIQUE( options)) |
Returns true if the interrupt handler shared option is set. | |
#define | RTEMS_INTERRUPT_IS_REPLACE(options) ((options) & RTEMS_INTERRUPT_REPLACE) |
Returns true if the interrupt handler replace option is set. | |
#define | RTEMS_INTERRUPT_SERVER_DEFAULT 0 |
The interrupt server index of the default interrupt server. | |
Typedefs | |
typedef void(* | rtems_interrupt_handler) (void *) |
Interrupt handler routine type. | |
typedef void(* | rtems_interrupt_per_handler_routine) (void *, const char *, rtems_option, rtems_interrupt_handler, void *) |
Interrupt handler iteration routine type. More... | |
typedef struct rtems_interrupt_server_action | rtems_interrupt_server_action |
An interrupt server action. More... | |
typedef struct rtems_interrupt_server_control | rtems_interrupt_server_control |
An interrupt server control. More... | |
Functions | |
rtems_status_code | rtems_interrupt_handler_install (rtems_vector_number vector, const char *info, rtems_option options, rtems_interrupt_handler handler, void *arg) |
Installs the interrupt handler routine handler for the interrupt vector with number vector. More... | |
rtems_status_code | rtems_interrupt_handler_remove (rtems_vector_number vector, rtems_interrupt_handler handler, void *arg) |
Removes the interrupt handler routine handler with argument arg for the interrupt vector with number vector. More... | |
rtems_status_code | rtems_interrupt_handler_iterate (rtems_vector_number vector, rtems_interrupt_per_handler_routine routine, void *arg) |
Iterates over all installed interrupt handler of the interrupt vector with number vector. More... | |
rtems_status_code | rtems_interrupt_set_affinity (rtems_vector_number vector, size_t affinity_size, const cpu_set_t *affinity) |
Sets the processor affinity set of an interrupt vector. More... | |
rtems_status_code | rtems_interrupt_get_affinity (rtems_vector_number vector, size_t affinity_size, cpu_set_t *affinity) |
Gets the processor affinity set of an interrupt vector. More... | |
rtems_status_code | rtems_interrupt_server_initialize (rtems_task_priority priority, size_t stack_size, rtems_mode modes, rtems_attribute attributes, uint32_t *server_count) |
Initializes the interrupt server tasks. More... | |
rtems_status_code | rtems_interrupt_server_create (rtems_interrupt_server_control *control, const rtems_interrupt_server_config *config, uint32_t *server_index) |
Creates an interrupt server. More... | |
rtems_status_code | rtems_interrupt_server_delete (uint32_t server_index) |
Destroys the interrupt server. More... | |
rtems_status_code | rtems_interrupt_server_handler_install (uint32_t server_index, rtems_vector_number vector, const char *info, rtems_option options, rtems_interrupt_handler handler, void *arg) |
Installs the interrupt handler routine handler for the interrupt vector with number vector on the server server. More... | |
rtems_status_code | rtems_interrupt_server_handler_remove (uint32_t server_index, rtems_vector_number vector, rtems_interrupt_handler handler, void *arg) |
Removes the interrupt handler routine handler with argument arg for the interrupt vector with number vector from the server server. More... | |
rtems_status_code | rtems_interrupt_server_handler_iterate (uint32_t server_index, rtems_vector_number vector, rtems_interrupt_per_handler_routine routine, void *arg) |
Iterates over all interrupt handler of the interrupt vector with number vector which are installed on the interrupt server specified by server. More... | |
rtems_status_code | rtems_interrupt_server_move (uint32_t source_server_index, rtems_vector_number vector, uint32_t destination_server_index) |
Moves the interrupt handlers installed on the specified source interrupt server to the destination interrupt server. More... | |
rtems_status_code | rtems_interrupt_server_suspend (uint32_t server_index) |
Suspends the specified interrupt server. More... | |
rtems_status_code | rtems_interrupt_server_resume (uint32_t server_index) |
Resumes the specified interrupt server. More... | |
rtems_status_code | rtems_interrupt_server_set_affinity (uint32_t server_index, size_t affinity_size, const cpu_set_t *affinity, rtems_task_priority priority) |
Sets the processor affinity of the specified interrupt server. More... | |
rtems_status_code | rtems_interrupt_server_entry_initialize (uint32_t server_index, rtems_interrupt_server_entry *entry) |
Initializes the specified interrupt server entry. More... | |
void | rtems_interrupt_server_action_prepend (rtems_interrupt_server_entry *entry, rtems_interrupt_server_action *action, rtems_interrupt_handler handler, void *arg) |
Prepends the specified interrupt server action to the list of actions of the specified interrupt server entry. More... | |
void | rtems_interrupt_server_entry_submit (rtems_interrupt_server_entry *entry) |
Submits the specified interrupt server entry so that its interrupt server actions can be invoked by the specified interrupt server. More... | |
rtems_status_code | rtems_interrupt_server_entry_move (rtems_interrupt_server_entry *entry, uint32_t destination_server_index) |
Moves the interrupt server entry to the specified destination interrupt server. More... | |
void | rtems_interrupt_server_entry_destroy (rtems_interrupt_server_entry *entry) |
Destroys the specified interrupt server entry. More... | |
rtems_status_code | rtems_interrupt_server_request_initialize (uint32_t server_index, rtems_interrupt_server_request *request, rtems_interrupt_handler handler, void *arg) |
Initializes the specified interrupt server request. More... | |
static __inline__ void | rtems_interrupt_server_request_set_vector (rtems_interrupt_server_request *request, rtems_vector_number vector) |
Sets the interrupt vector in the specified interrupt server request. More... | |
static __inline__ void | rtems_interrupt_server_request_submit (rtems_interrupt_server_request *request) |
Submits the specified interrupt server request so that its interrupt server action can be invoked by the specified interrupt server. More... | |
static __inline__ void | rtems_interrupt_server_request_destroy (rtems_interrupt_server_request *request) |
Destroys the specified interrupt server request. More... | |
Header file for the Interrupt Manager Extension.
Definition in file irq-extension.h.