#/** @file
# Unix Emulation Metronome Architectural Protocol Driver as defined in DXE CIS
#
# This metronome module simulates metronome by Sleep WinAPI.
# Copyright (c) 2006, Intel Corporation
#
#  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                      = Metronome
  FILE_GUID                      = f348f6fe-8985-11db-b4c3-0040d02b1835
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  EDK_RELEASE_VERSION            = 0x00020000
  EFI_SPECIFICATION_VERSION      = 0x00020000

  ENTRY_POINT                    = UnixMetronomeDriverInitialize

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources.common]
  Metronome.h
  Metronome.c


[Packages]
  MdePkg/MdePkg.dec
  UnixPkg/UnixPkg.dec
  

[LibraryClasses]
  UefiBootServicesTableLib
  MemoryAllocationLib
  UnixLib
  UefiDriverEntryPoint
  UefiLib
  DebugLib
  BaseLib


[Protocols]
  gEfiMetronomeArchProtocolGuid                 # PROTOCOL ALWAYS_PRODUCED


[Depex]
  TRUE

