]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.c
ArmPlatformPkg/ArmPlatformGlobalVariableLib: Added an assert to ensure the 'VariableO...
[mirror_edk2.git] / ArmPlatformPkg / Library / ArmPlatformGlobalVariableLib / PrePi / PrePiArmPlatformGlobalVariableLib.c
index 37b337bff299180267a7f271e114d051a20ea274..ced49d0db886e6e8ec3e85e62ade363277a13e73 100644 (file)
@@ -1,6 +1,6 @@
 /** @file
 *
-*  Copyright (c) 2011, ARM Limited. All rights reserved.
+*  Copyright (c) 2011-2012, ARM Limited. All rights reserved.
 *
 *  This program and the accompanying materials
 *  are licensed and made available under the terms and conditions of the BSD License
@@ -17,6 +17,7 @@
 #include <Library/BaseLib.h>
 #include <Library/BaseMemoryLib.h>
 #include <Library/PcdLib.h>
+#include <Library/DebugLib.h>
 
 #define IS_XIP() (((UINT32)PcdGet32 (PcdFdBaseAddress) > (UINT32)(PcdGet32 (PcdSystemMemoryBase) + PcdGet32 (PcdSystemMemorySize))) || \
                   ((PcdGet32 (PcdFdBaseAddress) + PcdGet32 (PcdFdSize)) < PcdGet32 (PcdSystemMemoryBase)))
@@ -33,6 +34,9 @@ ArmPlatformGetGlobalVariable (
 {
   UINTN  GlobalVariableBase;
 
+  // Ensure the Global Variable Size have been initialized
+  ASSERT (VariableOffset < PcdGet32 (PcdPeiGlobalVariableSize));
+
   if (IS_XIP()) {
     // In Case of XIP, we expect the Primary Stack at the top of the System Memory
     // The size must be 64bit aligned to allow 64bit variable to be aligned
@@ -59,6 +63,9 @@ ArmPlatformSetGlobalVariable (
 {
   UINTN  GlobalVariableBase;
 
+  // Ensure the Global Variable Size have been initialized
+  ASSERT (VariableOffset < PcdGet32 (PcdPeiGlobalVariableSize));
+
   if (IS_XIP()) {
     // In Case of XIP, we expect the Primary Stack at the top of the System Memory
     // The size must be 64bit aligned to allow 64bit variable to be aligned