## @file
#  Module that produces EBC Interprete and EBC Debug Support protocols.
#
#  This module implements EFI Byte Code (EBC) Virtual Machine that can provide
#  platform and processor-independent mechanisms for loading and executing EFI
#  device drivers.
#
#  Copyright (c) 2015, The Linux Foundation. All rights reserved.
#  Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = EbcDxe
  MODULE_UNI_FILE                = EbcDxe.uni
  FILE_GUID                      = 13AC6DD0-73D0-11D4-B06B-00AA00BD6DE7
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = InitializeEbcDriver

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

[Sources]
  EbcDebuggerHook.h
  EbcDebuggerHook.c
  EbcExecute.h
  EbcExecute.c
  EbcInt.h
  EbcInt.c

[Sources.Ia32]
  Ia32/EbcSupport.c
  Ia32/EbcLowLevel.nasm

[Sources.X64]
  X64/EbcSupport.c
  X64/EbcLowLevel.nasm

[Sources.AARCH64]
  AArch64/EbcSupport.c
  AArch64/EbcLowLevel.S

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

[LibraryClasses]
  CacheMaintenanceLib
  MemoryAllocationLib
  PeCoffLib
  UefiBootServicesTableLib
  BaseMemoryLib
  UefiDriverEntryPoint
  DebugLib
  BaseLib


[Protocols]
  gEfiDebugSupportProtocolGuid                  ## PRODUCES
  gEfiEbcProtocolGuid                           ## PRODUCES
  gEdkiiPeCoffImageEmulatorProtocolGuid         ## PRODUCES
  gEfiEbcVmTestProtocolGuid                     ## SOMETIMES_PRODUCES
  gEfiEbcSimpleDebuggerProtocolGuid             ## SOMETIMES_CONSUMES

[Depex]
  TRUE

# [Event]
#
# Periodic timer event to support EFI debug support protocol for EBC image.
#
# EVENT_TYPE_PERIODIC_TIMER ## CONSUMES

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