Skip to main content

Op

Enum Op 

Source
pub enum Op {
Show 16 variants NewVmSpace, DropVmSpace { vs: VmSpaceId, }, OpenCursor { vs: VmSpaceId, va: Range<Vaddr>, }, OpenCursorMut { vs: VmSpaceId, va: Range<Vaddr>, }, DropCursor { c: CursorId, }, Query { c: CursorId, }, FindNext { c: CursorId, len: usize, }, Jump { c: CursorId, va: Vaddr, }, VirtAddr { c: CursorId, }, Map { c: CursorId, frame: UFrame, prop: PageProperty, }, Unmap { c: CursorId, len: usize, }, ProtectNext { c: CursorId, len: usize, }, NewReader { vs: VmSpaceId, vaddr: Vaddr, len: usize, }, NewWriter { vs: VmSpaceId, vaddr: Vaddr, len: usize, }, DropReader { vio: VmIoId, }, DropWriter { vio: VmIoId, },
}
Expand description

Public exec API of ostd::mm::vm_space, lifted to data.

Variants§

§

NewVmSpace

VmSpace::new. Allocates a fresh VmSpaceOwner and registers it under a fresh VmSpaceId.

§

DropVmSpace

Drop of a VmSpace. Removes the owner at vs (no-op if absent).

Fields

§

OpenCursor

VmSpace::cursor. Opens a read-only cursor on the VmSpace at vs over the virtual range va. May fail (returns Err in exec); on failure the store is unchanged.

Fields

§

OpenCursorMut

VmSpace::cursor_mut. Same as OpenCursor but mutable.

Fields

§

DropCursor

Drop of a Cursor/CursorMut. Removes the cursor entry at c (no-op if absent).

Fields

§

Query

Cursor::query / CursorMut::query. Reads the current page state; internally advances the cursor.

Fields

§

FindNext

Cursor::find_next / CursorMut::find_next.

Fields

§len: usize
§

Jump

Cursor::jump / CursorMut::jump.

Fields

§

VirtAddr

Cursor::virt_addr / CursorMut::virt_addr. Pure read; no state change at the embedding granularity.

Fields

§

Map

CursorMut::map. Maps frame with prop at the cursor’s current position. Modifies the cursor owner and may modify MetaRegionOwners.

Fields

§frame: UFrame
§prop: PageProperty
§

Unmap

CursorMut::unmap. Unmaps up to len bytes starting at the cursor’s current position.

Fields

§len: usize
§

ProtectNext

CursorMut::protect_next. The exec method takes an op: impl FnOnce(PageProperty) -> PageProperty; we model only the length here (the per-page property update is opaque at this stage).

Fields

§len: usize
§

NewReader

VmSpace::reader. May fail; on failure the store is unchanged.

Fields

§vaddr: Vaddr
§len: usize
§

NewWriter

VmSpace::writer. May fail; on failure the store is unchanged.

Fields

§vaddr: Vaddr
§len: usize
§

DropReader

Drop of a VmReader. Removes the corresponding VmIoOwner.

Fields

§

DropWriter

Drop of a VmWriter. Removes the corresponding VmIoOwner.

Fields

Implementations§

Source§

impl Op

Source

pub fn arrow_c(self) -> CursorId

Source

pub fn arrow_prop(self) -> PageProperty

Source

pub fn arrow_vaddr(self) -> Vaddr

Source

pub fn arrow_vio(self) -> VmIoId

Source

pub fn arrow_vs(self) -> VmSpaceId

Source

pub fn arrow_len(self) -> usize

Source

pub fn arrow_frame(self) -> UFrame

Source

pub fn arrow_DropVmSpace_vs(self) -> VmSpaceId

Source

pub fn arrow_OpenCursor_vs(self) -> VmSpaceId

Source

pub fn arrow_OpenCursor_va(self) -> Range<Vaddr>

Source

pub fn arrow_OpenCursorMut_vs(self) -> VmSpaceId

Source

pub fn arrow_OpenCursorMut_va(self) -> Range<Vaddr>

Source

pub fn arrow_DropCursor_c(self) -> CursorId

Source

pub fn arrow_Query_c(self) -> CursorId

Source

pub fn arrow_FindNext_c(self) -> CursorId

Source

pub fn arrow_FindNext_len(self) -> usize

Source

pub fn arrow_Jump_c(self) -> CursorId

Source

pub fn arrow_Jump_va(self) -> Vaddr

Source

pub fn arrow_VirtAddr_c(self) -> CursorId

Source

pub fn arrow_Map_c(self) -> CursorId

Source

pub fn arrow_Map_frame(self) -> UFrame

Source

pub fn arrow_Map_prop(self) -> PageProperty

Source

pub fn arrow_Unmap_c(self) -> CursorId

Source

pub fn arrow_Unmap_len(self) -> usize

Source

pub fn arrow_ProtectNext_c(self) -> CursorId

Source

pub fn arrow_ProtectNext_len(self) -> usize

Source

pub fn arrow_NewReader_vs(self) -> VmSpaceId

Source

pub fn arrow_NewReader_vaddr(self) -> Vaddr

Source

pub fn arrow_NewReader_len(self) -> usize

Source

pub fn arrow_NewWriter_vs(self) -> VmSpaceId

Source

pub fn arrow_NewWriter_vaddr(self) -> Vaddr

Source

pub fn arrow_NewWriter_len(self) -> usize

Source

pub fn arrow_DropReader_vio(self) -> VmIoId

Source

pub fn arrow_DropWriter_vio(self) -> VmIoId

Auto Trait Implementations§

§

impl Freeze for Op

§

impl !RefUnwindSafe for Op

§

impl Send for Op

§

impl Sync for Op

§

impl Unpin for Op

§

impl UnsafeUnpin for Op

§

impl UnwindSafe for Op

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, VERUS_SPEC__A> FromSpec<T> for VERUS_SPEC__A
where VERUS_SPEC__A: From<T>,

§

fn obeys_from_spec() -> bool

§

fn from_spec(v: T) -> VERUS_SPEC__A

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T, VERUS_SPEC__A> IntoSpec<T> for VERUS_SPEC__A
where VERUS_SPEC__A: Into<T>,

§

fn obeys_into_spec() -> bool

§

fn into_spec(self) -> T

§

impl<T, U> IntoSpecImpl<U> for T
where U: From<T>,

§

fn obeys_into_spec() -> bool

§

fn into_spec(self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, VERUS_SPEC__A> TryFromSpec<T> for VERUS_SPEC__A
where VERUS_SPEC__A: TryFrom<T>,

§

fn obeys_try_from_spec() -> bool

§

fn try_from_spec( v: T, ) -> Result<VERUS_SPEC__A, <VERUS_SPEC__A as TryFrom<T>>::Error>

Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T, VERUS_SPEC__A> TryIntoSpec<T> for VERUS_SPEC__A
where VERUS_SPEC__A: TryInto<T>,

§

fn obeys_try_into_spec() -> bool

§

fn try_into_spec(self) -> Result<T, <VERUS_SPEC__A as TryInto<T>>::Error>

§

impl<T, U> TryIntoSpecImpl<U> for T
where U: TryFrom<T>,

§

fn obeys_try_into_spec() -> bool

§

fn try_into_spec(self) -> Result<U, <U as TryFrom<T>>::Error>