|
2 | 2 |
|
3 | 3 | use crate::table::boot::{AllocateType, MemoryType}; |
4 | 4 | use crate::{Handle, PhysicalAddress, Status, newtype_enum}; |
| 5 | +use bitflags::bitflags; |
5 | 6 | use core::ffi::c_void; |
6 | 7 | use uguid::{Guid, guid}; |
7 | 8 |
|
@@ -37,6 +38,29 @@ newtype_enum! { |
37 | 38 | } |
38 | 39 | } |
39 | 40 |
|
| 41 | +bitflags! { |
| 42 | + /// Describes PCI I/O Protocol Attribute bitflags specified in UEFI specification. |
| 43 | + /// https://uefi.org/specs/UEFI/2.10_A/14_Protocols_PCI_Bus_Support.html |
| 44 | + #[repr(transparent)] |
| 45 | + #[derive(Copy, Clone, Debug, Eq, PartialEq)] |
| 46 | + pub struct PciRootBridgeIoProtocolAttribute: u64 { |
| 47 | + const PCI_ATTRIBUTE_ISA_MOTHERBOARD_IO = 0x0001; |
| 48 | + const PCI_ATTRIBUTE_ISA_IO = 0x0002; |
| 49 | + const PCI_ATTRIBUTE_VGA_PALETTE_IO = 0x0004; |
| 50 | + const PCI_ATTRIBUTE_VGA_MEMORY = 0x0008; |
| 51 | + const PCI_ATTRIBUTE_VGA_IO = 0x0010; |
| 52 | + const PCI_ATTRIBUTE_IDE_PRIMARY_IO = 0x0020; |
| 53 | + const PCI_ATTRIBUTE_IDE_SECONDARY_IO = 0x0040; |
| 54 | + const PCI_ATTRIBUTE_MEMORY_WRITE_COMBINE = 0x0080; |
| 55 | + const PCI_ATTRIBUTE_MEMORY_CACHED = 0x0800; |
| 56 | + const PCI_ATTRIBUTE_MEMORY_DISABLE = 0x1000; |
| 57 | + const PCI_ATTRIBUTE_DUAL_ADDRESS_CYCLE = 0x8000; |
| 58 | + const PCI_ATTRIBUTE_ISA_IO_16 = 0x10000; |
| 59 | + const PCI_ATTRIBUTE_VGA_PALETTE_IO_16 = 0x20000; |
| 60 | + const PCI_ATTRIBUTE_VGA_IO_16 = 0x40000; |
| 61 | + } |
| 62 | +} |
| 63 | + |
40 | 64 | #[derive(Debug)] |
41 | 65 | #[repr(C)] |
42 | 66 | pub struct PciRootBridgeIoAccess { |
|
0 commit comments