Nothing to see here, move along meow
0

Configure Feed

Select the types of activity you want to include in your feed.

at main 1.8 kB View raw
1use core::mem::size_of; 2 3pub const BAR_TAG_NONE: u8 = 0; 4pub const BAR_TAG_MEMORY: u8 = 1; 5pub const BAR_TAG_IO: u8 = 2; 6 7pub const BAR_FLAG_64BIT: u8 = 1; 8pub const BAR_FLAG_PREFETCHABLE: u8 = 2; 9 10#[derive(Debug, Clone, Copy)] 11#[repr(C)] 12#[derive(zerocopy::FromBytes, zerocopy::IntoBytes, zerocopy::KnownLayout, zerocopy::Immutable)] 13pub struct BarInfoWire { 14 pub tag: u8, 15 pub flags: u8, 16 pub io_port_base: u16, 17 pub io_size: u16, 18 pub _reserved: [u8; 2], 19 pub mem_phys_base: u64, 20 pub mem_size: u64, 21} 22 23impl BarInfoWire { 24 pub const fn zeroed() -> Self { 25 Self { 26 tag: BAR_TAG_NONE, 27 flags: 0, 28 io_port_base: 0, 29 io_size: 0, 30 _reserved: [0; 2], 31 mem_phys_base: 0, 32 mem_size: 0, 33 } 34 } 35} 36 37#[derive(Debug, Clone, Copy)] 38#[repr(C)] 39#[derive(zerocopy::FromBytes, zerocopy::IntoBytes, zerocopy::KnownLayout, zerocopy::Immutable)] 40pub struct BlockedRangeWire { 41 pub start: u16, 42 pub end: u16, 43} 44 45impl BlockedRangeWire { 46 pub const fn zeroed() -> Self { 47 Self { start: 0, end: 0 } 48 } 49} 50 51#[derive(Debug, Clone, Copy)] 52#[repr(C)] 53#[derive(zerocopy::FromBytes, zerocopy::IntoBytes, zerocopy::KnownLayout, zerocopy::Immutable)] 54pub struct PciDeviceInfoWire { 55 pub bus: u8, 56 pub device: u8, 57 pub function: u8, 58 pub class_code: u8, 59 pub subclass: u8, 60 pub prog_if: u8, 61 pub header_type: u8, 62 pub interrupt_line: u8, 63 pub interrupt_pin: u8, 64 pub _pad0: u8, 65 pub vendor_id: u16, 66 pub device_id: u16, 67 pub _pad1: [u8; 2], 68 pub bars: [BarInfoWire; 6], 69 pub blocked_config_ranges: [BlockedRangeWire; 4], 70} 71 72const _: () = assert!(size_of::<BarInfoWire>() == 24); 73const _: () = assert!(size_of::<BlockedRangeWire>() == 4); 74const _: () = assert!(size_of::<PciDeviceInfoWire>() == 176);