
Structs and methods related to the Advanced Configuration and Power Interface (ACPI)". More...
#include "types.h"
Classes | |
struct | ACPI::RSDP |
Root System Description Pointer (RSDP) More... | |
struct | ACPI::SDTH |
System Description Table Header (SDTH) More... | |
struct | ACPI::RSDT |
Root System Description Table (RSDT) More... | |
struct | ACPI::XSDT |
Extended System Description Table (XSDT) More... | |
struct | ACPI::SubHeader |
Helper structure. More... | |
struct | ACPI::MADT |
Multiple APIC Description Table (MADT) More... | |
struct | ACPI::Address |
ACPI address format. More... | |
struct | ACPI::MADS::LAPIC |
Processor Local APIC (LAPIC) Structure. More... | |
struct | ACPI::MADS::IOAPIC |
I/O APIC Structure. More... | |
struct | ACPI::MADS::Interrupt_Source_Override |
Interrupt Source Override Structure. More... | |
struct | ACPI::MADS::LAPIC_Address_Override |
Local APIC Address Override Structure. More... | |
union | ACPI::MADS::LAPIC_Address_Override.__unnamed__ |
struct | ACPI::MADS::LAPIC_Address_Override.__unnamed__.__unnamed__ |
Namespaces | |
ACPI | |
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. | |
Enumerations | |
enum | AddressSpace : uint8_t { MEMORY = 0x0, IO = 0x1 } |
enum | Type { Type_LAPIC = 0, Type_IOAPIC = 1, Type_Interrupt_Source_Override = 2, Type_LAPIC_Address_Override = 5 } |
Functions | |
bool | ACPI::init () |
unsigned | ACPI::count () |
SDTH * | ACPI::get (unsigned num) |
SDTH * | ACPI::get (char a, char b, char c, char d) |
int | ACPI::revision () |
Structs and methods related to the Advanced Configuration and Power Interface (ACPI)".
struct ACPI::RSDP |
Root System Description Pointer (RSDP)
The first step to using ACPI is finding the RSDP that is used to find the RSDT / XSDT, which themselves contain pointers to even more tables.
On UEFI systems, the RSDP can be found in the EFI_SYSTEM_TABLE; for non-UEFI systems we have to search for the signature 'RSD PTR ' in the EBDA (Extended Bios Data Area) or in the memory area to bis FFFFFh.
Class Members | ||
---|---|---|
char | signature[8] | |
uint8_t | checksum | |
char | oemid[6] | |
uint8_t | revision | |
uint32_t | rsdtaddress | |
uint32_t | length | |
uint64_t | xsdtaddress | |
uint8_t | extended_checksum | |
uint8_t | reserved[3] |
struct ACPI::Address |