## @file
# NT Emulation Timer Architectural Protocol Driver as defined in DXE CIS
#
# This Timer module uses an NT Thread to simulate the timer-tick driven
#  timer service. In the future, the Thread creation should possibly be
#  abstracted by the CPU architectural protocol
# Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
#
#  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                      = Timer
  FILE_GUID                      = C3811036-710B-4E39-8CF1-0AF9BE3A8198
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = WinNtTimerDriverInitialize

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32
#

[Sources]
  Timer.c
  Timer.h

[Packages]
  MdePkg/MdePkg.dec
  Nt32Pkg/Nt32Pkg.dec

[LibraryClasses]
  UefiBootServicesTableLib
  WinNtLib
  UefiDriverEntryPoint
  DebugLib

[Protocols]
  gEfiCpuArchProtocolGuid                       # PROTOCOL ALWAYS_CONSUMED
  gEfiTimerArchProtocolGuid                     # PROTOCOL ALWAYS_PRODUCED

[Depex]
  gEfiCpuArchProtocolGuid
  