|
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 |