blob: 3ff65966b2b4978f32b477da5deb5df695989475 [file] [log] [blame]
/** @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__