1 /** @file 2 Macro and type definitions for QEMU's Red Hat vendor-specific PCI 3 capabilities that provide various hints about PCI Bridges. 4 5 Refer to "docs/pcie_pci_bridge.txt" in the QEMU source directory. 6 7 Copyright (C) 2017, Red Hat, Inc. 8 9 SPDX-License-Identifier: BSD-2-Clause-Patent 10 **/ 11 12 #ifndef __QEMU_PCI_BRIDGE_CAPABILITIES_H__ 13 #define __QEMU_PCI_BRIDGE_CAPABILITIES_H__ 14 15 #include <IndustryStandard/Pci23.h> 16 17 // 18 // The hints apply to PCI Bridges whose PCI_DEVICE_INDEPENDENT_REGION.VendorId 19 // equals the following value. 20 // 21 #define QEMU_PCI_BRIDGE_VENDOR_ID_REDHAT 0x1B36 22 23 // 24 // Common capability header for all hints. 25 // 26 #pragma pack (1) 27 typedef struct { 28 EFI_PCI_CAPABILITY_VENDOR_HDR VendorHdr; 29 UINT8 Type; 30 } QEMU_PCI_BRIDGE_CAPABILITY_HDR; 31 #pragma pack () 32 33 // 34 // Values defined for QEMU_PCI_BRIDGE_CAPABILITY_HDR.Type. 35 // 36 #define QEMU_PCI_BRIDGE_CAPABILITY_TYPE_RESOURCE_RESERVATION 0x01 37 38 // 39 // PCI Resource Reservation structure for when 40 // QEMU_PCI_BRIDGE_CAPABILITY_HDR.Type equals 41 // QEMU_PCI_BRIDGE_CAPABILITY_TYPE_RESOURCE_RESERVATION. 42 // 43 #pragma pack (1) 44 typedef struct { 45 QEMU_PCI_BRIDGE_CAPABILITY_HDR BridgeHdr; 46 UINT32 BusNumbers; 47 UINT64 Io; 48 UINT32 NonPrefetchable32BitMmio; 49 UINT32 Prefetchable32BitMmio; 50 UINT64 Prefetchable64BitMmio; 51 } QEMU_PCI_BRIDGE_CAPABILITY_RESOURCE_RESERVATION; 52 #pragma pack () 53 54 #endif 55