## @file
# This driver implements Reset Architectural and Reset Notification protocols.
#
# Copyright (c) 2006 - 2017, 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                      = ResetSystemRuntimeDxe
  MODULE_UNI_FILE                = ResetSystemRuntimeDxe.uni
  FILE_GUID                      = 4B28E4C7-FF36-4e10-93CF-A82159E777C5
  MODULE_TYPE                    = DXE_RUNTIME_DRIVER
  VERSION_STRING                 = 1.0

  ENTRY_POINT                    = InitializeResetSystem

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 EBC
#

[Sources]
  ResetSystem.h
  ResetSystem.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  ResetSystemLib
  UefiRuntimeServicesTableLib
  UefiRuntimeLib
  UefiBootServicesTableLib
  UefiDriverEntryPoint
  IoLib
  UefiLib
  DebugLib
  BaseLib
  ReportStatusCodeLib
  MemoryAllocationLib

[Guids]
  gEfiCapsuleVendorGuid                         ## SOMETIMES_CONSUMES   ## Variable:L"CapsuleUpdateData"


[Protocols]
  gEfiResetArchProtocolGuid                     ## PRODUCES
  gEfiResetNotificationProtocolGuid             ## PRODUCES


[Depex]
  TRUE

[UserExtensions.TianoCore."ExtraFiles"]
  ResetSystemRuntimeDxeExtra.uni
