PLIC

Struct PLIC 

Source
pub struct PLIC;
Expand description

PLIC peripheral

Implementations§

Source§

impl PLIC

Source

pub fn is_interrupting() -> bool

Returns true if a machine external interrupt is pending.

Source

pub fn is_enabled() -> bool

Returns true if Machine External Interrupts are enabled.

Source

pub unsafe fn enable()

Enables machine external interrupts to allow the PLIC to trigger interrupts.

§Safety

Enabling the PLIC may break mask-based critical sections.

Source

pub fn disable()

Disables machine external interrupts to prevent the PLIC from triggering interrupts.

Source

pub fn priorities() -> PRIORITIES

Returns the priorities register of the PLIC.

Source

pub fn pendings() -> PENDINGS

Returns the pendings register of the PLIC.

Source

pub fn ctx<H>(hart_id: H) -> CTX<PLIC>
where H: HartIdNumber,

Returns the context proxy of a given PLIC HART context.

Source

pub fn ctx_mhartid() -> CTX<PLIC>

Returns the PLIC HART context for the current HART.

§Note

This function determines the current HART ID by reading the riscv::register::mhartid CSR. Thus, it can only be used in M-mode. For S-mode, use PLIC::ctx instead.

Source§

impl PLIC

Source

pub fn ctx0() -> CTX<PLIC>

Returns a PLIC context proxy for context of HART 0 .

Trait Implementations§

Source§

impl Clone for PLIC

Source§

fn clone(&self) -> PLIC

Returns a duplicate 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 Debug for PLIC

Source§

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

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

impl PartialEq for PLIC

Source§

fn eq(&self, other: &PLIC) -> bool

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

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 Plic for PLIC

Source§

const BASE: usize = 201_326_592usize

Base address of the PLIC peripheral.
Source§

impl Copy for PLIC

Source§

impl Eq for PLIC

Source§

impl StructuralPartialEq for PLIC

Auto Trait Implementations§

§

impl Freeze for PLIC

§

impl RefUnwindSafe for PLIC

§

impl Send for PLIC

§

impl Sync for PLIC

§

impl Unpin for PLIC

§

impl UnwindSafe for PLIC

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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.