pub enum SpaceAwareMapping {
ThisSpace(Mapping),
AnotherSpace(SpaceReferenceMapping),
}Expand description
Either a normal leaf mapping in the current space, or a reference to an intermediate table in another space. The compaction loop in the host snapshotting code treats these two cases differently:
ThisSpace(m)is rebuilt like any other leaf mapping: the backing page is compacted into the new snapshot blob, the PTE is written, and intermediate tables are allocated on demand.AnotherSpace(r)is rebuilt by linking: the entry in our rebuilt root at depthr.depth - 1forr.our_vais made to point at whatever table the owning space ended up with atr.their_va. Seespace_aware_map.
Variants§
ThisSpace(Mapping)
AnotherSpace(SpaceReferenceMapping)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SpaceAwareMapping
impl RefUnwindSafe for SpaceAwareMapping
impl Send for SpaceAwareMapping
impl Sync for SpaceAwareMapping
impl Unpin for SpaceAwareMapping
impl UnsafeUnpin for SpaceAwareMapping
impl UnwindSafe for SpaceAwareMapping
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