## @file
# Emu Emulation Timer Architectural Protocol Driver as defined in DXE CIS
#
# Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
# Portions copyright (c) 2011, Apple Inc. All rights reserved.
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = EmuTimer
  FILE_GUID                      = 87E1BB14-4D5C-7C4E-A90E-E1415687D062
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = EmuTimerDriverInitialize

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  Timer.c
  Timer.h


[Packages]
  MdePkg/MdePkg.dec
  EmulatorPkg/EmulatorPkg.dec


[LibraryClasses]
  UefiBootServicesTableLib
  MemoryAllocationLib
  EmuThunkLib
  UefiDriverEntryPoint
  UefiLib
  DebugLib
  BaseLib


[Protocols]
  gEfiCpuArchProtocolGuid                       # PROTOCOL ALWAYS_CONSUMED
  gEfiTimerArchProtocolGuid                     # PROTOCOL ALWAYS_PRODUCED


[Depex]
  gEfiCpuArchProtocolGuid

