Type Alias CNode

Source
pub type CNode<C = NoExplicitInvocationContext> = Cap<CNode, C>;

Aliased Type§

struct CNode<C = NoExplicitInvocationContext> { /* private fields */ }

Implementations§

Source§

impl<C> CNode<C>

Source

pub fn absolute_cptr<T: HasCPtrWithDepth>(self, path: T) -> AbsoluteCPtr<C>

Returns the AbsoluteCPtr for path in the context of self.

Source

pub fn absolute_cptr_from_bits_with_depth( self, bits: CPtrBits, depth: usize, ) -> AbsoluteCPtr<C>

Returns the AbsoluteCPtr for CPtrWithDepth::from_bits_with_depth(bits, depth) in the context of self.

Source

pub fn absolute_cptr_for_self(self) -> AbsoluteCPtr<C>

Returns the AbsoluteCPtr for self in its own context.

Currently implemented as:

self.absolute_cptr(CPtrWithDepth::empty())
Source§

impl<T: CapType> Cap<T>

Source

pub const fn from_cptr(cptr: CPtr) -> Self

Source

pub const fn from_bits(bits: CPtrBits) -> Self

Source§

impl<T: CapType> Cap<T>

Source

pub fn debug_identify(self) -> u32

Corresponds to seL4_DebugCapIdentify.

Source§

impl<T: CapTypeForFrameObject, C: InvocationContext> Cap<T, C>

Source

pub fn frame_map( self, vspace: VSpace, vaddr: usize, rights: CapRights, attrs: VmAttributes, ) -> Result<()>

Corresponds to seL4_ARM_Page_Map.

Source

pub fn frame_unmap(self) -> Result<()>

Corresponds to seL4_ARM_Page_Unmap.

Source

pub fn frame_get_address(self) -> Result<usize>

Corresponds to seL4_ARM_Page_GetAddress.

Source§

impl<T: CapType, C> Cap<T, C>

Source

pub fn upcast(self) -> Unspecified<C>

Source§

impl<T: CapType, C> Cap<T, C>

Source

pub const fn cptr(&self) -> CPtr

Source

pub const fn bits(&self) -> CPtrBits

Source

pub fn cast<T1: CapType>(self) -> Cap<T1, C>

Source

pub fn with<C1>(self, context: C1) -> Cap<T, C1>

Source

pub fn without_context(self) -> Cap<T>

Source

pub fn into_invocation_context(self) -> C

Source§

impl<T: IpcCapType, C: InvocationContext> Cap<T, C>

Source

pub fn nb_send_recv<U: IpcCapType>( self, info: MessageInfo, src: Cap<U>, reply_authority: impl ConveysReplyAuthority, ) -> (MessageInfo, Badge)

Corresponds to seL4_NBSendRecv.

Trait Implementations

Source§

impl<T: Clone + CapType, C: Clone> Clone for Cap<T, C>

Source§

fn clone(&self) -> Cap<T, C>

Returns a copy of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: CapType, C> Debug for Cap<T, C>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T: CapType, C> HasCPtrWithDepth for Cap<T, C>

Source§

fn cptr_with_depth(self) -> CPtrWithDepth

Returns the logical CPtrWithDepth entailed by self.
Source§

impl<T: Hash + CapType, C: Hash> Hash for Cap<T, C>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given [Hasher]. Read more
1.3.0§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given [Hasher]. Read more
Source§

impl<T: Ord + CapType, C: Ord> Ord for Cap<T, C>

Source§

fn cmp(&self, other: &Cap<T, C>) -> Ordering

This method returns an [Ordering] between self and other. Read more
1.21.0§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl<T: PartialEq + CapType, C: PartialEq> PartialEq for Cap<T, C>

Source§

fn eq(&self, other: &Cap<T, C>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T: PartialOrd + CapType, C: PartialOrd> PartialOrd for Cap<T, C>

Source§

fn partial_cmp(&self, other: &Cap<T, C>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<T: Copy + CapType, C: Copy> Copy for Cap<T, C>

Source§

impl<T: Eq + CapType, C: Eq> Eq for Cap<T, C>

Source§

impl<T: CapType, C> StructuralPartialEq for Cap<T, C>