Enum twizzler_abi::upcall::UpcallMode
source · pub enum UpcallMode {
Abort,
CallSelf,
CallSuper,
}
Expand description
Possible modes for upcall handling.
Variants§
Abort
Handle this upcall by immediate abort. If the SUSPEND flag is set, the thread will still abort when unsuspended.
CallSelf
Handle this upcall by calling, without trying to transfer to supervisor context. Upcall data, including frame data, will be placed on the current stack, and the thread pointer is unchanged.
CallSuper
Handle this upcall by calling into supervisor context. If the thread is already in supervisor context, this acts like UpcallMode::CallSelf. Otherwise, the thread’s stack and thread pointer are updated to the super_stack and super_thread_pointer values in the upcall target respectively, and the active security context is switched to the supervisor context (super_ctx).
Trait Implementations§
source§impl Clone for UpcallMode
impl Clone for UpcallMode
source§fn clone(&self) -> UpcallMode
fn clone(&self) -> UpcallMode
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for UpcallMode
impl Debug for UpcallMode
source§impl Ord for UpcallMode
impl Ord for UpcallMode
source§fn cmp(&self, other: &UpcallMode) -> Ordering
fn cmp(&self, other: &UpcallMode) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
Compares and returns the maximum of two values. Read more
source§impl PartialEq<UpcallMode> for UpcallMode
impl PartialEq<UpcallMode> for UpcallMode
source§fn eq(&self, other: &UpcallMode) -> bool
fn eq(&self, other: &UpcallMode) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd<UpcallMode> for UpcallMode
impl PartialOrd<UpcallMode> for UpcallMode
source§fn partial_cmp(&self, other: &UpcallMode) -> Option<Ordering>
fn partial_cmp(&self, other: &UpcallMode) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moreimpl Copy for UpcallMode
impl Eq for UpcallMode
impl StructuralEq for UpcallMode
impl StructuralPartialEq for UpcallMode
Auto Trait Implementations§
impl ObjSafe for UpcallMode
impl RefUnwindSafe for UpcallMode
impl Send for UpcallMode
impl Sync for UpcallMode
impl Unpin for UpcallMode
impl UnwindSafe for UpcallMode
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