## @file
# S3 Resume Module installs EFI_PEI_S3_RESUME2_PPI.
#
# This module works with StandAloneBootScriptExecutor to S3 resume to OS.
# This module will excute the boot script saved during last boot and after that,
# control is passed to OS waking up handler.
#
# Copyright (c) 2010 - 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                      = S3Resume2Pei
  MODULE_UNI_FILE                = S3Resume2Pei.uni
  FILE_GUID                      = 89E549B0-7CFE-449d-9BA3-10D8B2312D71
  MODULE_TYPE                    = PEIM
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = PeimS3ResumeEntryPoint

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  S3Resume.c

[Sources.IA32]
  Ia32/AsmFuncs.asm
  Ia32/AsmFuncs.nasm
  Ia32/AsmFuncs.S

[Sources.X64]
  X64/AsmFuncs.asm
  X64/AsmFuncs.nasm
  X64/AsmFuncs.S

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec
  UefiCpuPkg/UefiCpuPkg.dec

[LibraryClasses]
  PeiServicesTablePointerLib
  PerformanceLib
  HobLib
  PeiServicesLib
  PeimEntryPoint
  TimerLib
  BaseLib
  DebugLib
  PcdLib
  IoLib
  BaseMemoryLib
  MemoryAllocationLib
  DebugAgentLib
  LocalApicLib
  ReportStatusCodeLib
  LockBoxLib
  PrintLib

[Guids]
  gEfiBootScriptExecutorVariableGuid            ## SOMETIMES_CONSUMES ## UNDEFINED # LockBox
  gEfiBootScriptExecutorContextGuid             ## SOMETIMES_CONSUMES ## UNDEFINED # LockBox
  gPerformanceProtocolGuid                      ## SOMETIMES_CONSUMES ## Variable:L"PerfDataMemAddr"
  ## SOMETIMES_CONSUMES ## HOB
  ## SOMETIMES_CONSUMES ## UNDEFINED # LockBox
  gEfiAcpiVariableGuid
  gEfiAcpiS3ContextGuid                         ## SOMETIMES_CONSUMES ## UNDEFINED # LockBox

[Ppis]
  gEfiPeiReadOnlyVariable2PpiGuid               ## CONSUMES
  gEfiPeiS3Resume2PpiGuid                       ## PRODUCES
  gPeiSmmAccessPpiGuid                          ## SOMETIMES_CONSUMES
  gPeiPostScriptTablePpiGuid                    ## SOMETIMES_PRODUCES
  gEfiEndOfPeiSignalPpiGuid                     ## SOMETIMES_PRODUCES

[FeaturePcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode         ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdFrameworkCompatibilitySupport  ## CONSUMES

[Pcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable  ## SOMETIMES_CONSUMES

[Depex]
  TRUE

[UserExtensions.TianoCore."ExtraFiles"]
  S3Resume2PeiExtra.uni
