Struct kernel::process::FunctionCall
source · pub struct FunctionCall {
pub source: FunctionCallSource,
pub argument0: usize,
pub argument1: usize,
pub argument2: usize,
pub argument3: CapabilityPtr,
pub pc: CapabilityPtr,
}
Expand description
Struct that defines a upcall that can be passed to a process. The upcall
takes four arguments that are Driver
and upcall specific, so they are
represented generically here.
Likely these four arguments will get passed as the first four register values, but this is architecture-dependent.
A FunctionCall
also identifies the upcall that scheduled it, if any, so
that it can be unscheduled when the process unsubscribes from this upcall.
Fields§
§source: FunctionCallSource
Whether the kernel called this directly or this is an upcall.
argument0: usize
The first argument to the function.
argument1: usize
The second argument to the function.
argument2: usize
The third argument to the function.
argument3: CapabilityPtr
The userdata provided by the process via subscribe
pc: CapabilityPtr
The PC of the function to execute.
Trait Implementations§
source§impl Clone for FunctionCall
impl Clone for FunctionCall
source§fn clone(&self) -> FunctionCall
fn clone(&self) -> FunctionCall
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 FunctionCall
impl Debug for FunctionCall
impl Copy for FunctionCall
Auto Trait Implementations§
impl Freeze for FunctionCall
impl RefUnwindSafe for FunctionCall
impl !Send for FunctionCall
impl !Sync for FunctionCall
impl Unpin for FunctionCall
impl UnwindSafe for FunctionCall
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§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
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
)