PLIC

Struct PLIC 

Source
pub struct PLIC { /* private fields */ }
Expand description

Platform Level Interrupt Control

Implementations§

Source§

impl PLIC

Source

pub const PTR: *const RegisterBlock = {0x10000000 as *const plic::RegisterBlock}

Pointer to the register block

Source

pub const fn ptr() -> *const RegisterBlock

Return the pointer to the register block

Source

pub unsafe fn steal() -> Self

Steal an instance of this peripheral

§Safety

Ensure that the new instance of the peripheral cannot be used in a way that may race with any existing instances, for example by only accessing read-only or write-only registers, or by consuming the original peripheral and using critical sections to coordinate access between multiple new instances.

Additionally, other software such as HALs may rely on only one peripheral instance existing to ensure memory safety; ensure no stolen instances are passed to such software.

Methods from Deref<Target = RegisterBlock>§

Source

pub fn prio(&self, n: usize) -> &PRIO

0x00..0x400 - Interrupt Priority Register

Source

pub fn ip(&self, n: usize) -> &IP

0x1000..0x1024 - Interrupt Pending Register

Source

pub fn mie(&self, n: usize) -> &MIE

0x2000..0x2024 - Machine Mode Interrupt Enable Register

Source

pub fn sie(&self, n: usize) -> &SIE

0x2080..0x20a4 - Supervisor Mode Interrupt Enable Register

Source

pub fn ctrl(&self) -> &CTRL

0x1ffffc - Control Register

Source

pub fn mth(&self) -> &MTH

0x200000 - Machine Mode Priority Threshold Register

Source

pub fn mclaim(&self) -> &MCLAIM

0x200004 - Machine Mode Claim/Complete Register

Source

pub fn sth(&self) -> &STH

0x201000 - Supervisor Mode Priority Threshold Register

Source

pub fn sclaim(&self) -> &SCLAIM

0x201004 - Supervisor Mode Claim/Complete Register

Trait Implementations§

Source§

impl Debug for PLIC

Source§

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

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

impl Deref for PLIC

Source§

type Target = RegisterBlock

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl Send for PLIC

Auto Trait Implementations§

§

impl Freeze for PLIC

§

impl RefUnwindSafe 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> 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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
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.