Trait Visitor

Source
pub trait Visitor<Meta: VmMeta> {
    // Required methods
    fn arrive(&mut self, pte: Pte<Meta>, target: Pos<Meta>) -> Pos<Meta>;
    fn meet(
        &mut self,
        level: usize,
        pte: Pte<Meta>,
        target: Pos<Meta>,
    ) -> Option<NonNull<Pte<Meta>>>;
    fn block(
        &mut self,
        level: usize,
        pte: Pte<Meta>,
        target: Pos<Meta>,
    ) -> Pos<Meta>;
}
Expand description

Meta 方案的页表访问机制。

Required Methods§

Source

fn arrive(&mut self, pte: Pte<Meta>, target: Pos<Meta>) -> Pos<Meta>

到达 target_hint 节点。

Source

fn meet( &mut self, level: usize, pte: Pte<Meta>, target: Pos<Meta>, ) -> Option<NonNull<Pte<Meta>>>

在访问 target 的过程中,经过一个包括 targetlevel 级页表项 pte,并且这个页表项指向一个中间页表节点。

Source

fn block( &mut self, level: usize, pte: Pte<Meta>, target: Pos<Meta>, ) -> Pos<Meta>

在访问 target 的过程中,经过一个包括 targetlevel 级页表项 pte,但这个页表项没有指向一个子页表。

以下两种情况会调用这个方法:

  • 访问到包含目标虚页的大页节点;
  • 访问到包含目标虚页的无效节点;

Implementors§