/** @file Debug Print Error Level library instance that retrieves the DebugPrintErrorLevel from bootloader. Copyright (c) 2022, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include #include #include #include #include #include #include #include STATIC UINT32 gDebugPrintErrorLevel; STATIC BOOLEAN gDebugPrintErrorLevelInitialized = FALSE; /** Returns the debug print error level mask for the current module. @return Debug print error level mask for the current module. **/ UINT32 EFIAPI GetDebugPrintErrorLevel ( VOID ) { VOID *GuidHob; UNIVERSAL_PAYLOAD_GENERIC_HEADER *GenericHeader; UEFI_PAYLOAD_DEBUG_PRINT_ERROR_LEVEL *DebugPrintErrorLevel; if (!gDebugPrintErrorLevelInitialized) { gDebugPrintErrorLevelInitialized = TRUE; gDebugPrintErrorLevel = PcdGet32 (PcdDebugPrintErrorLevel); GuidHob = GetFirstGuidHob (&gEdkiiDebugPrintErrorLevelGuid); if (GuidHob != NULL) { GenericHeader = (UNIVERSAL_PAYLOAD_GENERIC_HEADER *)GET_GUID_HOB_DATA (GuidHob); if ((sizeof (UNIVERSAL_PAYLOAD_GENERIC_HEADER) < GET_GUID_HOB_DATA_SIZE (GuidHob)) && (GenericHeader->Length <= GET_GUID_HOB_DATA_SIZE (GuidHob))) { if (GenericHeader->Revision == UEFI_PAYLOAD_DEBUG_PRINT_ERROR_LEVEL_REVISION) { DebugPrintErrorLevel = (UEFI_PAYLOAD_DEBUG_PRINT_ERROR_LEVEL *)GET_GUID_HOB_DATA (GuidHob); if (DebugPrintErrorLevel->Header.Length >= UNIVERSAL_PAYLOAD_SIZEOF_THROUGH_FIELD (UEFI_PAYLOAD_DEBUG_PRINT_ERROR_LEVEL, ErrorLevel)) { gDebugPrintErrorLevel = DebugPrintErrorLevel->ErrorLevel; } } } } } return gDebugPrintErrorLevel; } /** Sets the global debug print error level mask fpr the entire platform. @param ErrorLevel Global debug print error level. @retval TRUE The debug print error level mask was sucessfully set. @retval FALSE The debug print error level mask could not be set. **/ BOOLEAN EFIAPI SetDebugPrintErrorLevel ( UINT32 ErrorLevel ) { // // This library uinstance does not support setting the global debug print error // level mask. // return FALSE; }