PageTableEntry

Trait PageTableEntry 

Source
pub trait PageTableEntry {
    type Bits;

Show 15 methods // Required methods fn from_bits(bits: Self::Bits) -> Self; fn to_bits(&self) -> Self::Bits; fn empty() -> Self; fn new_leaf(ppn: Ppn, flags: UniversalPTEFlag) -> Self; fn new_table(ppn: Ppn) -> Self; fn is_valid(&self) -> bool; fn is_huge(&self) -> bool; fn is_empty(&self) -> bool; fn ppn(&self) -> Ppn; fn flags(&self) -> UniversalPTEFlag; fn set_ppn(&mut self, ppn: Ppn); fn set_flags(&mut self, flags: UniversalPTEFlag); fn clear(&mut self); fn remove_flags(&mut self, flags: UniversalPTEFlag); fn add_flags(&mut self, flags: UniversalPTEFlag);
}
Expand description

页表项(Page Table Entry, PTE)所需实现的核心接口

Required Associated Types§

Source

type Bits

用于表示页表项的底层位模式类型

Required Methods§

Source

fn from_bits(bits: Self::Bits) -> Self

从位模式创建页表项

Source

fn to_bits(&self) -> Self::Bits

获取页表项的位模式

Source

fn empty() -> Self

创建一个空的(无效的)页表项

Source

fn new_leaf(ppn: Ppn, flags: UniversalPTEFlag) -> Self

创建一个新的叶节点(普通页映射)

Source

fn new_table(ppn: Ppn) -> Self

创建一个新的表节点(指向下一级页表)

Source

fn is_valid(&self) -> bool

检查页表项是否有效

Source

fn is_huge(&self) -> bool

检查页表项是否为巨页映射(如果支持)

Source

fn is_empty(&self) -> bool

检查页表项是否为空

Source

fn ppn(&self) -> Ppn

获取页表项中存储的物理页号(Ppn)

Source

fn flags(&self) -> UniversalPTEFlag

获取页表项的通用标志

Source

fn set_ppn(&mut self, ppn: Ppn)

设置页表项的物理页号

Source

fn set_flags(&mut self, flags: UniversalPTEFlag)

设置页表项的标志

Source

fn clear(&mut self)

清空页表项(使其无效)

Source

fn remove_flags(&mut self, flags: UniversalPTEFlag)

移除指定的标志

Source

fn add_flags(&mut self, flags: UniversalPTEFlag)

添加指定的标志

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.

Implementors§