Awesome
acpi_tables
Design
This crate provides the ability to generate static tables (e.g. FADT/FACP, MCFG, etc) as well as generate AML for filling a DSDT table.
Usage
aml
provides the ability to generate AML code, see the chapter titled "ACPI Machine Language (AML) Specification" in the ACPI Specification.bert
contains routines for creating aBERT
tablecedt
contains routines for creating aCEDT
table (see the CXL specification for more details)facs
contains routines for creating aFACS
tablefadt
contains routines for creating aFADT
table (also known as FACP)hmat
contains routines for creating aHMAT
tablehest
contains routines for creating aHEST
table, except for the parts that are specified by UEFImadt
contains routines for creating anMADT
table (also known as APIC)mcfg
contains routines for creating anMCFG
tablepptt
contains routines for creating aPPTT
tablerhct
contains routines for creating aRHCT
tablerimt
contains routines for creating aRIMT
tablerqsc
contains routines for creating aRQSC
tablersdp
contains a helper for creating aRSDP
tablesdt
provides the ability to build user defined tables including header and checksum validationslit
contains routines for creating aSLIT
tablespcr
contains routines for creating aSPCR
table (not included in ACPI specification, see 0 for details)srat
contains routines for creating aSRAT
tabletpm2
contains routines for creating bothTCPA
(TPM 1.2) andTPM2
tablesviot
contains routines for creating aVIOT
tablexsdt
contains routines for creating anXSDT
table
Examples
The crate is currently used by the Cloud Hypervisor project so detailed examples of populating different ACPI table types can be found there.
Licence
This crate is licensed under the Apache 2.0 licence. The full text can be found in the LICENSE-APACHE file.