MdeModulePkg: Add HobPrintLib header file

Interface PrintHobList() is added to dump all HOBs info in the HobList.
Caller could specify a custom HOB print handler to replace the default
print handler when calling the interface.

Cc: Ray Ni <ray.ni@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Signed-off-by: Wei6 Xu <wei6.xu@intel.com>
This commit is contained in:
Wei6 Xu 2024-05-21 10:45:17 +08:00 committed by mergify[bot]
parent d5fad2176c
commit 19bcc73213
2 changed files with 50 additions and 0 deletions

View File

@ -0,0 +1,46 @@
/** @file
The library to print all the HOBs.
Copyright (c) 2024, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef HOB_PRINT_LIB_H_
#define HOB_PRINT_LIB_H_
/**
HOB Print Handler to print HOB information.
@param[in] HobStart A pointer to the HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
@param[in] HobLength The length in bytes of the HOB of type EFI_HOB_TYPE_GUID_EXTENSION.
@retval EFI_SUCCESS If it completed successfully.
@retval EFI_UNSUPPORTED If the HOB type is not supported.
**/
typedef
EFI_STATUS
(*HOB_PRINT_HANDLER)(
IN VOID *Hob,
IN UINT16 HobLength
);
/**
Print all HOBs info from the HOB list.
If the input PrintHandler is not NULL, the PrintHandler will be processed first.
If PrintHandler returns EFI_SUCCESS, default HOB info print logic in PrintHobList
will be skipped.
@param[in] HobStart A pointer to the HOB list.
@param[in] PrintHandler A custom handler to print HOB info.
**/
VOID
EFIAPI
PrintHobList (
IN CONST VOID *HobStart,
IN HOB_PRINT_HANDLER PrintHandler OPTIONAL
);
#endif

View File

@ -174,6 +174,10 @@
#
SpiHcPlatformLib|Include/Library/SpiHcPlatformLib.h
## @libraryclass Provides services to prints all HOB information.
#
HobPrintLib|Include/Library/HobPrintLib.h
[Guids]
## MdeModule package token space guid
# Include/Guid/MdeModulePkgTokenSpace.h