Struct PciToPciBridgeHeader

Source
pub struct PciToPciBridgeHeader {
Show 21 fields pub base_addr: [u32; 2], pub secondary_latency_timer: u8, pub subordinate_bus_number: u8, pub secondary_bus_number: u8, pub primary_bus_number: u8, pub secondary_status: u16, pub io_limit: u8, pub io_base: u8, pub memory_limit: u16, pub memory_base: u16, pub prefetchable_memory_limit: u16, pub prefetchable_memory_base: u16, pub prefetchable_base_upper_32_bits: u32, pub prefetchable_limit_upper_32_bits: u32, pub io_limit_upper_16_bits: u16, pub io_base_upper_16_bits: u16, pub capability_pointer: u16, pub expansion_rom_base_addr: u32, pub bridge_control: u16, pub interrupt_pin: u8, pub interrupt_line: u8,
}
Expand description

The header for PCI to PCI bus bridges.

All fields are the raw values of every non-reserved register part in the configuration space.

The format of the header in PCI configuration space is the following.

+----------+---------+-------------+--------------+----------------+----------------+
| Register | Offset  |  Bits 31-24 | Bits 23-16   | Bits 15-8      | Bits 7-0       |
+----------+---------+-------------+--------------+----------------+----------------+
|   0x4    |   0x10  |                Base address #0 (BAR0)                        |
|   0x5    |   0x14  |                Base address #1 (BAR1)                        |
|   0x6    |   0x18  | S.Lat Timer | Subord. Bus  | Secondary Bus  | Primary Bus    |
|   0x7    |   0x1C  |     Secondondary Status    |    I/O Limit   |   I/O Base     |
|   0x8    |   0x20  |        Memory Limit        |            Memory Base          |
|   0x9    |   0x24  | Prefetchable Memory Limit  |    Prefetchable Memory Base     |
|   0xA    |   0x28  |            Prefetchable Base Upper 32 Bits                   |
|   0xB    |   0x2C  |            Prefetchable Limit Upper 32 Bits                  |
|   0xC    |   0x30  |   I/O Limit Upper 16 Bits  |     I/O Base Upper 16 Bits      |
|   0xD    |   0x34  |            Reserved        |      Capability Pointer         |
|   0xE    |   0x38  |               Expansion ROM base address                     |
|   0xF    |   0x3C  |       Bridge Control       | Interrupt PIN  | Interrupt Line |
+----------+---------+-------------+--------------+----------------+----------------+

Fields§

§base_addr: [u32; 2]§secondary_latency_timer: u8§subordinate_bus_number: u8§secondary_bus_number: u8§primary_bus_number: u8§secondary_status: u16§io_limit: u8§io_base: u8§memory_limit: u16§memory_base: u16§prefetchable_memory_limit: u16§prefetchable_memory_base: u16§prefetchable_base_upper_32_bits: u32§prefetchable_limit_upper_32_bits: u32§io_limit_upper_16_bits: u16§io_base_upper_16_bits: u16§capability_pointer: u16§expansion_rom_base_addr: u32§bridge_control: u16§interrupt_pin: u8§interrupt_line: u8

Implementations§

Source§

impl PciToPciBridgeHeader

Source

pub const LENGTH: usize = 64usize

Source

pub const ID: u8 = 1u8

Trait Implementations§

Source§

impl Clone for PciToPciBridgeHeader

Source§

fn clone(&self) -> PciToPciBridgeHeader

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PciToPciBridgeHeader

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.