19 #ifndef RTEMS_IRQ_EXTENSION_H 20 #define RTEMS_IRQ_EXTENSION_H 44 #define RTEMS_INTERRUPT_UNIQUE ((rtems_option) 0x00000001) 50 #define RTEMS_INTERRUPT_SHARED ((rtems_option) 0x00000000) 56 #define RTEMS_INTERRUPT_REPLACE ((rtems_option) 0x00000002) 61 #define RTEMS_INTERRUPT_IS_UNIQUE( options) \ 62 ((options) & RTEMS_INTERRUPT_UNIQUE) 67 #define RTEMS_INTERRUPT_IS_SHARED( options) \ 68 (!RTEMS_INTERRUPT_IS_UNIQUE( options)) 73 #define RTEMS_INTERRUPT_IS_REPLACE( options) \ 74 ((options) & RTEMS_INTERRUPT_REPLACE) 215 size_t affinity_size,
216 const cpu_set_t *affinity
233 size_t affinity_size,
254 #define RTEMS_INTERRUPT_SERVER_DEFAULT 0 268 unsigned long errors;
395 uint32_t *server_count
424 uint32_t *server_index
464 uint32_t server_index,
489 uint32_t server_index,
511 uint32_t server_index,
538 uint32_t source_server_index,
540 uint32_t destination_server_index
612 uint32_t server_index,
613 size_t affinity_size,
614 const cpu_set_t *affinity,
632 uint32_t server_index,
697 uint32_t destination_server_index
730 uint32_t server_index,
757 request->entry.vector = vector;
void rtems_interrupt_server_entry_destroy(rtems_interrupt_server_entry *entry)
Destroys the specified interrupt server entry.
rtems_status_code rtems_interrupt_server_resume(uint32_t server_index)
Resumes the specified interrupt server.
#define RTEMS_INTERRUPT_LOCK_MEMBER(_designator)
%
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 ...
An interrupt server entry.
uint32_t rtems_name
This type is used to represent a Classic API object name.
uint32_t rtems_option
This type is used to represent an option set.
rtems_status_code rtems_interrupt_server_entry_initialize(uint32_t server_index, rtems_interrupt_server_entry *entry)
Initializes the specified interrupt server entry.
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 ...
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...
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.
rtems_mode modes
The initial task modes of the interrupt server.
struct rtems_interrupt_server_action rtems_interrupt_server_action
An interrupt server action.
An interrupt server control.
static __inline__ void rtems_interrupt_server_request_destroy(rtems_interrupt_server_request *request)
Destroys the specified interrupt server request.
uint32_t rtems_task_priority
%
An interrupt server configuration.
size_t storage_size
The task storage size of the interrupt server.
rtems_attribute attributes
The task attributes of the interrupt server.
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 serv...
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.
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...
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
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 ...
void * storage_area
The task storage area of the interrupt server.
rtems_status_code rtems_interrupt_server_delete(uint32_t server_index)
Destroys the interrupt server.
struct rtems_interrupt_server_control rtems_interrupt_server_control
An interrupt server control.
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.
rtems_status_code rtems_interrupt_server_suspend(uint32_t server_index)
Suspends the specified interrupt server.
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.
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.
This header file defines the RTEMS Classic API.
uint32_t rtems_attribute
This type is used to represent Classic API attributes.
uint32_t rtems_mode
This type is used to represent a task mode set.
rtems_task_priority priority
The initial task priority of the interrupt server.
void(* rtems_interrupt_per_handler_routine)(void *, const char *, rtems_option, rtems_interrupt_handler, void *)
Interrupt handler iteration routine type.
Objects_Id rtems_id
Values of this type identify an RTEMS object.
void(* rtems_interrupt_handler)(void *)
Interrupt handler routine type.
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 in...
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 t...
An interrupt server action.
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.
#define RTEMS_INLINE_ROUTINE
Gives a hint to the compiler in a function declaration to inline this function.
ISR_Vector_number rtems_vector_number
%
An interrupt server request.
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...
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.
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 ser...
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.
rtems_name name
The task name of the interrupt server.