pub struct ConfigSpace<'a, S: ConfigSpaceKind = Extended> { /* private fields */ }Expand description
The PCI configuration space of a device.
Provides typed read and write accessors for configuration registers
using the standard pci_read_config_* and pci_write_config_* helpers.
The generic parameter S indicates the maximum size of the configuration space.
Use Normal for 256-byte legacy configuration space or Extended for
4096-byte PCIe extended configuration space (default).
Trait Implementations§
Source§impl<'a, S: ConfigSpaceKind> Io for ConfigSpace<'a, S>
impl<'a, S: ConfigSpaceKind> Io for ConfigSpace<'a, S>
Source§fn addr(&self) -> usize
fn addr(&self) -> usize
Returns the base address of the I/O region. It is always 0 for configuration space.
Source§fn io_addr<U>(&self, offset: usize) -> Result<usize>
fn io_addr<U>(&self, offset: usize) -> Result<usize>
Returns the absolute I/O address for a given
offset,
performing runtime bound checks.Source§fn try_read8(&self, offset: usize) -> Result<u8>
fn try_read8(&self, offset: usize) -> Result<u8>
Fallible 8-bit read with runtime bounds check.
Source§fn try_read16(&self, offset: usize) -> Result<u16>
fn try_read16(&self, offset: usize) -> Result<u16>
Fallible 16-bit read with runtime bounds check.
Source§fn try_read32(&self, offset: usize) -> Result<u32>
fn try_read32(&self, offset: usize) -> Result<u32>
Fallible 32-bit read with runtime bounds check.
Source§fn try_write8(&self, value: u8, offset: usize) -> Result
fn try_write8(&self, value: u8, offset: usize) -> Result
Fallible 8-bit write with runtime bounds check.
Source§fn try_write16(&self, value: u16, offset: usize) -> Result
fn try_write16(&self, value: u16, offset: usize) -> Result
Fallible 16-bit write with runtime bounds check.
Source§fn try_write32(&self, value: u32, offset: usize) -> Result
fn try_write32(&self, value: u32, offset: usize) -> Result
Fallible 32-bit write with runtime bounds check.
Source§fn write8(&self, value: u8, offset: usize)
fn write8(&self, value: u8, offset: usize)
Infallible 8-bit write with compile-time bounds check.
Source§fn write16(&self, value: u16, offset: usize)
fn write16(&self, value: u16, offset: usize)
Infallible 16-bit write with compile-time bounds check.
Source§fn write32(&self, value: u32, offset: usize)
fn write32(&self, value: u32, offset: usize)
Infallible 32-bit write with compile-time bounds check.
Source§fn try_read<T, L>(&self, location: L) -> Result<T>
fn try_read<T, L>(&self, location: L) -> Result<T>
Generic fallible read with runtime bounds check. Read more
Source§fn try_write<T, L>(&self, location: L, value: T) -> Result
fn try_write<T, L>(&self, location: L, value: T) -> Result
Generic fallible write with runtime bounds check. Read more
Source§fn try_write_reg<T, L, V>(&self, value: V) -> Result
fn try_write_reg<T, L, V>(&self, value: V) -> Result
Generic fallible write of a fully-located register value. Read more
Source§fn try_update<T, L, F>(&self, location: L, f: F) -> Result
fn try_update<T, L, F>(&self, location: L, f: F) -> Result
Generic fallible update with runtime bounds check. Read more
Source§fn read<T, L>(&self, location: L) -> T
fn read<T, L>(&self, location: L) -> T
Generic infallible read with compile-time bounds check. Read more
Source§fn write<T, L>(&self, location: L, value: T)
fn write<T, L>(&self, location: L, value: T)
Generic infallible write with compile-time bounds check. Read more
Source§fn write_reg<T, L, V>(&self, value: V)where
L: IoLoc<T>,
V: LocatedRegister<Location = L, Value = T>,
Self: IoKnownSize + IoCapable<L::IoType>,
fn write_reg<T, L, V>(&self, value: V)where
L: IoLoc<T>,
V: LocatedRegister<Location = L, Value = T>,
Self: IoKnownSize + IoCapable<L::IoType>,
Generic infallible write of a fully-located register value. Read more
Source§impl<'a, S: ConfigSpaceKind> IoCapable<u16> for ConfigSpace<'a, S>
impl<'a, S: ConfigSpaceKind> IoCapable<u16> for ConfigSpace<'a, S>
Source§impl<'a, S: ConfigSpaceKind> IoCapable<u32> for ConfigSpace<'a, S>
impl<'a, S: ConfigSpaceKind> IoCapable<u32> for ConfigSpace<'a, S>
Source§impl<'a, S: ConfigSpaceKind> IoCapable<u8> for ConfigSpace<'a, S>
impl<'a, S: ConfigSpaceKind> IoCapable<u8> for ConfigSpace<'a, S>
Source§impl<'a, S: ConfigSpaceKind> IoKnownSize for ConfigSpace<'a, S>
impl<'a, S: ConfigSpaceKind> IoKnownSize for ConfigSpace<'a, S>
Auto Trait Implementations§
impl<'a, S> Freeze for ConfigSpace<'a, S>
impl<'a, S = Extended> !RefUnwindSafe for ConfigSpace<'a, S>
impl<'a, S = Extended> !Send for ConfigSpace<'a, S>
impl<'a, S = Extended> !Sync for ConfigSpace<'a, S>
impl<'a, S> Unpin for ConfigSpace<'a, S>where
S: Unpin,
impl<'a, S> UnsafeUnpin for ConfigSpace<'a, S>
impl<'a, S = Extended> !UnwindSafe for ConfigSpace<'a, S>
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
Source§impl<T> PinInit<T> for T
impl<T> PinInit<T> for T
Source§unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), Infallible>
unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), Infallible>
Initializes
slot. Read more