StuBS
ACPI Namespace Reference

Abstracts the ACPI standard that provides interfaces for hardware detection, device configuration, and energy management. More...

Classes

struct  RSDP
 Root System Description Pointer (RSDP) More...
 
struct  SDTH
 System Description Table Header (SDTH) More...
 
struct  RSDT
 Root System Description Table (RSDT) More...
 
struct  XSDT
 Extended System Description Table (XSDT) More...
 
struct  SubHeader
 Helper structure. More...
 
struct  MADT
 Multiple APIC Description Table (MADT) More...
 
struct  Address
 ACPI address format. More...
 

Functions

bool init ()
 Initialize the ACPI description table. More...
 
unsigned count ()
 Number of entries in the description table.
 
SDTHget (unsigned num)
 Get entry of description table by index. More...
 
SDTHget (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)
 

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

◆ get() [1/2]

SDTH * ACPI::get ( char  a,
char  b,
char  c,
char  d 
)

Get entry of description table by four character identifier.

Parameters
afirst character of identifier
bsecond character of identifier
cthird character of identifier
dforth and last character of identifier
Returns
Pointer to corresponding entry or nullptr if not available

◆ get() [2/2]

SDTH * ACPI::get ( unsigned  num)

Get entry of description table by index.

Parameters
numindex in description table
Returns
Pointer to corresponding entry or nullptr if not available

◆ init()

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.

See also
ACPI-Specification 5.2.5 Root System Description Pointer (RSDP)
ACPI-Specification 5.2.8 Extended System Description Table (XSDT)