StuBS
|
Namespaces | |
namespace | IOAPIC |
Abstraction of the I/O APIC that is used for management of external interrupts. | |
Functions | |
static Register | IOAPIC::read (Index reg) |
static void | IOAPIC::write (Index reg, Register value) |
static RedirectionTableEntry | IOAPIC::getRedirectionTableEntry (uint8_t slot) |
static void | IOAPIC::setRedirectionTableEntry (uint8_t slot, RedirectionTableEntry rt) |
static void | IOAPIC::setID (uint8_t id) |
void | IOAPIC::init () |
Initializes the I/O APIC. | |
void | IOAPIC::config (uint8_t slot, Core::Interrupt::Vector vector, TriggerMode trigger_mode=TriggerMode::EDGE, Polarity polarity=Polarity::HIGH) |
Creates a mapping between an interrupt vector and an external interrupt. | |
void | IOAPIC::allow (uint8_t slot) |
Enables the redirection of particular external interrupts to the CPU(s). | |
void | IOAPIC::forbid (uint8_t slot) |
Selectively masks external interrupts by slot number. | |
bool | IOAPIC::status (uint8_t slot) |
Check whether an external interrupt source is masked. | |
Constants | |
volatile Index * | IOAPIC::IOREGSEL_REG = reinterpret_cast<volatile Index*>(0xfec00000) |
IOAPIC registers memory mapped into the CPU's address space. | |
volatile Register * | IOAPIC::IOWIN_REG = reinterpret_cast<volatile Register*>(0xfec00010) |
IOAPIC registers memory mapped into the CPU's address space. | |
const Index | IOAPIC::IOAPICID_IDX = 0x00 |
const Index | IOAPIC::IOREDTBL_IDX = 0x10 |
const uint8_t | IOAPIC::slot_max = 24 |