/** @file Plug an EFI_PCI_IO_PROTOCOL backend into PciCapLib, for config space access -- internal macro and type definitions. Copyright (C) 2018, Red Hat, Inc. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef __UEFI_PCI_CAP_PCI_IO_LIB_H__ #define __UEFI_PCI_CAP_PCI_IO_LIB_H__ #include #include #define PROTO_DEV_SIG SIGNATURE_64 ('P', 'C', 'P', 'I', 'O', 'P', 'R', 'T') typedef struct { // // Signature identifying the derived class. // UINT64 Signature; // // Members added by the derived class, specific to the use of // EFI_PCI_IO_PROTOCOL. // EFI_PCI_IO_PROTOCOL *PciIo; // // Base class. // PCI_CAP_DEV BaseDevice; } PROTO_DEV; #define PROTO_DEV_FROM_PCI_CAP_DEV(PciDevice) \ CR (PciDevice, PROTO_DEV, BaseDevice, PROTO_DEV_SIG) #endif // __UEFI_PCI_CAP_PCI_IO_LIB_H__