IN EFI_STATUS_CODE_DATA *Data OPTIONAL\r
)\r
{\r
- //\r
- // If gStatusCode is NULL, then see if a Status Code Protocol instance is present\r
- // in the handle database.\r
- //\r
- if (mReportStatusCode == NULL) {\r
- mReportStatusCode = InternalGetReportStatusCode ();\r
+ if ((ReportProgressCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) ||\r
+ (ReportErrorCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) ||\r
+ (ReportDebugCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_DEBUG_CODE)) {\r
+ //\r
+ // If gStatusCode is NULL, then see if a Status Code Protocol instance is present\r
+ // in the handle database.\r
+ //\r
if (mReportStatusCode == NULL) {\r
- return EFI_UNSUPPORTED;\r
+ mReportStatusCode = InternalGetReportStatusCode ();\r
+ if (mReportStatusCode == NULL) {\r
+ return EFI_UNSUPPORTED;\r
+ }\r
}\r
+ \r
+ //\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 (*mReportStatusCode) (Type, Value, Instance, (EFI_GUID *)CallerId, Data);\r
}\r
-\r
- //\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 (*mReportStatusCode) (Type, Value, Instance, (EFI_GUID *)CallerId, Data);\r
+ \r
+ return EFI_UNSUPPORTED;\r
}\r
\r
\r
CONST EFI_PEI_SERVICES **PeiServices;\r
EFI_STATUS Status;\r
\r
- PeiServices = GetPeiServicesTablePointer ();\r
- Status = (*PeiServices)->ReportStatusCode (\r
- PeiServices,\r
- Type,\r
- Value,\r
- Instance,\r
- (EFI_GUID *)CallerId,\r
- Data\r
- );\r
- if (Status == EFI_NOT_AVAILABLE_YET) {\r
- Status = OemHookStatusCodeInitialize ();\r
- if (!EFI_ERROR (Status)) {\r
- return OemHookStatusCodeReport (Type, Value, Instance, (EFI_GUID *) CallerId, Data);\r
+ if ((ReportProgressCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_PROGRESS_CODE) ||\r
+ (ReportErrorCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_ERROR_CODE) ||\r
+ (ReportDebugCodeEnabled() && ((Type) & EFI_STATUS_CODE_TYPE_MASK) == EFI_DEBUG_CODE)) {\r
+ PeiServices = GetPeiServicesTablePointer ();\r
+ Status = (*PeiServices)->ReportStatusCode (\r
+ PeiServices,\r
+ Type,\r
+ Value,\r
+ Instance,\r
+ (EFI_GUID *)CallerId,\r
+ Data\r
+ );\r
+ if (Status == EFI_NOT_AVAILABLE_YET) {\r
+ Status = OemHookStatusCodeInitialize ();\r
+ if (!EFI_ERROR (Status)) {\r
+ return OemHookStatusCodeReport (Type, Value, Instance, (EFI_GUID *) CallerId, Data);\r
+ }\r
}\r
+ return Status;\r
}\r
- return Status;\r
+\r
+ return EFI_UNSUPPORTED;\r
}\r
\r
\r