## @file
# DXE instance of Hsti Library.
#
# 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                      = DxeHstiLib
  MODULE_UNI_FILE                = DxeHstiLib.uni
  FILE_GUID                      = 7DE1C620-F587-4116-A36D-40F3467B9A0C
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = HstiLib|DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER

[Sources]
  HstiAip.c
  HstiDxe.c
  HstiDxe.h

[Packages]
  MdePkg/MdePkg.dec

[LibraryClasses]
  BaseLib
  BaseMemoryLib
  MemoryAllocationLib
  DebugLib
  UefiBootServicesTableLib

[Guids]
## SOMETIMES_PRODUCES ## GUID
## SOMETIMES_CONSUMES ## GUID
  gAdapterInfoPlatformSecurityGuid

[Protocols]
## SOMETIMES_PRODUCES
## SOMETIMES_CONSUMES
  gEfiAdapterInformationProtocolGuid

