pub struct MsiConnection { /* private fields */ }Expand description
A late-bound MSI backend slot.
A connection carries no device identity — it is purely the backend that
MSIs are delivered to, filled in after construction via connect.
Identity is supplied when a target is derived via
msi_target, or when a
DmaTarget is built from it.
Implementations§
Source§impl MsiConnection
impl MsiConnection
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new disconnected MSI connection.
The connection is purely the late-bound MSI backend slot; it carries
no device identity. Callers stamp identity when they derive a target
via msi_target, or by building a
DmaTarget from it.
Sourcepub fn connect(&self, signal_msi: Arc<dyn SignalMsi>)
pub fn connect(&self, signal_msi: Arc<dyn SignalMsi>)
Updates the MSI target to which this connection signals interrupts.
Sourcepub fn connect_irqfd(&self, irqfd: Arc<dyn IrqFd>)
pub fn connect_irqfd(&self, irqfd: Arc<dyn IrqFd>)
Sets the [IrqFd] for kernel-mediated MSI route allocation.
When present, MsiTarget::new_route can create MsiRoute
instances for direct interrupt delivery.
Sourcepub fn msi_target(&self, bus_range: AssignedBusRange, devfn: u8) -> MsiTarget
pub fn msi_target(&self, bus_range: AssignedBusRange, devfn: u8) -> MsiTarget
Derives an MSI target with the given identity, sharing this connection’s (late-bound) backend slot.