## @file
#   Library instance for ResetSystem library class for PCAT systems
#
#  Copyright (c) 2006 - 2016, 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                      = ResetSystemLib
  MODULE_UNI_FILE                = ResetSystemLib.uni
  FILE_GUID                      = EC4F3E59-F879-418b-9E4C-7D6F434714A0
  MODULE_TYPE                    = BASE
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = ResetSystemLib

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64 IPF
#

[Sources]
  ResetSystemLib.c

[Packages]
  MdePkg/MdePkg.dec
  PcAtChipsetPkg/PcAtChipsetPkg.dec

[LibraryClasses]
  DebugLib
  IoLib

[Pcd]
  gPcAtChipsetPkgTokenSpaceGuid.PcdResetControlRegister        ## CONSUMES
  gPcAtChipsetPkgTokenSpaceGuid.PcdResetControlValueColdReset  ## CONSUMES
