RTEMS  5.0.0
Data Structures | Macros | Functions
irq-server.c File Reference

Generic BSP interrupt server implementation. More...

#include <stdlib.h>
#include <rtems.h>
#include <rtems/chain.h>
#include <rtems/score/assert.h>
#include <bsp/irq-generic.h>

Data Structures

struct  bsp_interrupt_server_context
 
struct  bsp_interrupt_server_iterate_entry
 
struct  bsp_interrupt_server_helper_data
 
struct  bsp_interrupt_server_handler_iterate_helper_data
 

Macros

#define BSP_INTERRUPT_SERVER_MANAGEMENT_VECTOR   (BSP_INTERRUPT_VECTOR_MAX + 1)
 

Functions

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

Detailed Description

Generic BSP interrupt server implementation.