Skip to main content

MmioCam

Struct MmioCam 

pub struct MmioCam<'a> { /* private fields */ }
Expand description

ConfigurationAccess implementation for memory-mapped access to a PCI root complex, via either a 16 MiB region for the PCI Configuration Access Mechanism or a 256 MiB region for the PCIe Enhanced Configuration Access Mechanism.

Implementations§

§

impl MmioCam<'_>

pub unsafe fn new(mmio_base: *mut u8, cam: Cam) -> MmioCam<'_>

Wraps the PCI root complex with the given MMIO base address.

Panics if the base address is not aligned to a 4-byte boundary.

§Safety

mmio_base must be a valid pointer to an appropriately-mapped MMIO region of at least 16 MiB (if cam == Cam::MmioCam) or 256 MiB (if cam == Cam::Ecam). The pointer must be valid for the lifetime 'a, which implies that no Rust references may be used to access any of the memory region at least during that lifetime.

Trait Implementations§

§

impl ConfigurationAccess for MmioCam<'_>

§

fn read_word(&self, device_function: DeviceFunction, register_offset: u8) -> u32

Reads 4 bytes from the configuration space.
§

fn write_word( &mut self, device_function: DeviceFunction, register_offset: u8, data: u32, )

Writes 4 bytes to the configuration space.
§

unsafe fn unsafe_clone(&self) -> MmioCam<'_>

Makes a clone of the ConfigurationAccess, accessing the same PCI bus. Read more
§

impl Sync for MmioCam<'_>

Auto Trait Implementations§

§

impl<'a> Freeze for MmioCam<'a>

§

impl<'a> RefUnwindSafe for MmioCam<'a>

§

impl<'a> Send for MmioCam<'a>

§

impl<'a> Unpin for MmioCam<'a>

§

impl<'a> UnsafeUnpin for MmioCam<'a>

§

impl<'a> UnwindSafe for MmioCam<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.