pub enum Op {
Show 43 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,
fid: FrameId,
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,
},
NewKernelReader {
vaddr: Vaddr,
len: usize,
},
NewKernelWriter {
vaddr: Vaddr,
len: usize,
},
DropReader {
vio: VmIoId,
},
DropWriter {
vio: VmIoId,
},
ReaderReadVal {
source: VmIoId,
},
ReaderCollect {
source: VmIoId,
},
ReaderLimit {
vio: VmIoId,
max: usize,
},
ReaderSkip {
vio: VmIoId,
n: usize,
},
ReaderQuery {
vio: VmIoId,
},
WriterWriteVal {
writer: VmIoId,
},
WriterFillZeros {
vio: VmIoId,
len: usize,
},
WriterLimit {
vio: VmIoId,
max: usize,
},
WriterSkip {
vio: VmIoId,
n: usize,
},
WriterQuery {
vio: VmIoId,
},
Read {
source: VmIoId,
dest: VmIoId,
},
Write {
source: VmIoId,
dest: VmIoId,
},
FrameFromUnused {
paddr: Paddr,
},
FrameFromInUse {
paddr: Paddr,
},
FrameDrop {
fid: FrameId,
},
SegmentFromUnused {
range: Range<Paddr>,
},
SegmentDrop {
sid: SegmentId,
},
SegmentSplit {
sid: SegmentId,
offset: usize,
},
SegmentNext {
sid: SegmentId,
},
SegmentClone {
sid: SegmentId,
},
SegmentSlice {
sid: SegmentId,
sub_range: Range<Paddr>,
},
UniqueFromUnused {
paddr: Paddr,
},
UniqueDrop {
uid: UniqueId,
},
FromUnique {
uid: UniqueId,
},
TryFromShared {
fid: FrameId,
},
}Expand description
Public exec API of ostd::mm::vm_space and ostd::mm::io, lifted
to data.
Variants§
NewVmSpace
DropVmSpace
OpenCursor
OpenCursorMut
DropCursor
Query
FindNext
Jump
VirtAddr
Map
Unmap
ProtectNext
NewReader
NewWriter
NewKernelReader
NewKernelWriter
DropReader
DropWriter
ReaderReadVal
Fallible VmReader::read_val<T>.
ReaderCollect
Fallible VmReader::collect. Same shape as ReaderReadVal.
ReaderLimit
ReaderSkip
ReaderQuery
WriterWriteVal
Fallible VmWriter::write_val<T>. Same shape as ReaderReadVal.
WriterFillZeros
WriterLimit
WriterSkip
WriterQuery
Read
Infallible VmReader::read. Produces a consumed_w val_owner
(registered as a fresh activated Writer entry).
Write
Infallible VmWriter::write.
FrameFromUnused
Frame::from_unused: try to allocate a fresh handle on a
previously-unused slot.
FrameFromInUse
Frame::from_in_use: try to acquire a new handle on an
in-use slot.
FrameDrop
Drop one outstanding Frame handle.
SegmentFromUnused
Segment::from_unused: allocate a fresh segment over a range
of previously-unused slots.
SegmentDrop
Drop a Segment handle.
SegmentSplit
Segment::split: split a segment at a page-aligned byte
offset from its start, producing two segments covering the
disjoint halves.
SegmentNext
Segment::next: pop the front frame off sid’s range,
producing a fresh Frame<M> handle.
SegmentClone
Segment::clone: produce a second handle covering the same
range as sid.
SegmentSlice
Segment::slice: produce a handle covering the sub-range
sub_range.
UniqueFromUnused
UniqueFrame::from_unused: allocate a fresh exclusive handle on
a previously-unused slot.
UniqueDrop
Drop a UniqueFrame handle.
FromUnique
Frame::from_unique: convert the exclusive handle uid into a
shared Frame.
UniqueFrame::try_from_shared: try to convert the shared handle
fid back into an exclusive one.
Implementations§
Source§impl Op
impl Op
pub fn arrow_prop(self) -> PageProperty
pub fn arrow_vio(self) -> VmIoId
pub fn arrow_writer(self) -> VmIoId
pub fn arrow_vs(self) -> VmSpaceId
pub fn arrow_n(self) -> usize
pub fn arrow_vaddr(self) -> Vaddr
pub fn arrow_source(self) -> VmIoId
pub fn arrow_fid(self) -> FrameId
pub fn arrow_sub_range(self) -> Range<Paddr>
pub fn arrow_len(self) -> usize
pub fn arrow_sid(self) -> SegmentId
pub fn arrow_offset(self) -> usize
pub fn arrow_paddr(self) -> Paddr
pub fn arrow_range(self) -> Range<Paddr>
pub fn arrow_max(self) -> usize
pub fn arrow_dest(self) -> VmIoId
pub fn arrow_c(self) -> CursorId
pub fn arrow_uid(self) -> UniqueId
pub fn arrow_DropVmSpace_vs(self) -> VmSpaceId
pub fn arrow_OpenCursor_vs(self) -> VmSpaceId
pub fn arrow_OpenCursor_va(self) -> Range<Vaddr>
pub fn arrow_OpenCursorMut_vs(self) -> VmSpaceId
pub fn arrow_OpenCursorMut_va(self) -> Range<Vaddr>
pub fn arrow_DropCursor_c(self) -> CursorId
pub fn arrow_Query_c(self) -> CursorId
pub fn arrow_FindNext_c(self) -> CursorId
pub fn arrow_FindNext_len(self) -> usize
pub fn arrow_Jump_c(self) -> CursorId
pub fn arrow_Jump_va(self) -> Vaddr
pub fn arrow_VirtAddr_c(self) -> CursorId
pub fn arrow_Map_c(self) -> CursorId
pub fn arrow_Map_fid(self) -> FrameId
pub fn arrow_Map_prop(self) -> PageProperty
pub fn arrow_Unmap_c(self) -> CursorId
pub fn arrow_Unmap_len(self) -> usize
pub fn arrow_ProtectNext_c(self) -> CursorId
pub fn arrow_ProtectNext_len(self) -> usize
pub fn arrow_NewReader_vs(self) -> VmSpaceId
pub fn arrow_NewReader_vaddr(self) -> Vaddr
pub fn arrow_NewReader_len(self) -> usize
pub fn arrow_NewWriter_vs(self) -> VmSpaceId
pub fn arrow_NewWriter_vaddr(self) -> Vaddr
pub fn arrow_NewWriter_len(self) -> usize
pub fn arrow_NewKernelReader_vaddr(self) -> Vaddr
pub fn arrow_NewKernelReader_len(self) -> usize
pub fn arrow_NewKernelWriter_vaddr(self) -> Vaddr
pub fn arrow_NewKernelWriter_len(self) -> usize
pub fn arrow_DropReader_vio(self) -> VmIoId
pub fn arrow_DropWriter_vio(self) -> VmIoId
pub fn arrow_ReaderReadVal_source(self) -> VmIoId
pub fn arrow_ReaderCollect_source(self) -> VmIoId
pub fn arrow_ReaderLimit_vio(self) -> VmIoId
pub fn arrow_ReaderLimit_max(self) -> usize
pub fn arrow_ReaderSkip_vio(self) -> VmIoId
pub fn arrow_ReaderSkip_n(self) -> usize
pub fn arrow_ReaderQuery_vio(self) -> VmIoId
pub fn arrow_WriterWriteVal_writer(self) -> VmIoId
pub fn arrow_WriterFillZeros_vio(self) -> VmIoId
pub fn arrow_WriterFillZeros_len(self) -> usize
pub fn arrow_WriterLimit_vio(self) -> VmIoId
pub fn arrow_WriterLimit_max(self) -> usize
pub fn arrow_WriterSkip_vio(self) -> VmIoId
pub fn arrow_WriterSkip_n(self) -> usize
pub fn arrow_WriterQuery_vio(self) -> VmIoId
pub fn arrow_Read_source(self) -> VmIoId
pub fn arrow_Read_dest(self) -> VmIoId
pub fn arrow_Write_source(self) -> VmIoId
pub fn arrow_Write_dest(self) -> VmIoId
pub fn arrow_FrameFromUnused_paddr(self) -> Paddr
pub fn arrow_FrameFromInUse_paddr(self) -> Paddr
pub fn arrow_FrameDrop_fid(self) -> FrameId
pub fn arrow_SegmentFromUnused_range(self) -> Range<Paddr>
pub fn arrow_SegmentDrop_sid(self) -> SegmentId
pub fn arrow_SegmentSplit_sid(self) -> SegmentId
pub fn arrow_SegmentSplit_offset(self) -> usize
pub fn arrow_SegmentNext_sid(self) -> SegmentId
pub fn arrow_SegmentClone_sid(self) -> SegmentId
pub fn arrow_SegmentSlice_sid(self) -> SegmentId
pub fn arrow_SegmentSlice_sub_range(self) -> Range<Paddr>
pub fn arrow_UniqueFromUnused_paddr(self) -> Paddr
pub fn arrow_UniqueDrop_uid(self) -> UniqueId
pub fn arrow_FromUnique_uid(self) -> UniqueId
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> 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
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T, VERUS_SPEC__A> FromSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: From<T>,
impl<T, VERUS_SPEC__A> FromSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: From<T>,
fn obeys_from_spec() -> bool
fn from_spec(v: T) -> VERUS_SPEC__A
§impl<T, VERUS_SPEC__A> IntoSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: Into<T>,
impl<T, VERUS_SPEC__A> IntoSpec<T> for VERUS_SPEC__Awhere
VERUS_SPEC__A: Into<T>,
fn obeys_into_spec() -> bool
fn into_spec(self) -> T
§impl<T, U> IntoSpecImpl<U> for Twhere
U: From<T>,
impl<T, U> IntoSpecImpl<U> for Twhere
U: From<T>,
fn obeys_into_spec() -> bool
fn into_spec(self) -> U
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.impl<A> SpecEq<&A> for Awhere
A: ?Sized,
impl<A> SpecEq<&mut A> for Awhere
A: ?Sized,
impl<A> SpecEq<A> for Awhere
A: ?Sized,
impl<A> SpecEq<Ghost<A>> for A
impl<A> SpecEq<Tracked<A>> for A
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.