KernelShadow

Struct KernelShadow 

Source
pub struct KernelShadow<'a, const TS: usize, const BS: usize, const BC: usize, AP, PP, PT, PK, SS>
where AP: AccessPolicy, PP: PersistPolicy<PK>, PT: PersistTrigger<PK>, BitsImpl<BC>: Bits,
{ /* private fields */ }

Implementations§

Source§

impl<'a, const TS: usize, const BS: usize, const BC: usize, AP, PP, PT, PK, SS> KernelShadow<'a, TS, BS, BC, AP, PP, PT, PK, SS>
where AP: AccessPolicy, PP: PersistPolicy<PK>, PT: PersistTrigger<PK>, BitsImpl<BC>: Bits,

Source

pub fn with_view<R>( &self, f: impl FnOnce(&mut KernelView<'_, TS, BS, BC>) -> R, ) -> R

Source

pub unsafe fn with_view_unchecked<R>( &self, f: impl FnOnce(&mut KernelView<'_, TS, BS, BC>) -> R, ) -> R

§Safety

This function is unsafe because it requires exclusive access to the ShadowStorage. You must ensure that no other code is accessing the ShadowStorage at the same time. Generally, if your kernel is running inside an ISR and cannot be interrupted by other ISRs, then it is safe to call this function.

Auto Trait Implementations§

§

impl<'a, const TS: usize, const BS: usize, const BC: usize, AP, PP, PT, PK, SS> Freeze for KernelShadow<'a, TS, BS, BC, AP, PP, PT, PK, SS>

§

impl<'a, const TS: usize, const BS: usize, const BC: usize, AP, PP, PT, PK, SS> !RefUnwindSafe for KernelShadow<'a, TS, BS, BC, AP, PP, PT, PK, SS>

§

impl<'a, const TS: usize, const BS: usize, const BC: usize, AP, PP, PT, PK, SS> !Send for KernelShadow<'a, TS, BS, BC, AP, PP, PT, PK, SS>

§

impl<'a, const TS: usize, const BS: usize, const BC: usize, AP, PP, PT, PK, SS> !Sync for KernelShadow<'a, TS, BS, BC, AP, PP, PT, PK, SS>

§

impl<'a, const TS: usize, const BS: usize, const BC: usize, AP, PP, PT, PK, SS> Unpin for KernelShadow<'a, TS, BS, BC, AP, PP, PT, PK, SS>

§

impl<'a, const TS: usize, const BS: usize, const BC: usize, AP, PP, PT, PK, SS> !UnwindSafe for KernelShadow<'a, TS, BS, BC, AP, PP, PT, PK, SS>

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.