## @file
#  Component description file for AcpiResetDxe module.
#
# Copyright (c) 2006 - 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.             
#
#
##
[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = AcpiReset
  FILE_GUID                      = 928EF6D4-72BC-4686-B57B-1EEB6ABD4F93
  MODULE_TYPE                    = DXE_RUNTIME_DRIVER
  VERSION_STRING                 = 1.0
  ENTRY_POINT                    = InitializeReset

[Packages]
  MdePkg/MdePkg.dec
  DuetPkg/DuetPkg.dec

[LibraryClasses]
  DebugLib
  UefiBootServicesTableLib
  UefiDriverEntryPoint
  IoLib
  PciLib
  HobLib
  BaseLib
  BaseMemoryLib

[Sources]
  Reset.c

[Protocols]
  gEfiResetArchProtocolGuid

[Guids]
  gEfiAcpiDescriptionGuid

[Depex]
  TRUE
