#[repr(C)]pub struct Plic { /* private fields */ }
Expand description
The Platform-Level Interrupt Controller (PLIC) distributes received interrupts to targets, generally HART contexts. Its interface is described here.
Implementations§
Source§impl Plic
impl Plic
pub fn init(&self, num_interrupts: usize)
pub fn set_source_priority(&self, source: usize, priority: usize)
pub fn enable_interrupt(&self, context: usize, source: usize)
pub fn set_context_threshold(&self, context: usize, threshold: u32)
Sourcepub fn claim_interrupt(&self, context: usize) -> u32
pub fn claim_interrupt(&self, context: usize) -> u32
Claim an interrupt on the given interrupt context. Returns the ID of the highest priority pending interrupt, or zero if there is no pending interrupt. Automatically clears the corresponding interrupt pending bit.
Sourcepub fn complete_interrupt(&self, context: usize, interrupt: u32)
pub fn complete_interrupt(&self, context: usize, interrupt: u32)
Signal to the PLIC that the given interrupt has been handled. This is required to receive another interrupt of the same type.
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> 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