VOID PeiDebugPrint ( IN CONST EFI_PEI_SERVICES **PeiServices, IN UINTN ErrorLevel, IN CHAR8 *Format, ... ) /*++ Routine Description: Worker function for DEBUG(). If Error Logging hub is loaded log ASSERT information. If Error Logging hub is not loaded do nothing. Arguments: PeiServices - The PEI core services table. ErrorLevel - If error level is set do the debug print. Format - String to use for the print, followed by Print arguments. ... - Print arguments Returns: None --*/ { VA_LIST Marker; UINT64 Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE]; VA_START (Marker, Format); EfiDebugVPrintWorker (ErrorLevel, Format, Marker, sizeof (Buffer), Buffer); // // We choose NOT to use PEI_REPORT_STATUS_CODE here, because when debug is enable, // we want get enough information if assert. // (**PeiServices).PeiReportStatusCode ( (EFI_PEI_SERVICES**)PeiServices, EFI_DEBUG_CODE, (EFI_SOFTWARE_PEI_MODULE | EFI_DC_UNSPECIFIED), 0, &gEfiCallerIdGuid, (EFI_STATUS_CODE_DATA *) Buffer ); return ; }
VOID EfiDebugVPrint ( IN UINTN ErrorLevel, IN CHAR8 *Format, IN VA_LIST Marker ) /*++ Routine Description: Worker function for DEBUG (). If Error Logging hub is loaded log ASSERT information. If Error Logging hub is not loaded do nothing. Arguments: ErrorLevel - If error level is set do the debug print. Format - String to use for the print, followed by Print arguments. Marker - VarArgs Returns: None --*/ { UINT64 Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE64]; if (!(gRtErrorLevel & ErrorLevel)) { return ; } EfiDebugVPrintWorker (ErrorLevel, Format, Marker, sizeof (Buffer), Buffer); EfiReportStatusCode ( EFI_DEBUG_CODE, (EFI_SOFTWARE_DXE_RT_DRIVER | EFI_DC_UNSPECIFIED), (UINT32) ErrorLevel, &gEfiCallerIdGuid, (EFI_STATUS_CODE_DATA *) Buffer ); return ; }