Go to the documentation of this file.
21 #define INTERRUPT_BASE_ADDR 0xB000
22 #define INTERRUPT_BASICPEND (INTERRUPT_BASE_ADDR+0x200)
23 #define INTERRUPT_IRQPEND1 (INTERRUPT_BASE_ADDR+0x204)
24 #define INTERRUPT_IRQPEND2 (INTERRUPT_BASE_ADDR+0x208)
25 #define INTERRUPT_FIQCONTROL (INTERRUPT_BASE_ADDR+0x20C)
26 #define INTERRUPT_ENABLEIRQ1 (INTERRUPT_BASE_ADDR+0x210)
27 #define INTERRUPT_ENABLEIRQ2 (INTERRUPT_BASE_ADDR+0x214)
28 #define INTERRUPT_ENABLEBASICIRQ (INTERRUPT_BASE_ADDR+0x218)
29 #define INTERRUPT_DISABLEIRQ1 (INTERRUPT_BASE_ADDR+0x21C)
30 #define INTERRUPT_DISABLEIRQ2 (INTERRUPT_BASE_ADDR+0x220)
31 #define INTERRUPT_DISABLEBASICIRQ (INTERRUPT_BASE_ADDR+0x224)
32 #define IRQSYSTIMERC1 1
33 #define IRQSYSTIMERC3 3
91 for (
Size i = 0; i < 64; i++)
109 case 9:
return (basic & (1 << 11));
115 return (pend1 & (1 << vector));
117 return (pend2 & (1 << (vector-32)));
Interrupt controller interface.
virtual Result nextPending(uint &irq)
Retrieve the next pending interrupt (IRQ).
void write(u32 reg, u32 data)
write to memory mapped I/O register
#define INTERRUPT_DISABLEIRQ1
#define INTERRUPT_DISABLEIRQ2
unsigned int uint
Unsigned integer number.
virtual Result clear(uint vector)
Clear an IRQ vector.
#define INTERRUPT_ENABLEIRQ1
virtual bool isTriggered(uint vector)
Check if an IRQ vector is set.
BroadcomInterrupt()
Constructor.
unsigned int u32
Unsigned 32-bit number.
unsigned int Size
Any sane size indicator cannot go negative.
u32 read(u32 reg) const
read from memory mapped I/O register
#define INTERRUPT_BASICPEND
#define INTERRUPT_IRQPEND1
#define INTERRUPT_ENABLEIRQ2
virtual Result disable(uint vector)
Disable an IRQ vector.
virtual Result enable(uint vector)
Enable an IRQ vector.
#define INTERRUPT_IRQPEND2