]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Library/PeiReportStatusCodeLib/ReportStatusCodeLib.c
Add conditional check before output status code.
[mirror_edk2.git] / IntelFrameworkModulePkg / Library / PeiReportStatusCodeLib / ReportStatusCodeLib.c
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