pub struct TaskAddressSpace(/* private fields */);Expand description
Move-only runtime token for one user address space.
Implementations§
Source§impl TaskAddressSpace
impl TaskAddressSpace
Sourcepub fn new(
root: PhysAddr,
owner: impl Send + Sync + 'static,
) -> Result<TaskAddressSpace, TaskError>
pub fn new( root: PhysAddr, owner: impl Send + Sync + 'static, ) -> Result<TaskAddressSpace, TaskError>
Creates a scheduler token that owns owner until address-space reap.
Sourcepub fn new_with_task_detach<T>(
root: PhysAddr,
cpu_state: Arc<AddressSpaceCpuState>,
owner: T,
detach: fn(&T),
) -> Result<TaskAddressSpace, TaskError>
pub fn new_with_task_detach<T>( root: PhysAddr, cpu_state: Arc<AddressSpaceCpuState>, owner: T, detach: fn(&T), ) -> Result<TaskAddressSpace, TaskError>
Creates a scheduler token with task-detach ownership semantics.
detach runs once in ordinary task context after the attached thread
has entered lazy kernel-mm state. It may release task-scoped accounting,
but owner must keep the hardware page-table root valid until its final
drop after all active-CPU leases have drained.
Sourcepub fn new_managed<T>(
root: PhysAddr,
cpu_state: Arc<AddressSpaceCpuState>,
owner: T,
) -> Result<TaskAddressSpace, TaskError>where
T: UserAddressSpaceOwner + 'static,
pub fn new_managed<T>(
root: PhysAddr,
cpu_state: Arc<AddressSpaceCpuState>,
owner: T,
) -> Result<TaskAddressSpace, TaskError>where
T: UserAddressSpaceOwner + 'static,
Creates a task token backed by an OS-owned MM lifecycle. Allocation occurs here in task context, before scheduler publication.
Trait Implementations§
Source§impl Drop for TaskAddressSpace
impl Drop for TaskAddressSpace
Auto Trait Implementations§
impl Freeze for TaskAddressSpace
impl RefUnwindSafe for TaskAddressSpace
impl Send for TaskAddressSpace
impl Sync for TaskAddressSpace
impl Unpin for TaskAddressSpace
impl UnsafeUnpin for TaskAddressSpace
impl UnwindSafe for TaskAddressSpace
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