pub struct GicV2mSignalMsi { /* private fields */ }Expand description
A [SignalMsi] implementation that decodes GIC v2m-style MSIs and delivers
them as SPI assertions via ControlGic.
When a device fires an MSI it writes the assigned GIC interrupt ID to the
SETSPI_NS register inside the v2m frame (frame_base + 0x0040). The host
intercepts that write (or for software devices, synthesises it) and calls
signal_msi with address = frame_base + 0x0040
and data = interrupt_id. This struct validates the address and SPI range
then calls ControlGic::set_spi_irq.
Implementations§
Source§impl GicV2mSignalMsi
impl GicV2mSignalMsi
Sourcepub fn new(v2m: &GicV2mInfo, irqcon: Arc<dyn ControlGic>) -> Self
pub fn new(v2m: &GicV2mInfo, irqcon: Arc<dyn ControlGic>) -> Self
Create a new GicV2mSignalMsi from v2m frame info and a GIC controller.
Trait Implementations§
Source§impl SignalMsi for GicV2mSignalMsi
impl SignalMsi for GicV2mSignalMsi
Auto Trait Implementations§
impl Freeze for GicV2mSignalMsi
impl !RefUnwindSafe for GicV2mSignalMsi
impl Send for GicV2mSignalMsi
impl Sync for GicV2mSignalMsi
impl Unpin for GicV2mSignalMsi
impl !UnwindSafe for GicV2mSignalMsi
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