)\r
{\r
EFI_PEI_SERVICES **PeiServices;\r
+#if (PI_SPECIFICATION_VERSION >= 0x00010000)\r
+ IA32_DESCRIPTOR Idtr;\r
+#endif\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
IN EFI_PEI_SERVICES **PeiServices\r
)\r
{\r
+#if (PI_SPECIFICATION_VERSION < 0x00010000)\r
AsmWriteMm7 ((UINT64)(UINTN)PeiServices);\r
+#endif\r
return EFI_SUCCESS;\r
}\r