StuBS
|
Abstracts the ACPI standard that provides interfaces for hardware detection, device configuration, and energy management. More...
Namespaces | |
namespace | MADS |
Classes | |
struct | Address |
ACPI address format. More... | |
Enumerations | |
enum class | AddressSpace : uint8_t { MEMORY = 0x0 , IO = 0x1 } |
Functions | |
static int | checksum (const void *pos, unsigned len) |
static const RSDP * | findRSDP (const void *pos, unsigned len) |
bool | init () |
Initialize the ACPI description table. | |
unsigned | count () |
Number of entries in the description table. | |
SDTH * | get (unsigned num) |
Get entry of description table by index. | |
SDTH * | get (char a, char b, char c, char d) |
Get entry of description table by four character identifier. | |
int | revision () |
Retrieve the revision from the Root System Description Pointer (RSDP) | |
Constants | |
static RSDP * | rsdp = 0 |
static RSDT * | rsdt = 0 |
static XSDT * | xsdt = 0 |
const char * | RSDP_SIGNATURE = "RSD PTR " |
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.
|
strong |
|
static |
|
static |
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.
unsigned ACPI::count | ( | ) |
Number of entries in the description table.
SDTH * ACPI::get | ( | unsigned | num | ) |
Get entry of description table by index.
num | index in description table |
nullptr
if not available SDTH * ACPI::get | ( | char | a, |
char | b, | ||
char | c, | ||
char | d | ||
) |
Get entry of description table by four character identifier.
a | first character of identifier |
b | second character of identifier |
c | third character of identifier |
d | forth and last character of identifier |
nullptr
if not available int ACPI::revision | ( | ) |
Retrieve the revision from the Root System Description Pointer (RSDP)
|
static |
|
static |
|
static |
const char* ACPI::RSDP_SIGNATURE = "RSD PTR " |