Struct kernel::grant::CustomGrant
source · pub struct CustomGrant<T> { /* private fields */ }
Expand description
Grant which was allocated from the kernel-owned grant region in a specific
process’s memory, separately from a normal Grant
.
A CustomGrant
allows a capsule to allocate additional memory on behalf
of a process.
Implementations§
source§impl<T> CustomGrant<T>
impl<T> CustomGrant<T>
sourcepub fn processid(&self) -> ProcessId
pub fn processid(&self) -> ProcessId
Helper function to get the ProcessId
from the custom grant.
sourcepub fn enter<F, R>(&self, fun: F) -> Result<R, Error>
pub fn enter<F, R>(&self, fun: F) -> Result<R, Error>
Gives access to inner data within the given closure.
If the process has since been restarted or crashed, or the memory is
otherwise no longer present, then this function will not call the given
closure, and will instead directly return Err(Error::NoSuchApp)
.
Because this function requires &mut self
, it should be impossible to
access the inner data of a given CustomGrant
reentrantly. Thus the
reentrance detection we use for non-custom grants is not needed here.
Auto Trait Implementations§
impl<T> Freeze for CustomGrant<T>
impl<T> !RefUnwindSafe for CustomGrant<T>
impl<T> !Send for CustomGrant<T>
impl<T> !Sync for CustomGrant<T>
impl<T> Unpin for CustomGrant<T>where
T: Unpin,
impl<T> !UnwindSafe for CustomGrant<T>
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