]> git.proxmox.com Git - mirror_edk2.git/commitdiff
PI defines the architectural way to get PeiServicesTablePointer from sizeof (UINTN...
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 26 Nov 2008 11:28:02 +0000 (11:28 +0000)
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 26 Nov 2008 11:28:02 +0000 (11:28 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6739 6f19259b-4bc3-4df7-8a09-765794883524

EdkCompatibilityPkg/Foundation/Library/EdkIIGlueLib/Library/PeiServicesTablePointerLibMm7/PeiServicesTablePointer.c

index ca75a9493d10bf0707ba751fb1a2a41ea5df0d92..6c6f07c35345a9c021d1d44f98a9903768676019 100644 (file)
@@ -37,19 +37,19 @@ GetPeiServicesTablePointer (
   VOID\r
   )\r
 {\r
-  EFI_PEI_SERVICES  **PeiServices;\r
-#if (PI_SPECIFICATION_VERSION >= 0x00010000)\r
   IA32_DESCRIPTOR   Idtr;\r
-#endif\r
+  EFI_PEI_SERVICES  **PeiServices;\r
 \r
-#if (PI_SPECIFICATION_VERSION < 0x00010000)\r
-  PeiServices = (EFI_PEI_SERVICES **)(UINTN)AsmReadMm7 ();\r
-#else\r
   AsmReadIdtr (&Idtr);\r
   PeiServices = (EFI_PEI_SERVICES **)(UINTN)(*(UINTN*)(Idtr.Base - sizeof (UINTN)));\r
-#endif\r
-  ASSERT (PeiServices != NULL);\r
-  return PeiServices;\r
+  \r
+  if ((*PeiServices)->Hdr.Signature == PEI_SERVICES_SIGNATURE) {\r
+    return PeiServices;\r
+  } else {\r
+    PeiServices = (EFI_PEI_SERVICES **)(UINTN)AsmReadMm7 ();\r
+    ASSERT (PeiServices != NULL);\r
+    return PeiServices;\r
+  }\r
 }\r
 \r
 /**\r