/** @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 <Library/DebugLib.h>
#include <Library/PciCapPciIoLib.h>
#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__