/** @file\r
Report Status Code Library for DXE Phase.\r
\r
- Copyright (c) 2006, Intel Corporation<BR>\r
+ Copyright (c) 2006 - 2007, Intel Corporation<BR>\r
All rights reserved. This program and the accompanying materials \r
are licensed and made available under the terms and conditions of the BSD License \r
which accompanies this distribution. The full text of the license may be found at \r
@retval EFI_UNSUPPORTED Status Code Protocol is not available.\r
\r
**/\r
+STATIC\r
EFI_STATUS\r
InternalReportStatusCode (\r
IN EFI_STATUS_CODE_TYPE Type,\r
IN EFI_STATUS_CODE_VALUE Value,\r
IN UINT32 Instance,\r
- IN EFI_GUID *CallerId OPTIONAL,\r
+ IN CONST EFI_GUID *CallerId OPTIONAL,\r
IN EFI_STATUS_CODE_DATA *Data OPTIONAL \r
)\r
{\r
// in the handle database.\r
//\r
if (gStatusCode == NULL) {\r
+ if (gBS == NULL) {\r
+ return EFI_UNSUPPORTED;\r
+ }\r
Status = gBS->LocateProtocol (&gEfiStatusCodeRuntimeProtocolGuid, NULL, (VOID **)&gStatusCode);\r
if (EFI_ERROR (Status) || gStatusCode == NULL) {\r
return EFI_UNSUPPORTED;\r
// A Status Code Protocol is present in the handle database, so pass in all the \r
// parameters to the ReportStatusCode() service of the Status Code Protocol\r
//\r
- return gStatusCode->ReportStatusCode (Type, Value, Instance, CallerId, Data);\r
+ return gStatusCode->ReportStatusCode (Type, Value, Instance, (EFI_GUID *)CallerId, Data);\r
}\r
\r
\r
@return The size, in bytes, of DevicePath.\r
\r
**/\r
+STATIC\r
UINTN\r
InternalReportStatusCodeDevicePathSize (\r
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
+ IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
)\r
{\r
- EFI_DEVICE_PATH_PROTOCOL *Start;\r
-\r
- if (DevicePath == NULL) {\r
- return 0;\r
- }\r
+ CONST EFI_DEVICE_PATH_PROTOCOL *Start;\r
\r
//\r
// Search for the end of the device path structure\r
//\r
if (((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) ||\r
((CodeType & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) ) {\r
- *PostCode = (UINT8) (((Value & EFI_STATUS_CODE_CLASS_MASK) >> 24) << 5);\r
- *PostCode |= (UINT8) (((Value & EFI_STATUS_CODE_SUBCLASS_MASK) >> 16) & 0x1f);\r
+ *PostCode = (UINT8) ((((Value & EFI_STATUS_CODE_CLASS_MASK) >> 24) << 5) |\r
+ (((Value & EFI_STATUS_CODE_SUBCLASS_MASK) >> 16) & 0x1f));\r
return TRUE;\r
}\r
return FALSE;\r
BOOLEAN\r
EFIAPI\r
ReportStatusCodeExtractAssertInfo (\r
- IN EFI_STATUS_CODE_TYPE CodeType,\r
- IN EFI_STATUS_CODE_VALUE Value, \r
- IN EFI_STATUS_CODE_DATA *Data, \r
- OUT CHAR8 **Filename,\r
- OUT CHAR8 **Description,\r
- OUT UINT32 *LineNumber\r
+ IN EFI_STATUS_CODE_TYPE CodeType,\r
+ IN EFI_STATUS_CODE_VALUE Value, \r
+ IN CONST EFI_STATUS_CODE_DATA *Data, \r
+ OUT CHAR8 **Filename,\r
+ OUT CHAR8 **Description,\r
+ OUT UINT32 *LineNumber\r
)\r
{\r
EFI_DEBUG_ASSERT_DATA *AssertData;\r
BOOLEAN\r
EFIAPI\r
ReportStatusCodeExtractDebugInfo (\r
- IN EFI_STATUS_CODE_DATA *Data,\r
- OUT UINT32 *ErrorLevel,\r
- OUT VA_LIST *Marker,\r
- OUT CHAR8 **Format\r
+ IN CONST EFI_STATUS_CODE_DATA *Data, \r
+ OUT UINT32 *ErrorLevel,\r
+ OUT VA_LIST *Marker,\r
+ OUT CHAR8 **Format\r
)\r
{\r
EFI_DEBUG_INFO *DebugInfo;\r
EFI_STATUS\r
EFIAPI\r
ReportStatusCodeWithDevicePath (\r
- IN EFI_STATUS_CODE_TYPE Type,\r
- IN EFI_STATUS_CODE_VALUE Value,\r
- IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
+ IN EFI_STATUS_CODE_TYPE Type,\r
+ IN EFI_STATUS_CODE_VALUE Value,\r
+ IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
)\r
{\r
ASSERT (DevicePath != NULL);\r
ReportStatusCodeWithExtendedData (\r
IN EFI_STATUS_CODE_TYPE Type,\r
IN EFI_STATUS_CODE_VALUE Value,\r
- IN VOID *ExtendedData,\r
+ IN CONST VOID *ExtendedData,\r
IN UINTN ExtendedDataSize\r
)\r
{\r
IN EFI_STATUS_CODE_TYPE Type,\r
IN EFI_STATUS_CODE_VALUE Value,\r
IN UINT32 Instance,\r
- IN EFI_GUID *CallerId OPTIONAL,\r
- IN EFI_GUID *ExtendedDataGuid OPTIONAL,\r
- IN VOID *ExtendedData OPTIONAL,\r
+ IN CONST EFI_GUID *CallerId OPTIONAL,\r
+ IN CONST EFI_GUID *ExtendedDataGuid OPTIONAL,\r
+ IN CONST VOID *ExtendedData OPTIONAL,\r
IN UINTN ExtendedDataSize\r
)\r
{\r
ASSERT (!((ExtendedData == NULL) && (ExtendedDataSize != 0)));\r
ASSERT (!((ExtendedData != NULL) && (ExtendedDataSize == 0)));\r
\r
+ if (gBS == NULL) {\r
+ return EFI_UNSUPPORTED;\r
+ }\r
+\r
//\r
// Allocate space for the Status Code Header and its buffer\r
//\r
VOID\r
)\r
{\r
- return ((PcdGet8(PcdReportStatusCodePropertyMask) & REPORT_STATUS_CODE_PROPERTY_PROGRESS_CODE_ENABLED) != 0);\r
+ return (BOOLEAN) ((PcdGet8(PcdReportStatusCodePropertyMask) & REPORT_STATUS_CODE_PROPERTY_PROGRESS_CODE_ENABLED) != 0);\r
}\r
\r
\r
VOID\r
)\r
{\r
- return ((PcdGet8(PcdReportStatusCodePropertyMask) & REPORT_STATUS_CODE_PROPERTY_ERROR_CODE_ENABLED) != 0);\r
+ return (BOOLEAN) ((PcdGet8(PcdReportStatusCodePropertyMask) & REPORT_STATUS_CODE_PROPERTY_ERROR_CODE_ENABLED) != 0);\r
}\r
\r
\r
VOID\r
)\r
{\r
- return ((PcdGet8(PcdReportStatusCodePropertyMask) & REPORT_STATUS_CODE_PROPERTY_DEBUG_CODE_ENABLED) != 0);\r
+ return (BOOLEAN) ((PcdGet8(PcdReportStatusCodePropertyMask) & REPORT_STATUS_CODE_PROPERTY_DEBUG_CODE_ENABLED) != 0);\r
}\r