8 个版本
0.3.3 | 2024年8月9日 |
---|---|
0.3.2 | 2024年8月2日 |
0.3.1 | 2024年7月31日 |
0.2.0 | 2024年7月25日 |
0.1.2 | 2024年7月17日 |
#166 in 硬件支持
每月下载量 2,525
用于 page_table_multiarch
24KB
463 行
page_table_entry
此crate提供了各种硬件架构的页表条目定义。
当前支持的架构和页表条目类型
- x86:
x86_64::X64PTE
- ARM:
aarch64::A64PTE
- RISC-V:
riscv::Rv64PTE
所有这些类型都实现了 GenericPTE
trait,它提供了操作各种页表条目的统一方法。
示例(x86_64)
use memory_addr::PhysAddr;
use x86_64::structures::paging::page_table::PageTableFlags;
use page_table_entry::{GenericPTE, MappingFlags, x86_64::X64PTE};
let paddr = PhysAddr::from(0x233000);
let pte = X64PTE::new_page(
paddr,
/* flags: */ MappingFlags::READ | MappingFlags::WRITE,
/* is_huge: */ false,
);
assert!(!pte.is_unused());
assert!(pte.is_present());
assert_eq!(pte.paddr(), paddr);
assert_eq!(
pte.bits(),
0x800_0000000233_003, // PRESENT | WRITE | NO_EXECUTE | paddr(0x233000)
);
依赖项
~670KB
~12K SLoC