pub trait Memory {
// Required methods
fn _va(paddr: PhysAddr) -> VirtAddr;
fn _io(paddr: PhysAddr) -> VirtAddr;
fn kimage_offset() -> isize;
fn virt_to_phys(virt: VirtAddr) -> PhysAddr;
fn page_size() -> usize;
fn memory_map() -> &'static [MemoryDescriptor];
fn page_table_new() -> Result<Box<dyn PageTable>, PagingError>;
fn kernel_page_table() -> PhysAddr;
fn set_kernel_page_table(pt: PhysAddr);
fn user_page_table() -> PageTableInfo;
fn set_user_page_table(pt: PageTableInfo);
}Required Methods§
fn _va(paddr: PhysAddr) -> VirtAddr
fn _io(paddr: PhysAddr) -> VirtAddr
Sourcefn kimage_offset() -> isize
fn kimage_offset() -> isize
内核镜像在虚拟地址空间中的偏移
Sourcefn virt_to_phys(virt: VirtAddr) -> PhysAddr
fn virt_to_phys(virt: VirtAddr) -> PhysAddr
Convert virtual address to physical address
fn page_size() -> usize
fn memory_map() -> &'static [MemoryDescriptor]
fn page_table_new() -> Result<Box<dyn PageTable>, PagingError>
fn kernel_page_table() -> PhysAddr
fn set_kernel_page_table(pt: PhysAddr)
fn user_page_table() -> PageTableInfo
fn set_user_page_table(pt: PageTableInfo)
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.