## @file
# 
# Copyright (c) 2005 - 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.             
#
#  Module Name:
#
#  Abstract:
#
##

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = Metronome
  FILE_GUID                      = 07A9330A-F347-11d4-9A49-0090273FC14D
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = InstallMetronome

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  UefiDriverEntryPoint
  DebugLib
  UefiBootServicesTableLib
  IoLib
  
[Sources]
  Metronome.c
  Metronome.h

[Protocols]
  gEfiMetronomeArchProtocolGuid

[Depex]
  TRUE
