Go to the documentation of this file.
18 #ifndef __LIBARCH_ARM_ARMGENERICINTERRUPT_H
19 #define __LIBARCH_ARM_ARMGENERICINTERRUPT_H
Interrupt controller interface.
bool isSoftwareInterrupt(const uint irq) const
Check if the given IRQ is an SGI.
Result initialize(bool performReset=true)
Initialize the controller.
virtual Result send(const uint targetCoreId, const uint irq)
Raise a software generated interrupt (SGI).
Input/Output operations specific to the ARM architecture.
virtual bool isTriggered(uint irq)
Check if an IRQ vector is set.
DistRegisters
Distributor register interface.
CpuRegisters
CPU register interface.
unsigned long Address
A memory address.
ARM Generic Interrupt Controller (GIC) version 2.
Size m_numIrqs
Number of interrupts supported.
unsigned int uint
Unsigned integer number.
static const Size NumberOfSoftwareInterrupts
Total number of software generated interrupts (SGI)
virtual Result enable(uint irq)
Enable hardware interrupt (IRQ).
virtual Result clear(uint irq)
Clear hardware interrupt (IRQ).
u32 m_savedIrqAck
Saved value of the Interrupt-Acknowledge register.
virtual Result disable(uint irq)
Disable hardware interrupt (IRQ).
unsigned int u32
Unsigned 32-bit number.
unsigned int Size
Any sane size indicator cannot go negative.
Size numRegisters(Size bits) const
Calculate the number of 32-bit registers needed to represent given number of bits per IRQ.
ARMGenericInterrupt(Address distRegisterBase, Address cpuRegisterBase)
Constructor.
ARMIO m_dist
ARM Generic Interrupt Controller Distributor Interface.
ARMIO m_cpu
ARM Generic Interrupt Controller CPU Interface.
virtual Result nextPending(uint &irq)
Retrieve the next pending interrupt (IRQ).