## @file
#  This is core module in DXE phase.
#
#  It provides an implementation of DXE Core that is compliant with DXE CIS.
#
#  Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = DxeCore
  MODULE_UNI_FILE                = DxeCore.uni
  FILE_GUID                      = D6A2CB7F-6A18-4e2f-B43B-9920A733700A
  MODULE_TYPE                    = DXE_CORE
  VERSION_STRING                 = 1.0


  ENTRY_POINT                    = DxeMain

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC (EBC is for build only)
#

[Sources]
  DxeMain.h
  SectionExtraction/CoreSectionExtraction.c
  Image/Image.c
  Image/Image.h
  Misc/DebugImageInfo.c
  Misc/Stall.c
  Misc/SetWatchdogTimer.c
  Misc/InstallConfigurationTable.c
  Misc/MemoryAttributesTable.c
  Misc/MemoryProtection.c
  Library/Library.c
  Hand/DriverSupport.c
  Hand/Notify.c
  Hand/Locate.c
  Hand/Handle.c
  Hand/Handle.h
  Gcd/Gcd.c
  Gcd/Gcd.h
  Mem/Pool.c
  Mem/Page.c
  Mem/MemData.c
  Mem/Imem.h
  Mem/MemoryProfileRecord.c
  Mem/HeapGuard.c
  Mem/HeapGuard.h
  FwVolBlock/FwVolBlock.c
  FwVolBlock/FwVolBlock.h
  FwVol/FwVolWrite.c
  FwVol/FwVolRead.c
  FwVol/FwVolAttrib.c
  FwVol/Ffs.c
  FwVol/FwVol.c
  FwVol/FwVolDriver.h
  Event/Tpl.c
  Event/Timer.c
  Event/Event.c
  Event/Event.h
  Dispatcher/Dependency.c
  Dispatcher/Dispatcher.c
  DxeMain/DxeProtocolNotify.c
  DxeMain/DxeMain.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  BaseMemoryLib
  CacheMaintenanceLib
  UefiDecompressLib
  PerformanceLib
  HobLib
  BaseLib
  UefiLib
  DebugLib
  DxeCoreEntryPoint
  PeCoffLib
  PeCoffGetEntryPointLib
  PeCoffExtraActionLib
  ExtractGuidedSectionLib
  MemoryAllocationLib
  UefiBootServicesTableLib
  DevicePathLib
  ReportStatusCodeLib
  DxeServicesLib
  DebugAgentLib
  CpuExceptionHandlerLib
  PcdLib

[Guids]
  gEfiEventMemoryMapChangeGuid                  ## PRODUCES             ## Event
  gEfiEventVirtualAddressChangeGuid             ## CONSUMES             ## Event
  ## CONSUMES   ## Event
  ## PRODUCES   ## Event
  gEfiEventExitBootServicesGuid
  gEfiHobMemoryAllocModuleGuid                  ## SOMETIMES_CONSUMES   ## HOB
  gEfiFirmwareFileSystem2Guid                   ## CONSUMES             ## GUID # Used to compare with FV's file system guid and get the FV's file system format
  gEfiFirmwareFileSystem3Guid                   ## CONSUMES             ## GUID # Used to compare with FV's file system guid and get the FV's file system format
  gAprioriGuid                                  ## SOMETIMES_CONSUMES   ## File
  gEfiDebugImageInfoTableGuid                   ## PRODUCES             ## SystemTable
  gEfiHobListGuid                               ## PRODUCES             ## SystemTable
  gEfiDxeServicesTableGuid                      ## PRODUCES             ## SystemTable
  ## PRODUCES               ## SystemTable
  ## SOMETIMES_CONSUMES     ## HOB
  gEfiMemoryTypeInformationGuid
  gEfiEventDxeDispatchGuid                      ## PRODUCES             ## Event
  gLoadFixedAddressConfigurationTableGuid       ## SOMETIMES_PRODUCES   ## SystemTable
  ## PRODUCES   ## Event
  ## CONSUMES   ## Event
  gIdleLoopEventGuid
  gEventExitBootServicesFailedGuid              ## SOMETIMES_PRODUCES   ## Event
  gEfiVectorHandoffTableGuid                    ## SOMETIMES_PRODUCES   ## SystemTable
  gEdkiiMemoryProfileGuid                       ## SOMETIMES_PRODUCES   ## GUID # Install protocol
  gEfiMemoryAttributesTableGuid                 ## SOMETIMES_PRODUCES   ## SystemTable
  gEfiEndOfDxeEventGroupGuid                    ## SOMETIMES_CONSUMES   ## Event
  gEfiHobMemoryAllocStackGuid                   ## SOMETIMES_CONSUMES   ## SystemTable

