pub struct PciAddress {
pub segment: u16,
pub bus: u8,
pub device: u8,
pub function: u8,
}Expand description
PCI device address components
Fields§
§segment: u16PCI segment/domain (usually 0)
bus: u8Bus number (0-255)
device: u8Device number (0-31)
function: u8Function number (0-7)
Implementations§
Source§impl PciAddress
impl PciAddress
Sourcepub const fn new(segment: u16, bus: u8, device: u8, function: u8) -> Self
pub const fn new(segment: u16, bus: u8, device: u8, function: u8) -> Self
Create a new PCI address
Sourcepub const fn ecam_offset(&self) -> usize
pub const fn ecam_offset(&self) -> usize
Calculate ECAM offset for this address
ECAM uses a flat memory mapping where each function gets 4KB: offset = (bus << 20) | (device << 15) | (function << 12)
Trait Implementations§
Source§impl Clone for PciAddress
impl Clone for PciAddress
Source§fn clone(&self) -> PciAddress
fn clone(&self) -> PciAddress
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for PciAddress
impl Debug for PciAddress
Source§impl PartialEq for PciAddress
impl PartialEq for PciAddress
impl Copy for PciAddress
impl Eq for PciAddress
impl StructuralPartialEq for PciAddress
Auto Trait Implementations§
impl Freeze for PciAddress
impl RefUnwindSafe for PciAddress
impl Send for PciAddress
impl Sync for PciAddress
impl Unpin for PciAddress
impl UnwindSafe for PciAddress
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.