diff options
Diffstat (limited to 'src/VBox/Devices/EFI/Firmware/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c')
-rw-r--r-- | src/VBox/Devices/EFI/Firmware/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/src/VBox/Devices/EFI/Firmware/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c b/src/VBox/Devices/EFI/Firmware/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c new file mode 100644 index 00000000..a2ccee23 --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware/MdeModulePkg/Universal/DebugServicePei/DebugServicePei.c @@ -0,0 +1,94 @@ +/** @file + This driver installs gEdkiiDebugPpiGuid PPI to provide + debug services for PEIMs. + + Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include <Uefi/UefiBaseType.h> +#include <Library/PeimEntryPoint.h> +#include <Library/PeiServicesLib.h> +#include <Library/DebugLib.h> + +#include <Ppi/Debug.h> + +#include "DebugService.h" + +EDKII_DEBUG_PPI mDebugPpi = { + PeiDebugBPrint, + PeiDebugAssert +}; + +EFI_PEI_PPI_DESCRIPTOR mDebugServicePpi = { + (EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST), + &gEdkiiDebugPpiGuid, + (VOID *)&mDebugPpi +}; + +/** + Print a debug message to debug output device if the specified error level + is enabled. + + @param[in] ErrorLevel The error level of the debug message. + @param[in] Format Format string for the debug message to print. + @param[in] Marker BASE_LIST marker for the variable argument list. + +**/ +VOID +EFIAPI +PeiDebugBPrint( + IN UINTN ErrorLevel, + IN CONST CHAR8 *Format, + IN BASE_LIST Marker + ) +{ + DebugBPrint(ErrorLevel, Format, Marker); +} + +/** + Print an assert message containing a filename, line number, and description. + This may be followed by a breakpoint or a dead loop. + + @param[in] FileName The pointer to the name of the source file that + generated the assert condition. + @param[in] LineNumber The line number in the source file that generated + the assert condition + @param[in] Description The pointer to the description of the assert condition. + +**/ +VOID +EFIAPI +PeiDebugAssert( + IN CONST CHAR8 *FileName, + IN UINTN LineNumber, + IN CONST CHAR8 *Description + ) +{ + DebugAssert(FileName, LineNumber, Description); +} + +/** + Entry point of Debug Service PEIM + + This funciton installs EDKII DEBUG PPI + + @param FileHandle Handle of the file being invoked. + @param PeiServices Describes the list of possible PEI Services. + + @retval EFI_SUCESS The entry point of Debug Service PEIM executes successfully. + @retval Others Some error occurs during the execution of this function. + +**/ +EFI_STATUS +EFIAPI +DebugSerivceInitialize ( + IN EFI_PEI_FILE_HANDLE FileHandle, + IN CONST EFI_PEI_SERVICES **PeiServices + ) +{ + return PeiServicesInstallPpi (&mDebugServicePpi); +} + |