pub struct PageTableEntry(u64);Tuple Fields§
§0: u64Trait Implementations§
Source§impl Clone for PageTableEntry
impl Clone for PageTableEntry
Source§fn clone(&self) -> PageTableEntry
fn clone(&self) -> PageTableEntry
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PageTableEntry
impl Debug for PageTableEntry
Source§impl Ord for PageTableEntry
impl Ord for PageTableEntry
Source§impl PageTableEntry for PageTableEntry
impl PageTableEntry for PageTableEntry
Source§fn new_leaf(ppn: Ppn, flags: UniversalPTEFlag) -> Self
fn new_leaf(ppn: Ppn, flags: UniversalPTEFlag) -> Self
创建一个新的叶节点(普通页映射)
Source§fn flags(&self) -> UniversalPTEFlag
fn flags(&self) -> UniversalPTEFlag
获取页表项的通用标志
Source§fn set_flags(&mut self, flags: UniversalPTEFlag)
fn set_flags(&mut self, flags: UniversalPTEFlag)
设置页表项的标志
Source§fn remove_flags(&mut self, flags: UniversalPTEFlag)
fn remove_flags(&mut self, flags: UniversalPTEFlag)
移除指定的标志
Source§fn add_flags(&mut self, flags: UniversalPTEFlag)
fn add_flags(&mut self, flags: UniversalPTEFlag)
添加指定的标志
Source§impl PageTableInner<PageTableEntry> for PageTableInner
impl PageTableInner<PageTableEntry> for PageTableInner
const LEVELS: usize = 3usize
const MAX_VA_BITS: usize = 39usize
const MAX_PA_BITS: usize = 56usize
fn tlb_flush(vpn: Vpn)
fn tlb_flush_all()
fn is_user_table(&self) -> bool
fn activate(ppn: Ppn)
fn activating_table_ppn() -> Ppn
fn new() -> Self
fn from_ppn(ppn: Ppn) -> Self
fn new_as_kernel_table() -> Self
fn root_ppn(&self) -> Ppn
fn get_entry( &self, vpn: Vpn, level: usize, ) -> Option<(PageTableEntry, PageSize)>
fn translate(&self, vaddr: Vaddr) -> Option<Paddr>
fn map( &mut self, vpn: Vpn, ppn: Ppn, _page_size: PageSize, flags: UniversalPTEFlag, ) -> Result<(), PagingError>
fn unmap(&mut self, vpn: Vpn) -> Result<(), PagingError>
fn mvmap( &mut self, vpn: Vpn, target_ppn: Ppn, page_size: PageSize, flags: UniversalPTEFlag, ) -> Result<(), PagingError>
fn update_flags( &mut self, vpn: Vpn, flags: UniversalPTEFlag, ) -> Result<(), PagingError>
fn walk( &self, vpn: Vpn, ) -> Result<(Ppn, PageSize, UniversalPTEFlag), PagingError>
Source§impl PartialEq for PageTableEntry
impl PartialEq for PageTableEntry
Source§impl PartialOrd for PageTableEntry
impl PartialOrd for PageTableEntry
Source§fn partial_cmp(&self, other: &PageTableEntry) -> Option<Ordering>
fn partial_cmp(&self, other: &PageTableEntry) -> Option<Ordering>
impl Copy for PageTableEntry
impl Eq for PageTableEntry
impl StructuralPartialEq for PageTableEntry
Auto Trait Implementations§
impl Freeze for PageTableEntry
impl RefUnwindSafe for PageTableEntry
impl Send for PageTableEntry
impl Sync for PageTableEntry
impl Unpin for PageTableEntry
impl UnwindSafe for PageTableEntry
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)§impl<Q, K> Comparable<K> for Qwhere
Q: Ord + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Comparable<K> for Qwhere
Q: Ord + ?Sized,
K: Borrow<Q> + ?Sized,
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.