pub struct MsixEmulator { /* private fields */ }
Expand description
Emulator for the hardware-level interface required to configure and trigger MSI-X interrupts on a PCI device.
Implementations§
Source§impl MsixEmulator
impl MsixEmulator
Sourcepub fn new(
bar: u8,
count: u16,
register_msi: &mut dyn RegisterMsi,
) -> (Self, impl PciCapability + use<>)
pub fn new( bar: u8, count: u16, register_msi: &mut dyn RegisterMsi, ) -> (Self, impl PciCapability + use<>)
Create a new MsixEmulator
instance, along with with its associated
PciCapability
structure.
This implementation of MSI-X expects a dedicated BAR to store the vector and pending tables.
DEVNOTE: This current implementation of MSI-X isn’t particularly “flexible” with respect to the various ways the PCI spec allows MSI-X to be implemented. e.g: it uses a shared BAR for the table and BPA, with fixed offsets into the BAR for both of those tables. It would be nice to re-visit this code and make it more flexible.
Trait Implementations§
Source§impl Clone for MsixEmulator
impl Clone for MsixEmulator
Source§fn clone(&self) -> MsixEmulator
fn clone(&self) -> MsixEmulator
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for MsixEmulator
impl !RefUnwindSafe for MsixEmulator
impl Send for MsixEmulator
impl Sync for MsixEmulator
impl Unpin for MsixEmulator
impl !UnwindSafe for MsixEmulator
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