## @file
#  NULL class library to register var check handler and variable property set for UEFI defined variables.
#
#  Copyright (c) 2015, 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                      = VarCheckUefiLib
  MODULE_UNI_FILE                = VarCheckUefiLib.uni
  FILE_GUID                      = AC24A4C7-F845-4665-90E5-6431D6E28DC0
  MODULE_TYPE                    = DXE_RUNTIME_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = NULL|DXE_RUNTIME_DRIVER DXE_SMM_DRIVER
  CONSTRUCTOR                    = VarCheckUefiLibNullClassConstructor

#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32 X64
#

[Sources]
  VarCheckUefiLibNullClass.c

[Packages]
  MdePkg/MdePkg.dec
  MdeModulePkg/MdeModulePkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  DebugLib
  DevicePathLib
  VarCheckLib

[Guids]
  ## SOMETIMES_CONSUMES   ## Variable:L"LangCodes"
  ## SOMETIMES_CONSUMES   ## Variable:L"Lang"
  ## SOMETIMES_CONSUMES   ## Variable:L"Timeout"
  ## SOMETIMES_CONSUMES   ## Variable:L"PlatformLangCodes"
  ## SOMETIMES_CONSUMES   ## Variable:L"PlatformLang"
  ## SOMETIMES_CONSUMES   ## Variable:L"ConIn"
  ## SOMETIMES_CONSUMES   ## Variable:L"ConOut"
  ## SOMETIMES_CONSUMES   ## Variable:L"ErrOut"
  ## SOMETIMES_CONSUMES   ## Variable:L"ConInDev"
  ## SOMETIMES_CONSUMES   ## Variable:L"ConOutDev"
  ## SOMETIMES_CONSUMES   ## Variable:L"ErrOutDev"
  ## SOMETIMES_CONSUMES   ## Variable:L"BootOrder"
  ## SOMETIMES_CONSUMES   ## Variable:L"BootNext"
  ## SOMETIMES_CONSUMES   ## Variable:L"BootCurrent"
  ## SOMETIMES_CONSUMES   ## Variable:L"BootOptionSupport"
  ## SOMETIMES_CONSUMES   ## Variable:L"DriverOrder"
  ## SOMETIMES_CONSUMES   ## Variable:L"SysPrepOrder"
  ## SOMETIMES_CONSUMES   ## Variable:L"HwErrRecSupport"
  ## SOMETIMES_CONSUMES   ## Variable:L"SetupMode"
  ## SOMETIMES_CONSUMES   ## Variable:L"PK"
  ## SOMETIMES_CONSUMES   ## Variable:L"KEK"
  ## SOMETIMES_CONSUMES   ## Variable:L"SignatureSupport"
  ## SOMETIMES_CONSUMES   ## Variable:L"SecureBoot"
  ## SOMETIMES_CONSUMES   ## Variable:L"KEKDefault"
  ## SOMETIMES_CONSUMES   ## Variable:L"PKDefault"
  ## SOMETIMES_CONSUMES   ## Variable:L"dbDefault"
  ## SOMETIMES_CONSUMES   ## Variable:L"dbxDefault"
  ## SOMETIMES_CONSUMES   ## Variable:L"dbtDefault"
  ## SOMETIMES_CONSUMES   ## Variable:L"OsIndicationsSupported"
  ## SOMETIMES_CONSUMES   ## Variable:L"OsIndications"
  ## SOMETIMES_CONSUMES   ## Variable:L"VendorKeys"
  ## SOMETIMES_CONSUMES   ## Variable:L"Boot####"
  ## SOMETIMES_CONSUMES   ## Variable:L"Driver####"
  ## SOMETIMES_CONSUMES   ## Variable:L"SysPrep####"
  ## SOMETIMES_CONSUMES   ## Variable:L"Key####"
  gEfiGlobalVariableGuid
  ## SOMETIMES_CONSUMES   ## Variable:L"DB"
  ## SOMETIMES_CONSUMES   ## Variable:L"DBX"
  ## SOMETIMES_CONSUMES   ## Variable:L"DBT"
  gEfiImageSecurityDatabaseGuid
  gEfiHardwareErrorVariableGuid  ## SOMETIMES_CONSUMES    ## Variable:L"HwErrRec####"
