From 19bcc73213ba1cb280b6e455dea7e153217d579c Mon Sep 17 00:00:00 2001 From: Wei6 Xu Date: Tue, 21 May 2024 10:45:17 +0800 Subject: 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 Cc: Liming Gao Signed-off-by: Wei6 Xu --- MdeModulePkg/Include/Library/HobPrintLib.h | 46 ++++++++++++++++++++++++++++++ MdeModulePkg/MdeModulePkg.dec | 4 +++ 2 files changed, 50 insertions(+) create mode 100644 MdeModulePkg/Include/Library/HobPrintLib.h (limited to 'MdeModulePkg') diff --git a/MdeModulePkg/Include/Library/HobPrintLib.h b/MdeModulePkg/Include/Library/HobPrintLib.h new file mode 100644 index 0000000..40bb035 --- /dev/null +++ b/MdeModulePkg/Include/Library/HobPrintLib.h @@ -0,0 +1,46 @@ +/** @file + The library to print all the HOBs. + + Copyright (c) 2024, Intel Corporation. All rights reserved.
+ 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 diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec index 6148025..e6e0139 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec @@ -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 -- cgit v1.1