Crate ez_pci

Source
Expand description

To use PCI, use PciAccess::new_pci. To use PCIe, use PciAccess::new_pcie.

Then you can scan buses. For each bus, you can scan devices. For each device, you can scan functions. For each function, you can scan BARs, capabilities, and general info.

You can also find and configure MSI (Message Signaled Interrupts)

Structs§

ApicMsiMessageAddress
See Intel SDM -> Volume 3 -> 12.11.1 Message Address Register Format
ApicMsiMessageData
See Intel SDM -> Volume 3 -> 12.11.2 Message Data Register Format
BarCommon
Capabilities
Capability
CommandRegister
HeaderTypeByte
InterruptInfo
IoBarInfo
IoSpaceBar
McfgEntry
MemoryBarAddrAndSizeU32
MemoryBarAddrAndSizeU64
MemoryBarInfo
MemorySpaceBar
MessageControlRegister
Msi
MsiX
MsiXLocation
The table and pending bit array are stored inside a BAR. The BAR index and offset inside the BAR are encoded in a `u32``. PCI Local Bus Specification Rev. 3.0 -> 6.8.2.4. Table Offset/Table BIR for MSI-X
MsiXMessageControl
PCI Local Bus Specification Rev. 3.0 -> 6.8.2.3. Message Control for MSI-X
MsiXPendingBitArray
This array tells you which interrupts are pending delivery. This is read-only to the kernel.
MsiXTable
MsiXTableEntry
MsiXVectorControl
PCI Local Bus Specification Rev. 3.0 -> 6.8.2.9. Vector Control for MSI-X Table Entries
Pci
PciBus
PciDevice
PciFunction
Pcie
PhysAddr
A 64-bit physical memory address.
VolatilePtr
Wraps a pointer to make accesses to the referenced value volatile.

Enums§

BarWithSize
HeaderType
MemoryBarAddrAndSize
PciAccess

Traits§

MsiXTableEntryVolatileFieldAccess

Functions§

get_phys_range_to_map