## @file
# Instance of HOB Library using HOB list from EFI Configuration Table.
#
# HOB Library implementation that retrieves the HOB List
#  from the System Configuration Table in the EFI System Table.
#
# Copyright (c) 2007 - 2014, 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                      = DxeHobLib
  MODULE_UNI_FILE                = DxeHobLib.uni
  FILE_GUID                      = f12b59c9-76d0-4661-ad7c-f04d1bef0558
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = HobLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER SMM_CORE DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER 
  CONSTRUCTOR                    = HobLibConstructor

#
#  VALID_ARCHITECTURES           = IA32 X64 IPF EBC
#

[Sources]
  HobLib.c


[Packages]
  MdePkg/MdePkg.dec


[LibraryClasses]
  BaseMemoryLib
  DebugLib
  UefiLib
    
[Guids]
  gEfiHobListGuid                               ## CONSUMES  ## SystemTable

