C++ Crashkurs
Abstracts the ACPI standard that provides interfaces for hardware detection, device configuration, and energy management. More...
Structs | |
struct | Address |
ACPI address format. More... | |
struct | MADT |
Multiple APIC Description Table (MADT) More... | |
struct | RSDP |
Root System Description Pointer (RSDP) More... | |
struct | RSDT |
Root System Description Table (RSDT) More... | |
struct | SDTH |
System Description Table Header (SDTH) More... | |
struct | SubHeader |
Helper structure. More... | |
struct | XSDT |
Extended System Description Table (XSDT) More... | |
Enumerations | |
enum | AddressSpace : uint8_t { MEMORY = 0x0, IO = 0x1 } |
Functions | |
bool | init () |
Initialize the ACPI description table. More... | |
unsigned | count () |
Number of entries in the description table. | |
SDTH * | get (unsigned num) |
Get entry of description table by index. More... | |
SDTH * | get (char a, char b, char c, char d) |
Get entry of description table by four character identifier. More... | |
int | revision () |
Retrieve the revision from the Root System Description Pointer (RSDP) | |
Constants | |
const char * | RSDP_SIGNATURE = "RSD PTR " |
Detailed Description
Abstracts the ACPI standard that provides interfaces for hardware detection, device configuration, and energy management.
ACPI is the successor to APM (Advanced Power Management), aiming to give the operating system more control over the hardware. This extended control, for instance, enables the operating system to assign a particular amount of energy to every device (e.g., by disabling a device or changing to standby mode). For this purpose, BIOS and chipset provide a set of tables that describe the system and its components and provide routines the OS can call. These tables contain details about the system, such as the number of CPU cores and the LAPIC/IOAPIC, which are determined during system boot.
Function Documentation
bool ACPI::init | ( | ) |
Initialize the ACPI description table.
Searches physical memory ranges o 16-byte boundaries for a valid Root System Description Pointer (RSDP) structure signature and checksum. If present, the superseding Extended System Description Table (XSDT) is used.
SDTH * ACPI::get | ( | unsigned | num | ) |
Get entry of description table by index.
- Parameters
-
num index in description table
- Returns
- Pointer to corresponding entry or
nullptr
if not available
SDTH * ACPI::get | ( | char | a, |
char | b, | ||
char | c, | ||
char | d | ||
) |
Get entry of description table by four character identifier.
- Parameters
-
a first character of identifier b second character of identifier c third character of identifier d forth and last character of identifier
- Returns
- Pointer to corresponding entry or
nullptr
if not available