## @file
# Register a status code handler for printing the Boot Manager's LoadImage()
# and StartImage() preparations, and return codes, to the UEFI console.
#
# This feature enables users that are not accustomed to analyzing the firmware
# log to glean some information about UEFI boot option processing (loading and
# starting).
#
# This library instance filters out (ignores) status codes that are not
# reported by the containing firmware module. The intent is to link this
# library instance into BdsDxe via PlatformBootManagerLib (which BdsDxe depends
# upon), then catch only those status codes that BdsDxe reports (which happens
# via UefiBootManagerLib). Status codes reported by other modules (such as
# UiApp), via UefiBootManagerLib or otherwise, are meant to be ignored.
#
# Copyright (C) 2019, Red Hat, Inc.
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
##

[Defines]
  INF_VERSION    = 1.27
  BASE_NAME      = PlatformBmPrintScLib
  FILE_GUID      = 3417c705-903e-41a7-9485-3fafebf60917
  MODULE_TYPE    = DXE_DRIVER
  VERSION_STRING = 1.0
  LIBRARY_CLASS  = PlatformBmPrintScLib|DXE_DRIVER

[Sources]
  StatusCodeHandler.c

[Packages]
  MdeModulePkg/MdeModulePkg.dec
  MdePkg/MdePkg.dec

[LibraryClasses]
  BaseMemoryLib
  DebugLib
  DevicePathLib
  MemoryAllocationLib
  PcdLib
  PrintLib
  UefiBootManagerLib
  UefiBootServicesTableLib
  UefiLib
  UefiRuntimeServicesTableLib

[Pcd]
  gEfiMdeModulePkgTokenSpaceGuid.PcdProgressCodeOsLoaderLoad  ## CONSUMES
  gEfiMdeModulePkgTokenSpaceGuid.PcdProgressCodeOsLoaderStart ## CONSUMES

[Protocols]
  gEfiRscHandlerProtocolGuid                                  ## CONSUMES

[Guids]
  gEfiGlobalVariableGuid                                      ## CONSUMES
  gEfiStatusCodeSpecificDataGuid                              ## CONSUMES

[Depex.common.DXE_DRIVER]
  gEfiRscHandlerProtocolGuid AND gEfiVariableArchProtocolGuid
