Example #1
0
VOID
PeiDebugAssert (
  IN CONST EFI_PEI_SERVICES  **PeiServices,
  IN CHAR8              *FileName,
  IN INTN               LineNumber,
  IN CHAR8              *Description
  )
/*++

Routine Description:

  Worker function for ASSERT(). If Error Logging hub is loaded log ASSERT
  information. If Error Logging hub is not loaded DEADLOOP ().
  
Arguments:

  PeiServices - The PEI core services table.

  FileName    - File name of failing routine.

  LineNumber  - Line number of failing ASSERT().

  Description - Description, usually the assertion,
  
Returns:
  
  None

--*/
{
  UINT64  Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE];

  EfiDebugAssertWorker (FileName, LineNumber, Description, 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_ERROR_CODE | EFI_ERROR_UNRECOVERED),
                    (EFI_SOFTWARE_PEI_MODULE | EFI_SW_EC_ILLEGAL_SOFTWARE_STATE),
                    0,
                    &gEfiCallerIdGuid,
                    (EFI_STATUS_CODE_DATA *) Buffer
                    );

  EFI_DEADLOOP ();
}
Example #2
0
VOID
EfiDebugAssert (
  IN CHAR8    *FileName,
  IN INTN     LineNumber,
  IN CHAR8    *Description
  )
/*++

Routine Description:

  Worker function for ASSERT (). If Error Logging hub is loaded log ASSERT
  information. If Error Logging hub is not loaded BREAKPOINT ().
  
Arguments:

  FileName    - File name of failing routine.

  LineNumber  - Line number of failing ASSERT ().

  Description - Description, usually the assertion,
  
Returns:
  
  None

--*/
{
  UINT64  Buffer[EFI_STATUS_CODE_DATA_MAX_SIZE64];

  EfiDebugAssertWorker (FileName, LineNumber, Description, sizeof (Buffer), Buffer);

  EfiReportStatusCode (
    (EFI_ERROR_CODE | EFI_ERROR_UNRECOVERED),
    (EFI_SOFTWARE_DXE_RT_DRIVER | EFI_SW_EC_ILLEGAL_SOFTWARE_STATE),
    0,
    &gEfiCallerIdGuid,
    (EFI_STATUS_CODE_DATA *) Buffer
    );

  //
  // Put dead loop in module that contained the error.
  //
  EFI_DEADLOOP ();
}