summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/Library/UefiPciCapPciIoLib/UefiPciCapPciIoLib.h
blob: cfe29d1a294ebb78a174acce61effa1d96b5543f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/** @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__