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 Freeze for VfioMsixCap
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.