## @file
# PCI Library that layers on top of the SMM PCI Root Bridge I/O Protocol.
#
# This library produces the APIs from the PCI Library and implements these APIs
#  by calling into SMM PCI Root Bridge I/O Protocol. SMM PCI Root Bridge I/O Protocol is
#  typically produced by a chipset specific SMM driver.
#  This library binds to the first SMM PCI Root Bridge I/O Protocol in the platform. As a result,
#  it should only be used on platforms that contain a single PCI root bridge.
#
# Copyright (c) 2009 - 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                      = SmmPciLibPciRootBridgeIo
  MODULE_UNI_FILE                = SmmPciLibPciRootBridgeIo.uni
  FILE_GUID                      = F6994CBA-2351-4ebc-A2DA-20BAC2FE2CF3
  MODULE_TYPE                    = DXE_SMM_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = PciLib|DXE_SMM_DRIVER SMM_CORE
  PI_SPECIFICATION_VERSION       = 0x0001000A
  CONSTRUCTOR                    = PciLibConstructor

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  PciLib.c

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  BaseLib
  SmmServicesTableLib
  DebugLib

[Protocols]
  gEfiSmmPciRootBridgeIoProtocolGuid               ## CONSUMES
  
[Depex.common.DXE_SMM_DRIVER]
  gEfiSmmPciRootBridgeIoProtocolGuid

