## @file
#  To implement Framework Boot Script Save protocol based on PI S3 Save State protocol
# 
#  Intel's Framework Boot Script Save Protocol is replaced by S3 Save State Protocol in PI.
#  This module produces Framework Boot Script Save protocol by consuming PI S3 Save State protocol
#  
#  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                      = BootScriptSaveOnS3SaveStateThunk
  FILE_GUID                      = 062ACC82-1D1E-4f61-AA94-8B0C47236A3D
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = InitializeScriptSaveOnS3SaveState

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  ScriptSave.c
  ScriptSave.h

[Sources.X64]
  X64/AsmDispatchExecute.asm
  X64/AsmDispatchExecute.S
  X64/DispatchExecute.c

[Sources.Ia32]  
  IA32/DispatchExecute.c

[Packages]
  MdePkg/MdePkg.dec
  IntelFrameworkPkg/IntelFrameworkPkg.dec
  MdeModulePkg/MdeModulePkg.dec
  EdkCompatibilityPkg/EdkCompatibilityPkg.dec

[LibraryClasses]
  UefiBootServicesTableLib
  UefiRuntimeServicesTableLib
  UefiDriverEntryPoint
  BaseMemoryLib
  MemoryAllocationLib
  DebugLib
  BaseLib
  PeCoffLib
  PcdLib
  DxeServicesLib
  CacheMaintenanceLib
  BaseMemoryLib
  DevicePathLib
  UefiLib

[Protocols]
  gEfiBootScriptSaveProtocolGuid          ## PRODUCES
  gEfiS3SaveStateProtocolGuid             ## CONSUMES

[Guids]
  gEdkiiMemoryProfileGuid

[Pcd]
  gEfiEdkCompatibilityPkgTokenSpaceGuid.BootScriptThunkDataPtr
  gEfiMdeModulePkgTokenSpaceGuid.PcdMemoryProfilePropertyMask

[Depex]
  gEfiS3SaveStateProtocolGuid

