#/** @file
# Memory Status Code Library for UEFI drivers
#
# Lib to provide memory journal status code reporting Routines
# Copyright (c) 2007, Intel Corporation.
#
#  All rights reserved.
#  This software and associated documentation (if any) is furnished
#  under a license and may only be used or copied in accordance
#  with the terms of the license. Except as permitted by such
#  license, no part of this software or documentation may be
#  reproduced, stored in a retrieval system, or transmitted in any
#  form or by any means without the express written consent of
#  Intel Corporation.
#
#
#**/

[Defines]
  INF_VERSION                    = 0x00010005
  BASE_NAME                      = DxeUnixOemHookStatusCodeLib
  FILE_GUID                      = 0BB6F68A-2FC5-4394-9375-2B43F1C34B59
  MODULE_TYPE                    = DXE_DRIVER
  VERSION_STRING                 = 1.0
  LIBRARY_CLASS                  = OemHookStatusCodeLib|DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SAL_DRIVER DXE_SMM_DRIVER UEFI_APPLICATION UEFI_DRIVER 
  EDK_RELEASE_VERSION            = 0x00020000
  EFI_SPECIFICATION_VERSION      = 0x00020000


#
# The following information is for reference only and not required by the build tools.
#
#  VALID_ARCHITECTURES           = IA32
#

[Sources.common]
  UnixOemHookStatusCodeLib.c


[Packages]
  IntelFrameworkPkg/IntelFrameworkPkg.dec
  IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec
  UnixPkg/UnixPkg.dec
  MdePkg/MdePkg.dec


[LibraryClasses]
  ReportStatusCodeLib
  BaseMemoryLib
  PrintLib
  HobLib
  DebugLib


[Guids]
  gEfiStatusCodeSpecificDataGuid                # ALWAYS_CONSUMED


[Protocols]
  gEfiUnixThunkProtocolGuid                     # PROTOCOL ALWAYS_CONSUMED

