audk/OvmfPkg/Include/IndustryStandard/QemuPciBridgeCapabilities.h

61 lines
1.9 KiB
C

/** @file
Macro and type definitions for QEMU's Red Hat vendor-specific PCI
capabilities that provide various hints about PCI Bridges.
Refer to "docs/pcie_pci_bridge.txt" in the QEMU source directory.
Copyright (C) 2017, Red Hat, Inc.
This program and the accompanying materials are licensed and made available
under the terms and conditions of the BSD License which accompanies this
distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT
WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef __QEMU_PCI_BRIDGE_CAPABILITIES_H__
#define __QEMU_PCI_BRIDGE_CAPABILITIES_H__
#include <IndustryStandard/Pci23.h>
//
// The hints apply to PCI Bridges whose PCI_DEVICE_INDEPENDENT_REGION.VendorId
// equals the following value.
//
#define QEMU_PCI_BRIDGE_VENDOR_ID_REDHAT 0x1B36
//
// Common capability header for all hints.
//
#pragma pack (1)
typedef struct {
EFI_PCI_CAPABILITY_VENDOR_HDR VendorHdr;
UINT8 Type;
} QEMU_PCI_BRIDGE_CAPABILITY_HDR;
#pragma pack ()
//
// Values defined for QEMU_PCI_BRIDGE_CAPABILITY_HDR.Type.
//
#define QEMU_PCI_BRIDGE_CAPABILITY_TYPE_RESOURCE_RESERVATION 0x01
//
// PCI Resource Reservation structure for when
// QEMU_PCI_BRIDGE_CAPABILITY_HDR.Type equals
// QEMU_PCI_BRIDGE_CAPABILITY_TYPE_RESOURCE_RESERVATION.
//
#pragma pack (1)
typedef struct {
QEMU_PCI_BRIDGE_CAPABILITY_HDR BridgeHdr;
UINT32 BusNumbers;
UINT64 Io;
UINT32 NonPrefetchable32BitMmio;
UINT32 Prefetchable32BitMmio;
UINT64 Prefetchable64BitMmio;
} QEMU_PCI_BRIDGE_CAPABILITY_RESOURCE_RESERVATION;
#pragma pack ()
#endif