pub struct PciConfig {
ecam_base: usize,
}Expand description
PCI configuration space accessor
Provides safe access to PCI configuration space through ECAM mapping.
Fields§
§ecam_base: usizeBase address of ECAM region
Implementations§
Source§impl PciConfig
impl PciConfig
Sourcefn config_address(&self, addr: &PciAddress, offset: usize) -> usize
fn config_address(&self, addr: &PciAddress, offset: usize) -> usize
Calculate the physical address for a configuration register
Sourcepub fn read_u32(&self, addr: &PciAddress, offset: usize) -> u32
pub fn read_u32(&self, addr: &PciAddress, offset: usize) -> u32
Sourcepub fn write_u32(&self, addr: &PciAddress, offset: usize, value: u32)
pub fn write_u32(&self, addr: &PciAddress, offset: usize, value: u32)
Sourcepub fn read_u16(&self, addr: &PciAddress, offset: usize) -> u16
pub fn read_u16(&self, addr: &PciAddress, offset: usize) -> u16
Sourcepub fn write_u16(&self, addr: &PciAddress, offset: usize, value: u16)
pub fn write_u16(&self, addr: &PciAddress, offset: usize, value: u16)
Write a 16-bit value to PCI configuration space
§Arguments
addr- PCI device addressoffset- Offset within configuration space (must be 2-byte aligned)value- Value to write
Sourcepub fn read_u8(&self, addr: &PciAddress, offset: usize) -> u8
pub fn read_u8(&self, addr: &PciAddress, offset: usize) -> u8
Sourcepub fn write_u8(&self, addr: &PciAddress, offset: usize, value: u8)
pub fn write_u8(&self, addr: &PciAddress, offset: usize, value: u8)
Write an 8-bit value to PCI configuration space
§Arguments
addr- PCI device addressoffset- Offset within configuration spacevalue- Value to write
Sourcepub fn read_vendor_id(&self, addr: &PciAddress) -> u16
pub fn read_vendor_id(&self, addr: &PciAddress) -> u16
Read vendor ID
Sourcepub fn read_device_id(&self, addr: &PciAddress) -> u16
pub fn read_device_id(&self, addr: &PciAddress) -> u16
Read device ID
Sourcepub fn read_class_code(&self, addr: &PciAddress) -> u32
pub fn read_class_code(&self, addr: &PciAddress) -> u32
Read class code (24-bit: base class, sub class, interface)
Sourcepub fn read_header_type(&self, addr: &PciAddress) -> u8
pub fn read_header_type(&self, addr: &PciAddress) -> u8
Read header type