## @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, 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

[Protocols]
  gEfiBootScriptSaveProtocolGuid          ## PRODUCES
  gEfiS3SaveStateProtocolGuid             ## CONSUMES

[Pcd]
  gEfiEdkCompatibilityPkgTokenSpaceGuid.BootScriptThunkDataPtr

[Depex]
  gEfiS3SaveStateProtocolGuid

