/** @file This driver installs gEdkiiDebugPpiGuid PPI to provide debug services for PEIMs. Copyright (c) 2019, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ #include #include #include #include #include #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); }