#bootloader #acpi #table #zero-allocation #kernel #parser #platform

无std rsdp

用于定位和解析RSDP(第一个ACPI表)的零分配库

5个版本 (稳定版)

2.0.1 2023年9月13日
2.0.0 2021年6月29日
1.1.0 2021年1月1日
1.1.0-pre02020年12月14日
1.0.0 2020年9月24日

#384硬件支持

Download history 1275/week @ 2024-04-23 775/week @ 2024-04-30 1701/week @ 2024-05-07 1807/week @ 2024-05-14 1393/week @ 2024-05-21 1767/week @ 2024-05-28 1715/week @ 2024-06-04 2108/week @ 2024-06-11 1720/week @ 2024-06-18 2213/week @ 2024-06-25 2181/week @ 2024-07-02 1977/week @ 2024-07-09 2273/week @ 2024-07-16 1834/week @ 2024-07-23 1390/week @ 2024-07-30 1798/week @ 2024-08-06

每月下载量:7,562
4 包中使用(直接使用2个)

MIT/Apache

19KB
209

Acpi

⚠️警告:该rsdp包之前是acpi生态系统的组成部分,但现在已被弃用。其功能现在完全由acpi包支持,包括在无分配器环境中也能工作的功能子集。该包可能不会再收到更新⚠️

Build Status Version Version Version

文档 (rsdp)

文档 (acpi)

文档 (aml)

一个用于解析ACPI表和AML的库,使用纯Rust编写。设计用于从Rust引导加载程序和内核中轻松使用。该库分为三个包

  • rsdp解析RSDP并能在BIOS平台上定位它。它不依赖于alloc,因此适合在没有堆分配器的引导加载程序中使用。它所有的功能都通过acpi重新导出。
  • acpi解析静态表(有用但功能不完整)。它可以从有分配器或无分配器(但功能减少)的环境中使用。
  • aml解析AML表(可能有用,但功能远不完整)。

此外,还有acpi-dumper实用程序,可以轻松转储平台的ACPI表(目前仅在Linux上工作)。

贡献

我们非常欢迎贡献!你可以

  • 编写代码 - ACPI规范很大,肯定有许多我们尚未支持的功能!
  • 改进我们的文档!
  • 在你的内核中使用这些包并提交错误报告和功能请求!

对于贡献有用的资源包括

您可以使用以下命令运行AML测试套件:cargo run --bin aml_tester -- -p tests。您可以使用以下命令运行AML解析器的模糊测试:cd aml && cargo fuzz run fuzz_target_1(您可能需要先执行cargo install cargo-fuzz)。

许可协议

本项目采用以下双许可协议:

除非您明确声明,否则根据Apache-2.0许可证定义的,您提交的任何贡献,将如上所述双许可,不附加其他条款或条件。

依赖项

~87KB