1## @file
2# This module produces the Metronome Architectural Protocol on top of Timer Library.
3#
4# This is a generic implementation of the Metronome Architectural Protocol that
5# layers on top of an instance of the Timer Library.  The Timer Library provides
6# functions for nanosecond and microsecond delays.  This generic implementation
7# produces a fixed TickPeriod of 100ns unit, and when the WaitForTick() service
8# is called, the number of ticks passed in is converted to either nanosecond or
9# microsecond units.  If the number of ticks is small, then nanoseconds are used.
10# If the number of ticks is large, then microseconds are used.  This prevents
11# overflows that could occur for long delays if only nanoseconds were used and also
12# provides the greatest accuracy for small delays.
13#
14# Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>
15# SPDX-License-Identifier: BSD-2-Clause-Patent
16#
17##
18
19[Defines]
20  INF_VERSION                    = 0x00010005
21  BASE_NAME                      = Metronome
22  MODULE_UNI_FILE                = Metronome.uni
23  FILE_GUID                      = C8339973-A563-4561-B858-D8476F9DEFC4
24  MODULE_TYPE                    = DXE_DRIVER
25  VERSION_STRING                 = 1.0
26  ENTRY_POINT                    = InstallMetronome
27
28#
29# The following information is for reference only and not required by the build tools.
30#
31#  VALID_ARCHITECTURES           = IA32 X64 EBC
32#
33
34[Packages]
35  MdePkg/MdePkg.dec
36
37[LibraryClasses]
38  UefiDriverEntryPoint
39  UefiBootServicesTableLib
40  TimerLib
41  DebugLib
42
43[Sources]
44  Metronome.c
45  Metronome.h
46
47[Protocols]
48  gEfiMetronomeArchProtocolGuid      ## PRODUCES
49
50[Depex]
51  TRUE
52
53[UserExtensions.TianoCore."ExtraFiles"]
54  MetronomeExtra.uni
55