## @file
#  This library provides API to invoke the S3 resume vector in the ACPI Table in S3 resume mode.
#
#  This library instance is no longer used and module using this library
#  class should update to directly locate EFI_PEI_S3_RESUME_PPI defined
#  in PI 1.2 specification.
#
#  Copyright (c) 2006 - 2018, 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                      = PeiS3Lib
  MODULE_UNI_FILE                = PeiS3Lib.uni
  FILE_GUID                      = EFB7D3A8-DEB9-4bed-B6D6-3B09BEEB835A
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = S3Lib|PEIM

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  PeiS3Lib.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  IntelFrameworkPkg/IntelFrameworkPkg.dec

[LibraryClasses]
  PeiServicesTablePointerLib
  DebugLib

[Ppis]
  gEfiPeiS3ResumePpiGuid                ## CONSUMES

