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.