Rust library for parsing ACPI tables and interpreting AML

Isaac Woods 7fbced40bf Publish acpi v2.0.0-pre1 for testing %!s(int64=4) %!d(string=hai) anos
acpi 7fbced40bf Publish acpi v2.0.0-pre1 for testing %!s(int64=4) %!d(string=hai) anos
acpi-dumper 90d6bd062a Add acpi-dumper %!s(int64=5) %!d(string=hai) anos
aml cf8be5239c Add specification for the I/O Port Descriptor %!s(int64=4) %!d(string=hai) anos
aml_tester 221d09a981 Fix tests %!s(int64=4) %!d(string=hai) anos
rsdp 85152b3771 Publish rsdp v1.0.0 %!s(int64=4) %!d(string=hai) anos
tests 0d3947980d Use PCI CRS from QEMU ASL & clean up %!s(int64=4) %!d(string=hai) anos
.gitignore 3dcc84653d Add EOF newline in gitignore %!s(int64=4) %!d(string=hai) anos
.travis.yml 597360c3b7 Don't use rustfmt on CI %!s(int64=5) %!d(string=hai) anos
Cargo.toml 85152b3771 Publish rsdp v1.0.0 %!s(int64=4) %!d(string=hai) anos
LICENCE-APACHE 3d72f67501 Init Cargo and add licenses and readme %!s(int64=7) %!d(string=hai) anos
LICENCE-MIT 3d72f67501 Init Cargo and add licenses and readme %!s(int64=7) %!d(string=hai) anos
README.md acb680bd48 Update README to talk about new rsdp crate %!s(int64=4) %!d(string=hai) anos
bors.toml a1403f5b3e Set up bors configuration %!s(int64=7) %!d(string=hai) anos
rustfmt.toml 36159b1017 Rustfmt is bad at wrapping comments %!s(int64=4) %!d(string=hai) anos

README.md

Acpi

Build Status Version

Documentation (rsdp)

Documentation (acpi)

Documentation (aml)

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:

  • rsdp parses 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 acpi.
  • acpi parses the static tables (useful but not feature-complete)
  • aml parses 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).

Contributing

Contributions are more than welcome! You can:

  • Write code - the ACPI spec is huge and there are bound to be things we don't support yet!
  • Improve our documentation!
  • Use the crates within your kernel and file bug reports and feature requests!

Useful resources for contributing are:

Licence

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.