StuBS
|
Information about the (extended) Advanced Programmable Interrupt Controller. More...
Enumerations | |
enum | Device { TIMER = 0 , KEYBOARD = 1 , COM1 = 4 , COM2 = 3 , COM3 = 4 , COM4 = 3 , FLOPPY = 6 , LPT1 = 7 , REALTIMECLOCK = 8 , PS2MOUSE = 12 , IDE1 = 14 , IDE2 = 15 } |
Historic order of interrupt lines (PIC) More... | |
Functions | |
bool | init () |
Executes system detection. More... | |
uint8_t | getIOAPICSlot (APIC::Device device) |
Returns the pin number the device is connected to. | |
uintptr_t | getIOAPICAddress () |
Queries the I/O-APIC address determined during system boot. More... | |
uint8_t | getIOAPICID () |
Queries of ID of the I/O-APIC determined during system boot. More... | |
uint8_t | getLogicalAPICID (uint8_t core) |
Returns the logical ID of the Local APIC passed for core. More... | |
uint8_t | getLAPICID (uint8_t core) |
Get the Local APIC ID of a CPU. More... | |
Variables | |
const uint8_t | INVALID_ID = 0xff |
Invalid APIC ID. More... | |
Information about the (extended) Advanced Programmable Interrupt Controller.
enum APIC::Device |
Historic order of interrupt lines (PIC)
Enumerator | |
---|---|
TIMER | Programmable Interrupt Timer (PIT) |
KEYBOARD | |
COM1 | First serial interface. |
COM2 | Second serial interface. |
COM3 | Third serial interface (shared with COM1) |
COM4 | Forth serial interface (shared with COM2) |
FLOPPY | Floppy device. |
LPT1 | Printer. |
REALTIMECLOCK | Real time clock. |
PS2MOUSE | Mouse. |
IDE1 | First hard disk. |
IDE2 | Second hard disk. |
uintptr_t APIC::getIOAPICAddress | ( | ) |
Queries the I/O-APIC address determined during system boot.
uint8_t APIC::getIOAPICID | ( | ) |
Queries of ID of the I/O-APIC determined during system boot.
uint8_t APIC::getLAPICID | ( | uint8_t | core | ) |
uint8_t APIC::getLogicalAPICID | ( | uint8_t | core | ) |
bool APIC::init | ( | ) |
Executes system detection.
Searches and evaluates the APIC entries in the ACPI table. This function recognizes a possibly existing multicore system. After successful detection, the number of available CPUs (which is equal to the number of local APICs) ) can be queried using the method Core::count().
true
if detection of the APIC entries was successful const uint8_t APIC::INVALID_ID = 0xff |
Invalid APIC ID.
The highest address is reserved according to xAPIC specification