Home | History | Annotate | Download | only in Host
      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 - 2011, Intel Corporation. All rights reserved.<BR>

      6 # Portions copyright (c) 2008 - 2011, Apple Inc. All rights reserved.<BR>

      7 #

      8 #  This program and the accompanying materials

      9 #  are licensed and made available under the terms and conditions of the BSD License

     10 #  which accompanies this distribution. The full text of the license may be found at

     11 #  http://opensource.org/licenses/bsd-license.php

     12 #  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,

     13 #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

     14 #

     15 #

     16 ##

     17 
     18 [Defines]
     19   INF_VERSION                    = 0x00010005
     20   BASE_NAME                      = Host
     21   FILE_GUID                      = 8863C0AD-7724-C84B-88E5-A33B116D1485
     22   MODULE_TYPE                    = USER_DEFINED
     23   VERSION_STRING                 = 1.0
     24 
     25 #

     26 # The following information is for reference only and not required by the build tools.

     27 #

     28 #  VALID_ARCHITECTURES           = IA32 X64 IPF EBC

     29 #

     30 
     31 [Sources]
     32   Host.c
     33   EmuThunk.c
     34   X11GraphicsWindow.c
     35   Pthreads.c
     36   PosixFileSystem.c
     37   BlockIo.c
     38   LinuxPacketFilter.c
     39   BerkeleyPacketFilter.c
     40   MemoryAllocationLib.c
     41 
     42 [Sources.X64]
     43   X64/Gasket.S        # convert between Emu x86_64 ABI and EFI X64 ABI

     44   X64/SwitchStack.S
     45 
     46 [Sources.IA32]
     47   Ia32/Gasket.S       # enforce 16-byte stack alignment for Mac OS X

     48   Ia32/SwitchStack.c
     49 
     50 
     51 [Packages]
     52   MdePkg/MdePkg.dec
     53   MdeModulePkg/MdeModulePkg.dec
     54   EmulatorPkg/EmulatorPkg.dec
     55 
     56 [LibraryClasses]
     57   DebugLib
     58   PcdLib
     59   PrintLib
     60   BaseMemoryLib
     61   BaseLib
     62   PeCoffLib
     63   ThunkPpiList
     64   ThunkProtocolList
     65   PpiListLib
     66   PeiServicesLib
     67   PeCoffGetEntryPointLib
     68 
     69 [Ppis]
     70   gEfiPeiStatusCodePpiGuid                      # PPI ALWAYS_PRODUCED

     71   gEmuThunkPpiGuid
     72 
     73 [Protocols]
     74   gEmuIoThunkProtocolGuid
     75   gEmuIoThunkProtocolGuid
     76   gEmuGraphicsWindowProtocolGuid
     77   gEmuThreadThunkProtocolGuid
     78   gEmuBlockIoProtocolGuid
     79   gEmuSnpProtocolGuid
     80   gEfiSimpleFileSystemProtocolGuid
     81 
     82 [Guids]
     83   gEfiFileSystemVolumeLabelInfoIdGuid           # SOMETIMES_CONSUMED

     84   gEfiFileInfoGuid                              # SOMETIMES_CONSUMED

     85   gEfiFileSystemInfoGuid                        # SOMETIMES_CONSUMED

     86 
     87 [Pcd]
     88   gEmulatorPkgTokenSpaceGuid.PcdEmuBootMode
     89   gEmulatorPkgTokenSpaceGuid.PcdEmuFirmwareVolume
     90   gEmulatorPkgTokenSpaceGuid.PcdEmuMemorySize
     91   gEmulatorPkgTokenSpaceGuid.PcdEmuFdBaseAddress
     92   gEmulatorPkgTokenSpaceGuid.PcdEmuFirmwareFdSize
     93   gEmulatorPkgTokenSpaceGuid.PcdEmuFirmwareBlockSize
     94   gEmulatorPkgTokenSpaceGuid.PcdEmuApCount
     95   gEmulatorPkgTokenSpaceGuid.PcdEmuVirtualDisk
     96   gEmulatorPkgTokenSpaceGuid.PcdEmuGop|L"GOP Window"
     97   gEmulatorPkgTokenSpaceGuid.PcdEmuFileSystem
     98   gEmulatorPkgTokenSpaceGuid.PcdEmuSerialPort
     99   gEmulatorPkgTokenSpaceGuid.PcdEmuNetworkInterface
    100   gEmulatorPkgTokenSpaceGuid.PcdNetworkPacketFilterSize
    101 
    102   gEmulatorPkgTokenSpaceGuid.PcdEmuFlashFvRecoveryBase
    103   gEmulatorPkgTokenSpaceGuid.PcdEmuFlashFvRecoverySize
    104   gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageVariableBase
    105   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
    106   gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageEventLogBase
    107   gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageEventLogSize
    108   gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageFtwWorkingBase
    109   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize
    110   gEmulatorPkgTokenSpaceGuid.PcdEmuFlashNvStorageFtwSpareBase
    111   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
    112   gEmulatorPkgTokenSpaceGuid.PcdPeiServicesTablePage
    113 
    114 [FeaturePcd]
    115   gEmulatorPkgTokenSpaceGuid.PcdEmulatorLazyLoadSymbols
    116 
    117 
    118 [BuildOptions]
    119    GCC:*_*_IA32_DLINK_FLAGS == -o $(BIN_DIR)/Host -m32 -L/usr/X11R6/lib
    120    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
    121    GCC:*_*_IA32_PP_FLAGS == -m32 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
    122    GCC:*_*_IA32_ASM_FLAGS == -m32 -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h
    123 
    124    GCC:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/Host -m64 -L/usr/X11R6/lib
    125    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
    126    GCC:*_GCC44_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
    127    GCC:*_GCC45_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
    128    GCC:*_GCC46_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
    129    GCC:*_GCC47_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
    130    GCC:*_GCC48_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
    131    GCC:*_GCC49_X64_CC_FLAGS = "-DEFIAPI=__attribute__((ms_abi))"
    132    GCC:*_*_X64_PP_FLAGS == -m64 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
    133    GCC:*_*_X64_ASM_FLAGS == -m64 -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h
    134 
    135    GCC:*_*_*_DLINK2_FLAGS == -lpthread -ldl -lXext -lX11
    136 
    137 #

    138 # Need to do this link via gcc and not ld as the pathing to libraries changes from OS version to OS version

    139 #

    140    XCODE:*_*_IA32_DLINK_PATH == gcc
    141    XCODE:*_*_IA32_CC_FLAGS == -arch i386 -O0 -g -include $(DEST_DIR_DEBUG)/AutoGen.h -c -fshort-wchar -fno-strict-aliasing
    142    XCODE:*_*_IA32_DLINK_FLAGS == -arch i386 -o $(BIN_DIR)/Host -L/usr/X11R6/lib -lXext -lX11 -framework Carbon
    143    XCODE:*_*_IA32_ASM_FLAGS == -arch i386 -g
    144 
    145    XCODE:*_*_X64_DLINK_PATH == gcc
    146    XCODE:*_*_X64_DLINK_FLAGS == -o $(BIN_DIR)/Host -L/usr/X11R6/lib -lXext -lX11 -framework Carbon
    147    XCODE:*_*_X64_ASM_FLAGS == -g
    148    XCODE:*_*_X64_CC_FLAGS = -I$(WORKSPACE)/EmulatorPkg/Unix/Host/X11IncludeHack
    149