## @file
# Entry Point of Emu Emulator
#
# Main executable file of Unix Emulator that loads PEI core after initialization finished.
# Portions copyright (c) 2011, Apple Inc. All rights reserved.<BR>
# Copyright (c) 2012, 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                      = EmuSec
  FILE_GUID                      = BCAF98C9-22B0-3B4F-9CBD-C8A6B4DBCEE9
  MODULE_TYPE                    = SEC
  VERSION_STRING                 = 1.0


[Sources]
  Sec.c

[Sources.X64]
  X64/SwitchRam.asm
  X64/SwitchRam.S

[Sources.IA32]
  Ia32/TempRam.c
  Ia32/SwitchRam.asm
  Ia32/SwitchRam.S

[Packages]
  MdePkg/MdePkg.dec
  EmulatorPkg/EmulatorPkg.dec

[LibraryClasses]
  DebugLib
  PeCoffGetEntryPointLib
  PeiServicesLib
  PpiListLib
  BaseMemoryLib

[Ppis]
  gEfiTemporaryRamSupportPpiGuid

[Pcd]
  gEmulatorPkgTokenSpaceGuid.PcdPeiServicesTablePage
