Crate rsdt

source ·
Expand description

Definitions for the ACPI RSDT and XSDT system tables.

RSDT is the Root System Descriptor Table, whereas XSDT is the Extended System Descriptor Table. They are identical except that the XSDT uses 64-bit physical addresses to point to other ACPI SDTs, while the RSDT uses 32-bit physical addresses.

Note about alignment

Technically the RSDT contains a list of 32-bit addresses (u32) and the XSDT has 64-bit addresses (u64), but the ACPI tables often aren’t aligned to 4-byte and 8-byte addresses. This lack of alignment causes problems with Rust’s slice type, which requires proper alignment. Thus, we store them as slices of individual bytes (u8) and calculate the physical addresses on demand when requested in the RsdtXsdt::addresses() iterator function.

Structs

  • The Root/Extended System Descriptor Table, RSDT or XSDT. This table primarily contains an array of physical addresses where other ACPI SDTs can be found.

Constants

Functions

  • The handler for parsing RSDT/XSDT tables and adding them to the ACPI tables list.