Add conditional check before output status code.
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 23 Feb 2009 14:31:09 +0000 (14:31 +0000)
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 23 Feb 2009 14:31:09 +0000 (14:31 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7603 6f19259b-4bc3-4df7-8a09-765794883524

IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/ReportStatusCodeLib.c
IntelFrameworkModulePkg/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c

index f29831563c083fd62d919a46896e87646ef4900d..9e35cdda9083f5e6094099352758d35473437f03 100644 (file)
@@ -48,22 +48,28 @@ InternalReportStatusCode (
   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
index f39f36d6b6455700bbcff8ff94862c9fa0ec15b4..d027dc4a8e9e5b0ab99c8abd099ac24652536b3f 100644 (file)
@@ -67,22 +67,28 @@ InternalReportStatusCode (
   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