forked from Imagelibrary/rtems
SPARC BSPs: irq-shared.c code style clean-up
This commit is contained in:
@@ -29,52 +29,52 @@ static inline int bsp_irq_cpu(int irq)
|
|||||||
|
|
||||||
static inline void bsp_dispatch_irq(int irq)
|
static inline void bsp_dispatch_irq(int irq)
|
||||||
{
|
{
|
||||||
bsp_interrupt_handler_entry *e =
|
bsp_interrupt_handler_entry *e =
|
||||||
&bsp_interrupt_handler_table[bsp_interrupt_handler_index(irq)];
|
&bsp_interrupt_handler_table[bsp_interrupt_handler_index(irq)];
|
||||||
|
|
||||||
while (e != NULL) {
|
while (e != NULL) {
|
||||||
(*e->handler)(e->arg);
|
(*e->handler)(e->arg);
|
||||||
e = e->next;
|
e = e->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Called directly from IRQ trap handler TRAP[0x10..0x1F] = IRQ[0..15] */
|
/* Called directly from IRQ trap handler TRAP[0x10..0x1F] = IRQ[0..15] */
|
||||||
static void BSP_ISR_handler(rtems_vector_number vector)
|
static void BSP_ISR_handler(rtems_vector_number vector)
|
||||||
{
|
{
|
||||||
int irq = vector - 0x10;
|
int irq = vector - 0x10;
|
||||||
|
|
||||||
/* Let BSP fixup and/or handle incomming IRQ */
|
/* Let BSP fixup and/or handle incomming IRQ */
|
||||||
irq = bsp_irq_fixup(irq);
|
irq = bsp_irq_fixup(irq);
|
||||||
|
|
||||||
bsp_dispatch_irq(irq);
|
bsp_dispatch_irq(irq);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialize interrupts */
|
/* Initialize interrupts */
|
||||||
void BSP_shared_interrupt_init(void)
|
void BSP_shared_interrupt_init(void)
|
||||||
{
|
{
|
||||||
rtems_vector_number vector;
|
rtems_vector_number vector;
|
||||||
rtems_isr_entry previous_isr;
|
rtems_isr_entry previous_isr;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i=0; i <= BSP_INTERRUPT_VECTOR_MAX_STD; i++) {
|
for (i=0; i <= BSP_INTERRUPT_VECTOR_MAX_STD; i++) {
|
||||||
#if defined(LEON3) && \
|
#if defined(LEON3) && \
|
||||||
(defined(RTEMS_SMP) || defined(RTEMS_MULTIPROCESSING))
|
(defined(RTEMS_SMP) || defined(RTEMS_MULTIPROCESSING))
|
||||||
/* Don't install IRQ handler on IPI interrupt */
|
/* Don't install IRQ handler on IPI interrupt */
|
||||||
if (i == LEON3_mp_irq)
|
if (i == LEON3_mp_irq)
|
||||||
continue;
|
continue;
|
||||||
#endif
|
#endif
|
||||||
vector = SPARC_ASYNCHRONOUS_TRAP(i) + 0x10;
|
vector = SPARC_ASYNCHRONOUS_TRAP(i) + 0x10;
|
||||||
rtems_interrupt_catch(BSP_ISR_handler, vector, &previous_isr);
|
rtems_interrupt_catch(BSP_ISR_handler, vector, &previous_isr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initalize interrupt support */
|
/* Initalize interrupt support */
|
||||||
bsp_interrupt_initialize();
|
bsp_interrupt_initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Callback from bsp_interrupt_initialize() */
|
/* Callback from bsp_interrupt_initialize() */
|
||||||
rtems_status_code bsp_interrupt_facility_initialize(void)
|
rtems_status_code bsp_interrupt_facility_initialize(void)
|
||||||
{
|
{
|
||||||
return RTEMS_SUCCESSFUL;
|
return RTEMS_SUCCESSFUL;
|
||||||
}
|
}
|
||||||
|
|
||||||
rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
|
rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector)
|
||||||
@@ -105,8 +105,8 @@ void BSP_shared_interrupt_unmask(int irq)
|
|||||||
|
|
||||||
void BSP_shared_interrupt_clear(int irq)
|
void BSP_shared_interrupt_clear(int irq)
|
||||||
{
|
{
|
||||||
/* We don't have to interrupt lock here, because the register is only
|
/* We don't have to interrupt lock here, because the register is only
|
||||||
* written and self clearing
|
* written and self clearing
|
||||||
*/
|
*/
|
||||||
BSP_Clear_interrupt(irq);
|
BSP_Clear_interrupt(irq);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user