RTEMS
Classes | Macros | Typedefs | Functions
irq-extension.h File Reference

Header file for the Interrupt Manager Extension. More...

#include <rtems.h>
#include <rtems/chain.h>

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

Detailed Description

Header file for the Interrupt Manager Extension.

Definition in file irq-extension.h.