The persistent memory is for PEIM to use, and won't lose during cold or warm reset. PcdPersistentMemorySize is only used by WinHost.c, other modules can check the persistent memory size using the field PersistentMemorySize. Cc: Andrew Fish <afish@apple.com> Reviewed-by: Ray Ni <ray.ni@intel.com> Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
144 lines
5.4 KiB
INI
144 lines
5.4 KiB
INI
## @file
|
|
# Entry Point of Emu Emulator
|
|
#
|
|
# Main executable file of Unix Emulator that loads PEI core after initialization finished.
|
|
# Copyright (c) 2008 - 2022, Intel Corporation. All rights reserved.<BR>
|
|
# Portions copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>
|
|
#
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = Host
|
|
FILE_GUID = 8863C0AD-7724-C84B-88E5-A33B116D1485
|
|
MODULE_TYPE = USER_DEFINED
|
|
VERSION_STRING = 1.0
|
|
|
|
#
|
|
# The following information is for reference only and not required by the build tools.
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64 EBC
|
|
#
|
|
|
|
[Sources]
|
|
Host.c
|
|
EmuThunk.c
|
|
X11GraphicsWindow.c
|
|
Pthreads.c
|
|
PosixFileSystem.c
|
|
BlockIo.c
|
|
LinuxPacketFilter.c
|
|
BerkeleyPacketFilter.c
|
|
MemoryAllocationLib.c
|
|
|
|
[Sources.X64]
|
|
X64/Gasket.S # convert between Emu x86_64 ABI and EFI X64 ABI
|
|
X64/SwitchStack.S
|
|
|
|
[Sources.IA32]
|
|
Ia32/Gasket.S # enforce 16-byte stack alignment for Mac OS X
|
|
Ia32/SwitchStack.c
|
|
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
NetworkPkg/NetworkPkg.dec
|
|
EmulatorPkg/EmulatorPkg.dec
|
|
|
|
[LibraryClasses]
|
|
DebugLib
|
|
PcdLib
|
|
PrintLib
|
|
BaseMemoryLib
|
|
BaseLib
|
|
PeCoffLib
|
|
ThunkPpiList
|
|
ThunkProtocolList
|
|
PpiListLib
|
|
PeiServicesLib
|
|
PeCoffGetEntryPointLib
|
|
|
|
[Ppis]
|
|
gEfiPeiStatusCodePpiGuid # PPI ALWAYS_PRODUCED
|
|
gEmuThunkPpiGuid
|
|
|
|
[Protocols]
|
|
gEmuIoThunkProtocolGuid
|
|
gEmuIoThunkProtocolGuid
|
|
gEmuGraphicsWindowProtocolGuid
|
|
gEmuThreadThunkProtocolGuid
|
|
gEmuBlockIoProtocolGuid
|
|
gEmuSnpProtocolGuid
|
|
gEfiSimpleFileSystemProtocolGuid
|
|
|
|
[Guids]
|
|
gEfiFileSystemVolumeLabelInfoIdGuid # SOMETIMES_CONSUMED
|
|
gEfiFileInfoGuid # SOMETIMES_CONSUMED
|
|
gEfiFileSystemInfoGuid # SOMETIMES_CONSUMED
|
|
|
|
[Pcd]
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuBootMode
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuFirmwareVolume
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuMemorySize
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuFdBaseAddress
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuFirmwareFdSize
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuFirmwareBlockSize
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuApCount
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuVirtualDisk
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuGop|L"GOP Window"
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuFileSystem
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuSerialPort
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuNetworkInterface
|
|
gEmulatorPkgTokenSpaceGuid.PcdNetworkPacketFilterSize
|
|
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuFlashFvRecoveryBase
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuFlashFvRecoverySize
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageVariableBase
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageEventLogBase
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageEventLogSize
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageFtwWorkingBase
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageFtwSpareBase
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
|
|
gEmulatorPkgTokenSpaceGuid.PcdPeiServicesTablePage
|
|
gEmulatorPkgTokenSpaceGuid.PcdPersistentMemorySize
|
|
|
|
[FeaturePcd]
|
|
gEmulatorPkgTokenSpaceGuid.PcdEmulatorLazyLoadSymbols
|
|
|
|
|
|
[BuildOptions]
|
|
GCC:*_*_IA32_DLINK_FLAGS == -o $(BIN_DIR)/Host -m32 -L/usr/X11R6/lib
|
|
GCC:*_*_IA32_CC_FLAGS == -m32 -g -fshort-wchar -fno-strict-aliasing -Wall -malign-double -idirafter/usr/include -c -include $(DEST_DIR_DEBUG)/AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings
|
|
GCC:*_*_IA32_PP_FLAGS == -m32 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
|
|
GCC:*_*_IA32_ASM_FLAGS == -m32 -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h
|
|
|
|
GCC:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/Host -m64 -L/usr/X11R6/lib
|
|
GCC:*_GCC5_X64_DLINK_FLAGS == -flto -o $(BIN_DIR)/Host -m64 -L/usr/X11R6/lib
|
|
GCC:*_*_X64_CC_FLAGS == -m64 -g -fshort-wchar -fno-strict-aliasing -Wall -malign-double -idirafter/usr/include -c -include $(DEST_DIR_DEBUG)/AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings
|
|
GCC:*_GCC48_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
|
|
GCC:*_GCC49_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
|
|
GCC:*_GCC5_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))" -flto -DUSING_LTO -Os
|
|
GCC:*_*_X64_PP_FLAGS == -m64 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
|
|
GCC:*_*_X64_ASM_FLAGS == -m64 -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h
|
|
|
|
GCC:*_*_*_DLINK2_FLAGS == -lpthread -ldl -lXext -lX11
|
|
|
|
#
|
|
# Need to do this link via gcc and not ld as the pathing to libraries changes from OS version to OS version
|
|
#
|
|
XCODE:*_*_IA32_DLINK_PATH == gcc
|
|
XCODE:*_*_IA32_CC_FLAGS = -I$(WORKSPACE)/EmulatorPkg/Unix/Host/X11IncludeHack
|
|
XCODE:*_*_IA32_DLINK_FLAGS == -arch i386 -o $(BIN_DIR)/Host -L/usr/X11R6/lib -lXext -lX11 -framework Carbon
|
|
XCODE:*_*_IA32_ASM_FLAGS == -arch i386 -g
|
|
|
|
XCODE:*_*_X64_DLINK_PATH == gcc
|
|
XCODE:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/Host -L/usr/X11R6/lib -lXext -lX11 -framework Carbon -Wl,-no_pie
|
|
XCODE:*_*_X64_ASM_FLAGS == -g
|
|
XCODE:*_*_X64_CC_FLAGS = -O0 -target x86_64-apple-darwin -I$(WORKSPACE)/EmulatorPkg/Unix/Host/X11IncludeHack "-DEFIAPI=__attribute__((ms_abi))"
|