Host.inf 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. ## @file
  2. # Entry Point of Emu Emulator
  3. #
  4. # Main executable file of Unix Emulator that loads PEI core after initialization finished.
  5. # Copyright (c) 2008 - 2022, Intel Corporation. All rights reserved.<BR>
  6. # Portions copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>
  7. #
  8. # SPDX-License-Identifier: BSD-2-Clause-Patent
  9. #
  10. #
  11. ##
  12. [Defines]
  13. INF_VERSION = 0x00010005
  14. BASE_NAME = Host
  15. FILE_GUID = 8863C0AD-7724-C84B-88E5-A33B116D1485
  16. MODULE_TYPE = USER_DEFINED
  17. VERSION_STRING = 1.0
  18. #
  19. # The following information is for reference only and not required by the build tools.
  20. #
  21. # VALID_ARCHITECTURES = IA32 X64 EBC
  22. #
  23. [Sources]
  24. Host.c
  25. EmuThunk.c
  26. X11GraphicsWindow.c
  27. Pthreads.c
  28. PosixFileSystem.c
  29. BlockIo.c
  30. LinuxPacketFilter.c
  31. BerkeleyPacketFilter.c
  32. MemoryAllocationLib.c
  33. [Sources.X64]
  34. X64/Gasket.S # convert between Emu x86_64 ABI and EFI X64 ABI
  35. X64/SwitchStack.S
  36. [Sources.IA32]
  37. Ia32/Gasket.S # enforce 16-byte stack alignment for Mac OS X
  38. Ia32/SwitchStack.c
  39. [Packages]
  40. MdePkg/MdePkg.dec
  41. MdeModulePkg/MdeModulePkg.dec
  42. NetworkPkg/NetworkPkg.dec
  43. EmulatorPkg/EmulatorPkg.dec
  44. [LibraryClasses]
  45. DebugLib
  46. PcdLib
  47. PrintLib
  48. BaseMemoryLib
  49. BaseLib
  50. PeCoffLib
  51. ThunkPpiList
  52. ThunkProtocolList
  53. PpiListLib
  54. PeiServicesLib
  55. PeCoffGetEntryPointLib
  56. [Ppis]
  57. gEfiPeiStatusCodePpiGuid # PPI ALWAYS_PRODUCED
  58. gEmuThunkPpiGuid
  59. [Protocols]
  60. gEmuIoThunkProtocolGuid
  61. gEmuIoThunkProtocolGuid
  62. gEmuGraphicsWindowProtocolGuid
  63. gEmuThreadThunkProtocolGuid
  64. gEmuBlockIoProtocolGuid
  65. gEmuSnpProtocolGuid
  66. gEfiSimpleFileSystemProtocolGuid
  67. [Guids]
  68. gEfiFileSystemVolumeLabelInfoIdGuid # SOMETIMES_CONSUMED
  69. gEfiFileInfoGuid # SOMETIMES_CONSUMED
  70. gEfiFileSystemInfoGuid # SOMETIMES_CONSUMED
  71. [Pcd]
  72. gEmulatorPkgTokenSpaceGuid.PcdEmuBootMode
  73. gEmulatorPkgTokenSpaceGuid.PcdEmuFirmwareVolume
  74. gEmulatorPkgTokenSpaceGuid.PcdEmuMemorySize
  75. gEmulatorPkgTokenSpaceGuid.PcdEmuFdBaseAddress
  76. gEmulatorPkgTokenSpaceGuid.PcdEmuFirmwareFdSize
  77. gEmulatorPkgTokenSpaceGuid.PcdEmuFirmwareBlockSize
  78. gEmulatorPkgTokenSpaceGuid.PcdEmuApCount
  79. gEmulatorPkgTokenSpaceGuid.PcdEmuVirtualDisk
  80. gEmulatorPkgTokenSpaceGuid.PcdEmuGop|L"GOP Window"
  81. gEmulatorPkgTokenSpaceGuid.PcdEmuFileSystem
  82. gEmulatorPkgTokenSpaceGuid.PcdEmuSerialPort
  83. gEmulatorPkgTokenSpaceGuid.PcdEmuNetworkInterface
  84. gEmulatorPkgTokenSpaceGuid.PcdNetworkPacketFilterSize
  85. gEmulatorPkgTokenSpaceGuid.PcdEmuFlashFvRecoveryBase
  86. gEmulatorPkgTokenSpaceGuid.PcdEmuFlashFvRecoverySize
  87. gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageVariableBase
  88. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
  89. gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageEventLogBase
  90. gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageEventLogSize
  91. gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageFtwWorkingBase
  92. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
  93. gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageFtwSpareBase
  94. gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
  95. gEmulatorPkgTokenSpaceGuid.PcdPeiServicesTablePage
  96. gEmulatorPkgTokenSpaceGuid.PcdPersistentMemorySize
  97. [FeaturePcd]
  98. gEmulatorPkgTokenSpaceGuid.PcdEmulatorLazyLoadSymbols
  99. [BuildOptions]
  100. GCC:*_*_IA32_DLINK_FLAGS == -o $(BIN_DIR)/Host -m32 -L/usr/X11R6/lib
  101. 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
  102. GCC:*_*_IA32_PP_FLAGS == -m32 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
  103. GCC:*_*_IA32_ASM_FLAGS == -m32 -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h
  104. GCC:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/Host -m64 -L/usr/X11R6/lib
  105. GCC:*_GCC5_X64_DLINK_FLAGS == -flto -o $(BIN_DIR)/Host -m64 -L/usr/X11R6/lib
  106. 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
  107. GCC:*_GCC48_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
  108. GCC:*_GCC49_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
  109. GCC:*_GCC5_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))" -flto -DUSING_LTO -Os
  110. GCC:*_*_X64_PP_FLAGS == -m64 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
  111. GCC:*_*_X64_ASM_FLAGS == -m64 -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h
  112. GCC:*_*_*_DLINK2_FLAGS == -lpthread -ldl -lXext -lX11
  113. #
  114. # Need to do this link via gcc and not ld as the pathing to libraries changes from OS version to OS version
  115. #
  116. XCODE:*_*_IA32_DLINK_PATH == gcc
  117. XCODE:*_*_IA32_CC_FLAGS = -I$(WORKSPACE)/EmulatorPkg/Unix/Host/X11IncludeHack
  118. XCODE:*_*_IA32_DLINK_FLAGS == -arch i386 -o $(BIN_DIR)/Host -L/usr/X11R6/lib -lXext -lX11 -framework Carbon
  119. XCODE:*_*_IA32_ASM_FLAGS == -arch i386 -g
  120. XCODE:*_*_X64_DLINK_PATH == gcc
  121. XCODE:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/Host -L/usr/X11R6/lib -lXext -lX11 -framework Carbon -Wl,-no_pie
  122. XCODE:*_*_X64_ASM_FLAGS == -g
  123. XCODE:*_*_X64_CC_FLAGS = -O0 -target x86_64-apple-darwin -I$(WORKSPACE)/EmulatorPkg/Unix/Host/X11IncludeHack "-DEFIAPI=__attribute__((ms_abi))"