## @file
# Emu Emulation Timer Architectural Protocol Driver as defined in DXE CIS
#
# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
# Portions copyright (c) 2011, Apple Inc. All rights reserved.
#
#  This program and the accompanying materials
#  are licensed and made available under the terms and conditions of the BSD License
#  which accompanies this distribution. The full text of the license may be found at
#  http://opensource.org/licenses/bsd-license.php
#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
#
##

[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 IPF 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

