RTEMS 6.1-rc4
Loading...
Searching...
No Matches
Data Structures | Macros | Functions
irq-server.c File Reference

This source file contains the interrupt server implementation. More...

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

Data Structures

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_COUNT
 

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 and argument at the interrupt vector on the interrupt server.
 
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 and argument from the interrupt vector and the interrupt server.
 
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 installed at the interrupt vector and interrupt server.
 
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_status_code rtems_interrupt_server_create (rtems_interrupt_server_control *s, const rtems_interrupt_server_config *config, uint32_t *server_index)
 Creates an interrupt server.
 
rtems_status_code rtems_interrupt_server_delete (uint32_t server_index)
 Deletes the interrupt server.
 
rtems_status_code rtems_interrupt_server_entry_initialize (uint32_t server_index, rtems_interrupt_server_entry *entry)
 Initializes the interrupt server entry.
 
void rtems_interrupt_server_action_prepend (rtems_interrupt_server_entry *entry, rtems_interrupt_server_action *action, rtems_interrupt_handler handler, void *arg)
 Prepends the interrupt server action to the list of actions of the interrupt server entry.
 
void rtems_interrupt_server_entry_submit (rtems_interrupt_server_entry *entry)
 Submits the interrupt server entry to be serviced by the interrupt server.
 
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 interrupt server.
 
void rtems_interrupt_server_entry_destroy (rtems_interrupt_server_entry *entry)
 Destroys the interrupt server entry.
 
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 interrupt server request.
 
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 at the interrupt vector and the source interrupt server to the destination interrupt server.
 
rtems_status_code rtems_interrupt_server_suspend (uint32_t server_index)
 Suspends the interrupt server.
 
rtems_status_code rtems_interrupt_server_resume (uint32_t server_index)
 Resumes the interrupt server.
 
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 interrupt server.
 

Detailed Description

This source file contains the interrupt server implementation.