Module page_table

Module page_table 

Source

Re-exports§

pub use cursor::*;
pub use node::*;

Modules§

cursor
node

Structs§

AbstractVaddr
An abstract representation of a virtual address as a sequence of indices, representing the values of the bit-fields that index into each level of the page table. offset is the lowest 12 bits (the offset into a 4096 byte page) index[0] is the next 9 bits (index into the 512 entries of the first level page table) and so on up to index[NR_LEVELS-1].
Mapping
A Mapping maps a virtual address range to a physical address range. Its size, page_size, is fixed and must be one of 4096, 2097152, 1073741824. The va_range and pa_range must of size page_size and aligned on a page boundary. The property is a bitfield of flags that describe the properties of the mapping.
PageTableOwner
PageTableView
A view of the page table is simply the set of mappings that it contains. Its invariant is a crucial property for memory correctness.

Constants§

INC_LEVELS

Functions§

allocated_empty_node_owner
rec_vaddr
sibling_paths_disjoint
vaddr
vaddr_make
vaddr_shift
vaddr_shift_bits

Type Aliases§

OwnerSubtree
OwnerSubtree is a tree Node (from vstd_extra::ghost_tree) containing EntryOwners. It lives in a tree of maximum depth 5. Page table nodes can be at levels 0-3, and their entries are their children at the next level down. This means that level 4, the lowest level, can only contain frame entries as it consists of the entries of level 1 page tables.