pub struct IrqLine { /* private fields */ }Expand description
IRQ delivery channel for a single virtio-MMIO device.
Cloning is cheap (Arc and friends); the underlying GIC handle is shared
across every device on the bus.
Implementations§
Source§impl IrqLine
impl IrqLine
Sourcepub fn new(gic: Arc<dyn Gic + Send + Sync>, intid: IntId) -> Self
pub fn new(gic: Arc<dyn Gic + Send + Sync>, intid: IntId) -> Self
Build an IRQ line from a GIC handle and the device’s INTID.
Sourcepub fn status(&self) -> Arc<AtomicU32>
pub fn status(&self) -> Arc<AtomicU32>
Atomic shadow of the MMIO InterruptStatus register. The transport
BusDevice reads this on 0x60 reads and clears the matching bits on
0x64 writes.
Sourcepub fn trigger_queue(&self) -> Result<(), GicError>
pub fn trigger_queue(&self) -> Result<(), GicError>
Sourcepub fn trigger_config(&self) -> Result<(), GicError>
pub fn trigger_config(&self) -> Result<(), GicError>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for IrqLine
impl !RefUnwindSafe for IrqLine
impl Send for IrqLine
impl Sync for IrqLine
impl Unpin for IrqLine
impl UnsafeUnpin for IrqLine
impl !UnwindSafe for IrqLine
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