RTEMS 6.1-rc6
Loading...
Searching...
No Matches
Functions | Variables
irq-generic.c File Reference

This source file contains the generic interrupt controller support implementation. More...

#include <bsp/irq-generic.h>
#include <rtems/malloc.h>

Functions

RTEMS_WEAK rtems_interrupt_entry ** bsp_interrupt_get_dispatch_table_slot (rtems_vector_number index)
 Gets a reference to the interrupt handler table slot associated with the index.
 
rtems_status_code bsp_interrupt_check_and_lock (rtems_vector_number vector, rtems_interrupt_handler routine)
 Checks the vector and routine. When the checks were successful, the interrupt support lock will be obtained.
 
rtems_interrupt_entrybsp_interrupt_entry_find (rtems_vector_number vector, rtems_interrupt_handler routine, void *arg, rtems_interrupt_entry ***previous_next)
 
void bsp_interrupt_initialize (void)
 Initialize Interrupt Manager implementation.
 
rtems_status_code rtems_interrupt_entry_install (rtems_vector_number vector, rtems_option options, rtems_interrupt_entry *entry)
 Installs the interrupt entry at the interrupt vector.
 

Variables

rtems_interrupt_entrybsp_interrupt_dispatch_table [BSP_INTERRUPT_DISPATCH_TABLE_SIZE]
 Each member of this table references the first installed entry at the corresponding interrupt vector or is NULL.
 
uint8_t bsp_interrupt_handler_unique_table [(BSP_INTERRUPT_DISPATCH_TABLE_SIZE+7+1)/8]
 This table contains a bit map which indicates if an entry is unique or shared.
 

Detailed Description

This source file contains the generic interrupt controller support implementation.

Function Documentation

◆ bsp_interrupt_check_and_lock()

rtems_status_code bsp_interrupt_check_and_lock ( rtems_vector_number  vector,
rtems_interrupt_handler  handler 
)

Checks the vector and routine. When the checks were successful, the interrupt support lock will be obtained.

Parameters
vectoris the interrupt vector number to check.
routineis the routine to check.
Return values
RTEMS_SUCCESSFULThe requested operation was successful.
RTEMS_INCORRECT_STATEThe interrupt support was not initialized.
RTEMS_CALLED_FROM_ISRThe function was called from within interrupt context.
RTEMS_INVALID_ADDRESSThe routine parameter was NULL.
RTEMS_INVALID_IDThere was no interrupt vector associated with the number specified by vector.

◆ bsp_interrupt_get_dispatch_table_slot()

RTEMS_WEAK rtems_interrupt_entry ** bsp_interrupt_get_dispatch_table_slot ( rtems_vector_number  index)

Gets a reference to the interrupt handler table slot associated with the index.

Returns
Returns a reference to the interrupt handler table slot associated with the index.

Variable Documentation

◆ bsp_interrupt_handler_unique_table

uint8_t bsp_interrupt_handler_unique_table[(BSP_INTERRUPT_DISPATCH_TABLE_SIZE+7+1)/8]

This table contains a bit map which indicates if an entry is unique or shared.

If the bit associated with a vector is set, then the entry is unique, otherwise it may be shared. If the bit with index BSP_INTERRUPT_DISPATCH_TABLE_SIZE is set, then the interrupt support is initialized, otherwise it is not initialized.