]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Fix the bug in GlueLib that we should depend on the gRT revision to use the proper...
authorqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 12 Sep 2008 07:54:40 +0000 (07:54 +0000)
committerqhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 12 Sep 2008 07:54:40 +0000 (07:54 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5889 6f19259b-4bc3-4df7-8a09-765794883524

EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/DxeReportStatusCodeLib/ReportStatusCodeLib.c

index 2178d742e1609276eee6e90961d6cb327d05cf15..0526d22073f037f81ffc0bbaf244ae30f731a56a 100644 (file)
@@ -22,13 +22,11 @@ Abstract:
 \r
 #include "EdkIIGlueDxe.h"\r
 \r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
 //\r
 // Global pointer to the Status Code Protocol\r
 //\r
 static EFI_STATUS_CODE_PROTOCOL  *gStatusCode = NULL;\r
 \r
-#endif\r
 \r
 /**\r
   Internal worker function that reports a status code through the Status Code Protocol\r
@@ -63,32 +61,32 @@ InternalReportStatusCode (
   IN EFI_STATUS_CODE_DATA     *Data     OPTIONAL  \r
   )\r
 {\r
-#if (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
-\r
   EFI_STATUS  Status;\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 (gStatusCode == NULL) {\r
-    Status = gBS->LocateProtocol (&gEfiStatusCodeRuntimeProtocolGuid, NULL, (VOID **)&gStatusCode);\r
-    if (EFI_ERROR (Status) || gStatusCode == NULL) {\r
-      return EFI_UNSUPPORTED;\r
-    }\r
+  if (gRT == NULL) {\r
+    return EFI_UNSUPPORTED;\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 (gStatusCode->ReportStatusCode) (Type, Value, Instance, (EFI_GUID *)CallerId, Data);\r
-\r
-#else\r
-\r
-  return (gRT->ReportStatusCode) (Type, Value, Instance, (EFI_GUID *)CallerId, Data);\r
+  if (gRT->Hdr.Revision >= 0x00020000) {\r
+    //\r
+    // If gStatusCode is NULL, then see if a Status Code Protocol instance is present \r
+    // in the handle database.\r
+    //\r
+    if (gStatusCode == NULL) {\r
+      Status = gBS->LocateProtocol (&gEfiStatusCodeRuntimeProtocolGuid, NULL, (VOID **)&gStatusCode);\r
+      if (EFI_ERROR (Status) || gStatusCode == NULL) {\r
+        return EFI_UNSUPPORTED;\r
+      }\r
+    }\r
 \r
-#endif\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 (gStatusCode->ReportStatusCode) (Type, Value, Instance, (EFI_GUID *)CallerId, Data);\r
+  } else {\r
+    return (gRT->ReportStatusCode) (Type, Value, Instance, (EFI_GUID *)CallerId, Data);\r
+  }\r
 \r
 }\r
 \r