mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2025-11-16 12:34:45 +00:00
2009-05-05 Jennifer Averett <jennifer.averett@OARcorp.com>
* new-exceptions/bspsupport/irq_supp.h: Split routine to allow bsps with nonstandard/non-existant pics to call with interrupts off.
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
2009-05-05 Jennifer Averett <jennifer.averett@OARcorp.com>
|
||||
|
||||
* new-exceptions/bspsupport/irq_supp.h: Split routine to allow bsps
|
||||
with nonstandard/non-existant pics to call with interrupts off.
|
||||
|
||||
2009-03-12 Joel Sherrill <joel.sherrill@OARcorp.com>
|
||||
|
||||
PR 1385/cpukit
|
||||
|
||||
@@ -66,6 +66,29 @@ struct _BSP_Exception_frame;
|
||||
*/
|
||||
int C_dispatch_irq_handler (struct _BSP_Exception_frame *frame, unsigned int excNum);
|
||||
|
||||
/*
|
||||
* Snippet to be used by PIC drivers and by bsp_irq_dispatch_list
|
||||
* traverses list of shared handlers for a given interrupt
|
||||
*
|
||||
*/
|
||||
|
||||
static inline void
|
||||
bsp_irq_dispatch_list_base(
|
||||
rtems_irq_connect_data *tbl,
|
||||
unsigned irq,
|
||||
rtems_irq_hdl sentinel
|
||||
)
|
||||
{
|
||||
rtems_irq_connect_data* vchain;
|
||||
for( vchain = &tbl[irq];
|
||||
((int)vchain != -1 && vchain->hdl != sentinel);
|
||||
vchain = (rtems_irq_connect_data*)vchain->next_handler )
|
||||
{
|
||||
vchain->hdl(vchain->handle);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Snippet to be used by PIC drivers;
|
||||
* enables interrupts, traverses list of
|
||||
@@ -90,13 +113,8 @@ bsp_irq_dispatch_list(
|
||||
/* Enable all interrupts */
|
||||
_ISR_Set_level(0);
|
||||
|
||||
rtems_irq_connect_data* vchain;
|
||||
for( vchain = &tbl[irq];
|
||||
((int)vchain != -1 && vchain->hdl != sentinel);
|
||||
vchain = (rtems_irq_connect_data*)vchain->next_handler )
|
||||
{
|
||||
vchain->hdl(vchain->handle);
|
||||
}
|
||||
|
||||
bsp_irq_dispatch_list_base( tbl, irq, sentinel );
|
||||
|
||||
/* Restore original level */
|
||||
_ISR_Set_level(l_orig);
|
||||
|
||||
Reference in New Issue
Block a user