## @file
# Instance of S3 PCI Library based on PCI and S3 BootScript Library.
#
# S3 PCI Services that perform PCI Configuration cycles and 
# also enable the PCI operation to be replayed during an S3 resume.
#
# Copyright (c) 2006 - 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                      = BaseS3PciLib
  MODULE_UNI_FILE                = BaseS3PciLib.uni
  FILE_GUID                      = F66B6BD2-513F-441d-B367-2D5BD4998A50
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = S3PciLib 


#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  S3PciLib.c


[Packages]
  MdePkg/MdePkg.dec


[LibraryClasses]
  PciLib
  S3BootScriptLib
  DebugLib

