Ejemplo n.º 1
0
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 ;
}
Ejemplo n.º 2
0
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 ;
}