## @file
#  Instance of PCI Express Library using the 256 MB PCI Express MMIO window.
#
#  PCI Express Library that uses the 256 MB PCI Express MMIO window to perform
#  PCI Configuration cycles. Layers on top of an I/O Library instance.
#
#  Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
#
#  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.
#
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = BaseCachingPciExpressLib
  FILE_GUID                      = 3f3ffd80-04dc-4a2b-9d25-ecca55c2e520
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = PciExpressLib|DXE_DRIVER UEFI_DRIVER UEFI_APPLICATION
  CONSTRUCTOR                    = PciExpressLibInitialize

#
#  VALID_ARCHITECTURES           = ARM AARCH64
#

[Sources]
  PciExpressLib.c

[Packages]
  ArmVirtPkg/ArmVirtPkg.dec
  MdePkg/MdePkg.dec

[LibraryClasses]
  BaseLib
  PcdLib
  DebugLib
  IoLib
  PciPcdProducerLib

[Pcd]
  gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress  ## CONSUMES

