#x86-64 #vm #kvm #os

x86test-types

为 x86test 运行器和 x86test 程序宏提供的常用类型

5 个版本

0.0.5 2022 年 3 月 3 日
0.0.4 2022 年 1 月 25 日
0.0.3 2020 年 4 月 24 日
0.0.2 2019 年 9 月 12 日
0.0.1 2019 年 8 月 24 日

#549测试 中排名

每月 24 次下载
用于 2 crates

MIT/Apache

2MB
8K SLoC

x86 / amd64 库 Crates.io docs.rs/x86 标准检查

用于编程 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,因此可以在内核代码中使用。

测试

我们对该 crate 使用两种测试形式。带有 #[test] 的常规测试,在环 3 进程中运行,以及 #[x86test] 测试,在 VM 中运行(因此提供特权执行环境,见 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

特性

  • performance-counter:包含性能计数器信息。请注意,此特性可能会由于包含在源代码中的大型静态生成的哈希表而显著增加编译时间。因此,默认禁用。

文档

依赖