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