pub struct IvhdBlock {
pub typ: IvhdType,
pub flags: IvhdFlags,
pub length: u16,
pub device_id: u16,
pub capability_offset: u16,
pub ioapic_id: u8,
pub iommu_base: u64,
pub pci_segment: u16,
pub mmio_base: Option<u64>,
device_entries_off: u64,
device_entries_len: usize,
}Expand description
Parsed IVHD (I/O Virtualization Hardware Definition) block.
Describes one AMD IOMMU hardware unit and the devices behind it.
Fields§
§typ: IvhdTypeIVHD type (0x10 = legacy, 0x11 = extended).
flags: IvhdFlagsFlags.
length: u16Length of this IVHD block (including device entries).
device_id: u16PCI device ID of the IOMMU itself.
capability_offset: u16Offset into PCI capability space for the IOMMU capabilities.
ioapic_id: u8I/O APIC ID associated with this IOMMU.
iommu_base: u64Physical base address of the IOMMU registers.
pci_segment: u16PCI segment group.
mmio_base: Option<u64>MMIO base address (only for extended type 0x11).
device_entries_off: u64Raw pointer to the first device entry in this block.
device_entries_len: usizeLength available for device entries.
Implementations§
Source§impl IvhdBlock
impl IvhdBlock
Sourcepub fn device_entries(&self) -> IvhdDevEntryIter<'_>
pub fn device_entries(&self) -> IvhdDevEntryIter<'_>
Iterate over device entries within this IVHD block.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for IvhdBlock
impl RefUnwindSafe for IvhdBlock
impl Send for IvhdBlock
impl Sync for IvhdBlock
impl Unpin for IvhdBlock
impl UnsafeUnpin for IvhdBlock
impl UnwindSafe for IvhdBlock
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more