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 for UpcallMode
impl PartialEq for UpcallMode
source§impl PartialOrd for UpcallMode
impl PartialOrd for UpcallMode
impl Copy for UpcallMode
impl Eq for UpcallMode
impl StructuralPartialEq for UpcallMode
Auto Trait Implementations§
impl Freeze for UpcallMode
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.