|
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