]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointer.c
ArmPlatformPkg: Introduce ArmPlatformGlobalVariableLib
[mirror_edk2.git] / ArmPlatformPkg / Library / PeiServicesTablePointerLib / PeiServicesTablePointer.c
index 0e6755d3aa015cdbaaefbf0d71869c339fa559ae..cb0041f90dc8c1361245d054a414546a3693f5b3 100644 (file)
@@ -16,6 +16,7 @@
 **/\r
 \r
 #include <PiPei.h>\r
+#include <Library/ArmPlatformGlobalVariableLib.h>\r
 #include <Library/PeiServicesTablePointerLib.h>\r
 #include <Library/DebugLib.h>\r
 #include <Library/PcdLib.h>\r
 VOID\r
 EFIAPI\r
 SetPeiServicesTablePointer (\r
-  IN CONST EFI_PEI_SERVICES ** PeiServicesTablePointer\r
+  IN CONST EFI_PEI_SERVICES **PeiServicesTablePointer\r
   )\r
 {\r
-  UINTN *PeiPtrLoc;\r
   ASSERT (PeiServicesTablePointer != NULL);\r
 \r
-  PeiPtrLoc = (UINTN *)(UINTN)(PcdGet32 (PcdCPUCoresNonSecStackBase) + \r
-                               (PcdGet32 (PcdCPUCoresNonSecStackSize) / 2) - \r
-                               PcdGet32 (PcdPeiGlobalVariableSize) +\r
-                               PcdGet32 (PcdPeiServicePtrGlobalOffset));\r
-  *PeiPtrLoc = (UINTN)PeiServicesTablePointer;\r
+  ArmPlatformSetGlobalVariable (PcdGet32 (PcdPeiServicePtrGlobalOffset), sizeof(EFI_PEI_SERVICES **), &PeiServicesTablePointer);\r
 }\r
 \r
 /**\r
@@ -58,19 +54,17 @@ SetPeiServicesTablePointer (
   @return  The pointer to PeiServices.\r
 \r
 **/\r
-CONST EFI_PEI_SERVICES **\r
+CONST EFI_PEI_SERVICES**\r
 EFIAPI\r
 GetPeiServicesTablePointer (\r
   VOID\r
   )\r
 {\r
-  UINTN *PeiPtrLoc;\r
+  EFI_PEI_SERVICES **PeiServicesTablePointer;\r
 \r
-  PeiPtrLoc = (UINTN *)(UINTN)(PcdGet32 (PcdCPUCoresNonSecStackBase) + \r
-                               (PcdGet32 (PcdCPUCoresNonSecStackSize) / 2) - \r
-                               PcdGet32 (PcdPeiGlobalVariableSize) +\r
-                               PcdGet32 (PcdPeiServicePtrGlobalOffset));\r
-  return (CONST EFI_PEI_SERVICES **)*PeiPtrLoc;\r
+  ArmPlatformGetGlobalVariable (PcdGet32 (PcdPeiServicePtrGlobalOffset), sizeof(EFI_PEI_SERVICES **), &PeiServicesTablePointer);\r
+\r
+  return (CONST EFI_PEI_SERVICES**)PeiServicesTablePointer;\r
 }\r
 \r
 \r