Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik
ACPI Namespace Reference

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

Classes

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 ()
 
unsigned count ()
 
SDTHget (unsigned num)
 
SDTHget (char a, char b, char c, char d)
 
int revision ()
 

Variables

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.


Class Documentation

◆ ACPI::Address

struct ACPI::Address

ACPI address format.

The ACPI standard defines its own address format that is able to handle addresses both in memory address space, as well as IO-port address space.

Class Members
AddressSpace address_space
uint8_t register_bit_width
uint8_t register_bit_offset
uint8_t reserved
uint64_t address

◆ ACPI::RSDP

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.

See also
ACPI-Specification 5.2.5.3; Root System Description Pointer (RSDP) Structure
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]