A library to parse ACPI tables and AML, written in pure Rust. Designed to be easy to use from Rust bootloaders and kernels. The library is split into three crates:
rsdpparses the RSDP and can locate it on BIOS platforms. It does not depend on
alloc, so is suitable to use from bootloaders without heap alloctors. All of its functionality is reexported by
acpiparses the static tables (useful but not feature-complete)
amlparses the AML tables (can be useful, far from feature-complete)
There is also the
acpi-dumper utility to easily dump a platform's ACPI tables (this currently only works on Linux).
Contributions are more than welcome! You can:
Useful resources for contributing are:
You can run the AML test suite with
cargo run --bin aml_tester -- -p tests. You can run fuzz the AML parser with
cd aml && cargo fuzz run fuzz_target_1 (you may need to
cargo install cargo-fuzz).
Acpi is dual-licenced under:
Unless you explicitly state otherwise, any contribution submitted for inclusion in this work by you, as defined in the Apache-2.0 licence, shall be dual licenced as above, without additional terms or conditions.