twizzler_object::ptr

Struct AtomicInvPtr

source
pub struct AtomicInvPtr<T> { /* private fields */ }
Expand description

An atomic invariant pointer. Allows reading through an immutable reference without unsafe.

Implementations§

source§

impl<Target> AtomicInvPtr<Target>

source

pub fn parts(&self) -> (usize, u64)

Read the invariant pointer into its raw parts.

source

pub fn from_parts(fote: usize, off: u64) -> Self

Construct an InvPtr from an FOT entry and an offset.

source

pub fn is_null(&self) -> bool

Check if an invariant pointer is null.

source

pub fn null() -> Self

Construct a null raw pointer.

source

pub unsafe fn inner(&mut self) -> *mut AtomicU64

Get a reference to the inner raw 64 bits of the invariant pointer.

§Safety

See this crate’s base documentation (Isolation Safety). Additionally, the caller is expected to maintain the correct semantics of invariant pointers.

Trait Implementations§

source§

impl<T> !Unpin for AtomicInvPtr<T>

Auto Trait Implementations§

§

impl<T> !Freeze for AtomicInvPtr<T>

§

impl<T> ObjSafe for AtomicInvPtr<T>
where T: ObjSafe,

§

impl<T> RefUnwindSafe for AtomicInvPtr<T>
where T: RefUnwindSafe,

§

impl<T> Send for AtomicInvPtr<T>
where T: Send,

§

impl<T> Sync for AtomicInvPtr<T>
where T: Sync,

§

impl<T> UnwindSafe for AtomicInvPtr<T>
where T: UnwindSafe,

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.

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.

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.
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.