Struct devices::pci::vfio_pci::VfioMsixCap
source · struct VfioMsixCap {
config: MsixConfig,
offset: u32,
table_size: u16,
table_pci_bar: PciBarIndex,
table_offset: u64,
table_size_bytes: u64,
pba_pci_bar: PciBarIndex,
pba_offset: u64,
pba_size_bytes: u64,
msix_interrupt_evt: Vec<Event>,
}
Fields§
§config: MsixConfig
§offset: u32
§table_size: u16
§table_pci_bar: PciBarIndex
§table_offset: u64
§table_size_bytes: u64
§pba_pci_bar: PciBarIndex
§pba_offset: u64
§pba_size_bytes: u64
§msix_interrupt_evt: Vec<Event>
Implementations§
source§impl VfioMsixCap
impl VfioMsixCap
fn new( config: &VfioPciConfig, msix_cap_start: u32, vm_socket_irq: Tube, pci_id: u32, device_name: String ) -> Self
fn is_msix_control_reg(&self, offset: u32, size: u32) -> bool
fn read_msix_control(&self, data: &mut u32)
fn write_msix_control(&mut self, data: &[u8]) -> Option<VfioMsiChange>
fn is_msix_table(&self, bar_index: PciBarIndex, offset: u64) -> bool
fn get_msix_table(&self, bar_index: PciBarIndex) -> Option<AddressRange>
fn read_table(&self, offset: u64, data: &mut [u8])
fn write_table(&mut self, offset: u64, data: &[u8]) -> MsixStatus
fn is_msix_pba(&self, bar_index: PciBarIndex, offset: u64) -> bool
fn get_msix_pba(&self, bar_index: PciBarIndex) -> Option<AddressRange>
fn read_pba(&self, offset: u64, data: &mut [u8])
fn write_pba(&mut self, offset: u64, data: &[u8])
fn get_msix_irqfd(&self, index: usize) -> Option<&Event>
fn get_msix_irqfds(&self) -> Vec<Option<&Event>>
fn table_size(&self) -> usize
fn clone_msix_evt(&self) -> Vec<Event>
fn msix_vector_masked(&self, index: usize) -> bool
fn trigger(&mut self, index: usize)
fn destroy(&mut self)
Auto Trait Implementations§
impl RefUnwindSafe for VfioMsixCap
impl Send for VfioMsixCap
impl Sync for VfioMsixCap
impl Unpin for VfioMsixCap
impl UnwindSafe for VfioMsixCap
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.