#/** @file
# Reset Architectural Protocol Driver as defined in PI
#
# This Reset module simulates system reset by process exit on NT.
# Copyright (c) 2006 - 2007, 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                      = RealTimeClock
  FILE_GUID                      = B336F62D-4135-4A55-AE4E-4971BBF0885D
  MODULE_TYPE                    = DXE_RUNTIME_DRIVER
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = InitializeRealTimeClock

[Sources.common]
  RealTimeClock.c

[Packages]
  MdePkg/MdePkg.dec
  EmbeddedPkg/EmbeddedPkg.dec

[LibraryClasses]
  UefiBootServicesTableLib
  UefiDriverEntryPoint
  DebugLib
  RealTimeClockLib

[Protocols]
  gEfiRealTimeClockArchProtocolGuid

[Depex]
  TRUE

