Struct page_table::PageTable
source · [−]#[repr(C, align(4096))]pub struct PageTable<Meta: MmuMeta>(_);Expand description
页表。
Implementations
sourceimpl<Meta: MmuMeta> PageTable<Meta>
impl<Meta: MmuMeta> PageTable<Meta>
sourcepub fn set_entry(
&mut self,
vaddr: VAddr,
entry: Pte<Meta>,
level: usize
) -> Result<(), EntryError>
pub fn set_entry(
&mut self,
vaddr: VAddr,
entry: Pte<Meta>,
level: usize
) -> Result<(), EntryError>
将此页表视为一个 level 级页表,设置一个页表项。
页表项保证查找虚地址 vaddr 时能找到页表项 entry 指向的物理页(可以是页或子页表)。
Errors
- 如果
level大于当前方案下最大的页表级别,产生InvalidLevel; - 如果
entry在level级页表中表示一个巨页但物理页号未对齐,产生LeafMisaligned;
sourcepub fn query_once(&self, addr: VAddr, level: u8) -> PtQuery<Meta>
pub fn query_once(&self, addr: VAddr, level: u8) -> PtQuery<Meta>
查询页表一次。
Trait Implementations
Auto Trait Implementations
impl<Meta> RefUnwindSafe for PageTable<Meta> where
Meta: RefUnwindSafe,
impl<Meta> Send for PageTable<Meta> where
Meta: Send,
impl<Meta> Sync for PageTable<Meta> where
Meta: Sync,
impl<Meta> Unpin for PageTable<Meta> where
Meta: Unpin,
impl<Meta> UnwindSafe for PageTable<Meta> where
Meta: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more