pub struct PageTableView {
pub mappings: Set<Mapping>,
}Expand description
A view of the page table is simply the set of mappings that it contains. Its invariant is a crucial property for memory correctness.
Fields§
§mappings: Set<Mapping>Implementations§
Source§impl PageTableView
In addition to requiring that individual mappings be well-formed, a valid PageTableView must
not have any overlapping mappings, in the physical or virtual address space.
The virtual ranges not overlapping is a consequence of the structure of the page table.
The physical ranges not overlapping must be maintained by the page table implementation.
impl PageTableView
In addition to requiring that individual mappings be well-formed, a valid PageTableView must
not have any overlapping mappings, in the physical or virtual address space.
The virtual ranges not overlapping is a consequence of the structure of the page table.
The physical ranges not overlapping must be maintained by the page table implementation.
Sourcepub open spec fn inv(self) -> bool
pub open spec fn inv(self) -> bool
{
&&& forall |m: Mapping| self.mappings has m ==> m.inv()
&&& forall |m: Mapping, n: Mapping| (
self.mappings has m
==> (self.mappings has n
==> (m != n
==> {
&&& m.va_range.end <= n.va_range.start
|| n.va_range.end <= m.va_range.start
&&& m.pa_range.end <= n.pa_range.start
|| n.pa_range.end <= m.pa_range.start
}))
)
}Auto Trait Implementations§
impl Freeze for PageTableView
impl RefUnwindSafe for PageTableView
impl Send for PageTableView
impl Sync for PageTableView
impl Unpin for PageTableView
impl UnwindSafe for PageTableView
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more