74 个版本 (重大更新)
0.52.0 | 2022年10月18日 |
---|---|
0.51.0 | 2022年7月15日 |
0.50.0 | 2022年6月30日 |
0.47.0 | 2022年3月3日 |
0.0.1 | 2015年3月28日 |
#211 在 硬件支持
22,510 每月下载量
用于 36 个crate(24个直接使用)
2MB
8K SLoC
包含(ZIP文件,670KB)x86data/perfmon_data/TMA_Metrics.xlsx
x86 / amd64 库
用于编程 x86 (amd64) 硬件的库。包含 x86 特定的数据结构描述、数据表,以及方便调用通常不在高级语言中公开的汇编指令的实用函数。
当前支持
- I/O 寄存器
- 控制寄存器
- 调试寄存器
- MSR 寄存器
- 分段
- 描述符表(GDT、LDT、IDT)
- IA32-e 页表布局
- 中断(带 xAPIC 和 x2APIC,I/O APIC 驱动程序)
- 任务状态
- 性能计数器信息
- Intel SGX:软件保护扩展
- 随机数(rdrand、rdseed)
- 时间(rdtsc、rdtscp)
- 查询 CPUID(使用 raw_cpuid 库)
- 事务性内存(Intel RTM 和 HLE)
- 虚拟化(Intel VMX)
此库依赖于 libcore,因此可用于内核级代码。
测试
我们为该库使用两种测试形式。带有 #[test]
的常规测试,在环 3 进程中运行,以及 #[x86test]
测试,在虚拟机(因此提供特权执行环境)中运行(参见 x86test)。
# To execute x86tests run:
$ RUSTFLAGS="-C relocation-model=dynamic-no-pic -C code-model=kernel" RUST_BACKTRACE=1 cargo test --features vmtest
# To execute the regular tests, run:
$ cargo test --features utest
特性
- 性能计数器:包括性能计数器信息。注意,由于包含在源代码中的大型静态生成的哈希表,此功能可能会显著增加编译时间。因此,默认情况下已禁用。