37#ifndef LIBBSP_SPARC_LEON3_BSP_IRQIMPL_H
38#define LIBBSP_SPARC_LEON3_BSP_IRQIMPL_H
75#define LEON3_IRQCTRL_ACQUIRE( _lock_context ) \
76 rtems_interrupt_lock_acquire( &LEON3_IrqCtrl_Lock, _lock_context )
83#define LEON3_IRQCTRL_RELEASE( _lock_context ) \
84 rtems_interrupt_lock_release( &LEON3_IrqCtrl_Lock, _lock_context )
89#if defined(LEON3_IRQAMP_BASE)
90#define LEON3_IrqCtrl_Regs ((irqamp *) LEON3_IRQAMP_BASE)
106#if defined(LEON3_IRQAMP_EXTENDED_INTERRUPT)
107#define LEON3_IrqCtrl_EIrq LEON3_IRQAMP_EXTENDED_INTERRUPT
125static inline uint32_t bsp_irq_fixup( uint32_t irq )
134 cpu_self = _LEON3_Get_current_processor();
136 eirq = IRQAMP_PEXTACK_EID_4_0_GET( eirq );
char rtems_interrupt_lock
This structure represents an ISR lock.
Definition: intr.h:532
irqamp * LEON3_IrqCtrl_Regs
This pointer provides the IRQ(A)MP register block address.
Definition: amba.c:121
void leon3_ext_irq_init(irqamp *regs)
Initializes the interrupt controller for the boot processor.
Definition: eirq.c:54
struct ambapp_dev * LEON3_IrqCtrl_Adev
This pointer provides the IRQ(A)MP device information block.
Definition: amba.c:122
uint32_t LEON3_IrqCtrl_EIrq
This object provides the interrupt number used to multiplex extended interrupts or is zero if no exte...
Definition: eirq.c:47
uint32_t LEON3_Cpu_Index
This object provides the index of the boot processor.
Definition: bspstart.c:64
rtems_interrupt_lock LEON3_IrqCtrl_Lock
This lock serializes the interrupt controller access.
Definition: eirq.c:50
This header file defines the IRQAMP register block interface.
This header file defines the RTEMS Classic API.
This structure defines the IRQ(A)MP register block memory map.
Definition: irqamp-regs.h:780
uint32_t pextack[16]
See Processor n extended interrupt acknowledge register (PEXTACK).
Definition: irqamp-regs.h:846