]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Sec/SecArmPlatformGlobalVariableLib.c
ARM Packages: Removed trailing spaces
[mirror_edk2.git] / ArmPlatformPkg / Library / ArmPlatformGlobalVariableLib / Sec / SecArmPlatformGlobalVariableLib.c
CommitLineData
1e57a462 1/** @file\r
2*\r
3* Copyright (c) 2011-2012, ARM Limited. All rights reserved.\r
4*\r
5* This program and the accompanying materials\r
6* are licensed and made available under the terms and conditions of the BSD License\r
7* which accompanies this distribution. The full text of the license may be found at\r
8* http://opensource.org/licenses/bsd-license.php\r
9*\r
10* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12*\r
13**/\r
14\r
15#include <Uefi.h>\r
16#include <Library/ArmPlatformGlobalVariableLib.h>\r
17#include <Library/BaseLib.h>\r
18#include <Library/BaseMemoryLib.h>\r
19#include <Library/PcdLib.h>\r
20#include <Library/DebugLib.h>\r
21\r
22VOID\r
23ArmPlatformGetGlobalVariable (\r
24 IN UINTN VariableOffset,\r
25 IN UINTN VariableSize,\r
26 OUT VOID* Variable\r
27 )\r
28{\r
29 UINTN GlobalVariableBase;\r
30\r
31 // Ensure the Global Variable Size have been initialized\r
32 ASSERT (VariableOffset < PcdGet32 (PcdSecGlobalVariableSize));\r
33\r
34 GlobalVariableBase = PcdGet32 (PcdCPUCoresSecStackBase) + PcdGet32 (PcdCPUCoreSecPrimaryStackSize) - PcdGet32 (PcdSecGlobalVariableSize);\r
3402aac7 35\r
1e57a462 36 if (VariableSize == 4) {\r
37 *(UINT32*)Variable = ReadUnaligned32 ((CONST UINT32*)(GlobalVariableBase + VariableOffset));\r
38 } else if (VariableSize == 8) {\r
39 *(UINT64*)Variable = ReadUnaligned64 ((CONST UINT64*)(GlobalVariableBase + VariableOffset));\r
40 } else {\r
41 CopyMem (Variable, (VOID*)(GlobalVariableBase + VariableOffset), VariableSize);\r
42 }\r
43}\r
44\r
45VOID\r
46ArmPlatformSetGlobalVariable (\r
47 IN UINTN VariableOffset,\r
48 IN UINTN VariableSize,\r
49 OUT VOID* Variable\r
50 )\r
51{\r
52 UINTN GlobalVariableBase;\r
53\r
54 // Ensure the Global Variable Size have been initialized\r
55 ASSERT (VariableOffset < PcdGet32 (PcdSecGlobalVariableSize));\r
56\r
57 GlobalVariableBase = PcdGet32 (PcdCPUCoresSecStackBase) + PcdGet32 (PcdCPUCoreSecPrimaryStackSize) - PcdGet32 (PcdSecGlobalVariableSize);\r
58\r
59 if (VariableSize == 4) {\r
60 WriteUnaligned32 ((UINT32*)(GlobalVariableBase + VariableOffset), *(UINT32*)Variable);\r
61 } else if (VariableSize == 8) {\r
62 WriteUnaligned64 ((UINT64*)(GlobalVariableBase + VariableOffset), *(UINT64*)Variable);\r
63 } else {\r
64 CopyMem ((VOID*)(GlobalVariableBase + VariableOffset), Variable, VariableSize);\r
65 }\r
66}\r
67\r
68VOID*\r
69ArmPlatformGetGlobalVariableAddress (\r
70 IN UINTN VariableOffset\r
71 )\r
72{\r
73 UINTN GlobalVariableBase;\r
74\r
75 // Ensure the Global Variable Size have been initialized\r
76 ASSERT (VariableOffset < PcdGet32 (PcdSecGlobalVariableSize));\r
77\r
78 GlobalVariableBase = PcdGet32 (PcdCPUCoresSecStackBase) + PcdGet32 (PcdCPUCoreSecPrimaryStackSize) - PcdGet32 (PcdSecGlobalVariableSize);\r
79\r
80 return (VOID*)(GlobalVariableBase + VariableOffset);\r
81}\r