pub struct InstalledAddressSpace { /* private fields */ }Expand description
Complete software identity installed with one hardware page-table root.
The root is intentionally private. Scheduler code moves this value as a unit, while architecture code is the only layer allowed to project the materialized root that is written to a register.
Implementations§
Source§impl InstalledAddressSpace
impl InstalledAddressSpace
Sourcepub fn user(
space_id: u64,
root: PhysAddr,
hardware_tag: u16,
tag_generation: u64,
epoch: u64,
mode: InstalledAddressSpaceMode,
) -> Option<Self>
pub fn user( space_id: u64, root: PhysAddr, hardware_tag: u16, tag_generation: u64, epoch: u64, mode: InstalledAddressSpaceMode, ) -> Option<Self>
Constructs a validated userspace installation identity.
Returns None for the reserved zero identity, a zero root, or a tag
that is inconsistent with its installation mode.
Sourcepub const fn kernel(root: PhysAddr) -> Self
pub const fn kernel(root: PhysAddr) -> Self
Constructs the kernel-root context used by bootstrap and CPU-offline paths. It carries no userspace identity or reusable hardware tag.
Sourcepub const fn is_user(self) -> bool
pub const fn is_user(self) -> bool
Returns whether this value represents a userspace address space.
Sourcepub const fn hardware_tag(self) -> u16
pub const fn hardware_tag(self) -> u16
Returns the hardware address-space tag.
Sourcepub const fn tag_generation(self) -> u64
pub const fn tag_generation(self) -> u64
Returns the software generation associated with the hardware tag.
Sourcepub const fn epoch(self) -> u64
pub const fn epoch(self) -> u64
Returns the VMA/PTE publication epoch represented by this context.
Sourcepub const fn mode(self) -> InstalledAddressSpaceMode
pub const fn mode(self) -> InstalledAddressSpaceMode
Returns the hardware tag policy.
Trait Implementations§
Source§impl Clone for InstalledAddressSpace
impl Clone for InstalledAddressSpace
Source§fn clone(&self) -> InstalledAddressSpace
fn clone(&self) -> InstalledAddressSpace
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more