Struct rustsbi::RustSBI

source ·
pub struct RustSBI<T, I, R, H, S, P> { /* private fields */ }
Expand description

RustSBI instance including standard extensions

By now RustSBI supports to run instance based interface on systems has environment pointer width that is the same as supervisor pointer width.

Implementations§

source§

impl<T: Timer, I: Ipi, R: Fence, H: Hsm, S: Reset, P: Pmu> RustSBI<T, I, R, H, S, P>

source

pub const fn new_machine(timer: T, ipi: I, rfnc: R, hsm: H, srst: S, pmu: P) -> Self

Create RustSBI instance on current machine environment for all the SBI extensions

source

pub fn handle_ecall( &mut self, extension: usize, function: usize, param: [usize; 6] ) -> SbiRet

Handle supervisor environment call with given parameters and return the SbiRet result.

Trait Implementations§

source§

impl<T: Clone, I: Clone, R: Clone, H: Clone, S: Clone, P: Clone> Clone for RustSBI<T, I, R, H, S, P>

source§

fn clone(&self) -> RustSBI<T, I, R, H, S, P>

Returns a copy of the value. Read more
1.0.0 · source§

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

Performs copy-assignment from source. Read more
source§

impl<T: Debug, I: Debug, R: Debug, H: Debug, S: Debug, P: Debug> Debug for RustSBI<T, I, R, H, S, P>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T, I, R, H, S, P> RefUnwindSafe for RustSBI<T, I, R, H, S, P>where H: RefUnwindSafe, I: RefUnwindSafe, P: RefUnwindSafe, R: RefUnwindSafe, S: RefUnwindSafe, T: RefUnwindSafe,

§

impl<T, I, R, H, S, P> Send for RustSBI<T, I, R, H, S, P>where H: Send, I: Send, P: Send, R: Send, S: Send, T: Send,

§

impl<T, I, R, H, S, P> Sync for RustSBI<T, I, R, H, S, P>where H: Sync, I: Sync, P: Sync, R: Sync, S: Sync, T: Sync,

§

impl<T, I, R, H, S, P> Unpin for RustSBI<T, I, R, H, S, P>where H: Unpin, I: Unpin, P: Unpin, R: Unpin, S: Unpin, T: Unpin,

§

impl<T, I, R, H, S, P> UnwindSafe for RustSBI<T, I, R, H, S, P>where H: UnwindSafe, I: UnwindSafe, P: UnwindSafe, R: UnwindSafe, S: UnwindSafe, T: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

const: unstable · source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

const: unstable · 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 Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
const: unstable · source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
const: unstable · source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.