[Ppis]
  gEfiVectorHandoffInfoPpiGuid                  ## UNDEFINED # HOB

[Protocols]
  ## PRODUCES
  ## SOMETIMES_CONSUMES
  gEfiDecompressProtocolGuid
  gEfiSimpleFileSystemProtocolGuid              ## SOMETIMES_CONSUMES
  gEfiLoadFileProtocolGuid                      ## SOMETIMES_CONSUMES
  gEfiLoadFile2ProtocolGuid                     ## SOMETIMES_CONSUMES
  gEfiBusSpecificDriverOverrideProtocolGuid     ## SOMETIMES_CONSUMES
  gEfiDriverFamilyOverrideProtocolGuid          ## SOMETIMES_CONSUMES
  gEfiPlatformDriverOverrideProtocolGuid        ## SOMETIMES_CONSUMES
  gEfiDriverBindingProtocolGuid                 ## SOMETIMES_CONSUMES
  ## PRODUCES
  ## CONSUMES
  ## NOTIFY
  gEfiFirmwareVolumeBlockProtocolGuid
  ## PRODUCES
  ## CONSUMES
  ## NOTIFY
  gEfiFirmwareVolume2ProtocolGuid
  ## PRODUCES
  ## CONSUMES
  gEfiDevicePathProtocolGuid
  gEfiLoadedImageProtocolGuid                   ## PRODUCES
  gEfiLoadedImageDevicePathProtocolGuid         ## PRODUCES
  gEfiHiiPackageListProtocolGuid                ## SOMETIMES_PRODUCES
  gEfiSmmBase2ProtocolGuid                      ## SOMETIMES_CONSUMES
  gEdkiiPeCoffImageEmulatorProtocolGuid         ## SOMETIMES_CONSUMES

  # Arch Protocols
  gEfiBdsArchProtocolGuid                       ## CONSUMES
  gEfiCpuArchProtocolGuid                       ## CONSUMES
  gEfiMetronomeArchProtocolGuid                 ## CONSUMES
  gEfiMonotonicCounterArchProtocolGuid          ## CONSUMES
  gEfiRealTimeClockArchProtocolGuid             ## CONSUMES
  gEfiResetArchProtocolGuid                     ## CONSUMES
  gEfiRuntimeArchProtocolGuid                   ## CONSUMES
  gEfiSecurityArchProtocolGuid                  ## CONSUMES
  gEfiSecurity2ArchProtocolGuid                 ## SOMETIMES_CONSUMES
  gEfiTimerArchProtocolGuid                     ## CONSUMES
  gEfiVariableWriteArchProtocolGuid             ## CONSUMES
  gEfiVariableArchProtocolGuid                  ## CONSUMES
  gEfiCapsuleArchProtocolGuid                   ## CONSUMES
  gEfiWatchdogTimerArchProtocolGuid             ## CONSUMES

[Pcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressBootTimeCodePageNumber    ## SOMETIMES_CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdLoadFixAddressRuntimeCodePageNumber     ## SOMETIMES_CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdLoadModuleAtFixAddressEnable            ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdMaxEfiSystemTablePointerAddress         ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdMemoryProfileMemoryType                 ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdMemoryProfilePropertyMask               ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdMemoryProfileDriverPath                 ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy                   ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy             ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdNullPointerDetectionPropertyMask        ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdHeapGuardPageType                       ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdHeapGuardPoolType                       ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdHeapGuardPropertyMask                   ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard                           ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdFwVolDxeMaxEncapsulationDepth           ## CONSUMES

# [Hob]
# RESOURCE_DESCRIPTOR   ## CONSUMES
# MEMORY_ALLOCATION     ## CONSUMES
# FIRMWARE_VOLUME       ## CONSUMES
# UNDEFINED             ## CONSUMES # CPU
#
# [Event]
# EVENT_TYPE_RELATIVE_TIMER ## PRODUCES  # DxeCore signals timer event.
# EVENT_TYPE_PERIODIC_TIMER ## PRODUCES  # DxeCore signals timer event.
#

[UserExtensions.TianoCore."ExtraFiles"]
  DxeCoreExtra.uni