]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Dxe/DxeArmPlatformGlobalVariableLib.c
ArmPlatformPkg: remove PeiServicesTablePointerLib implementation
[mirror_edk2.git] / ArmPlatformPkg / Library / ArmPlatformGlobalVariableLib / Dxe / DxeArmPlatformGlobalVariableLib.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 <PiDxe.h>\r
16#include <Library/ArmPlatformGlobalVariableLib.h>\r
17#include <Library/BaseMemoryLib.h>\r
18#include <Library/DebugLib.h>\r
19#include <Library/HobLib.h>\r
20#include <Library/PcdLib.h>\r
21\r
22#include <Guid/ArmGlobalVariableHob.h>\r
23\r
24UINTN mGlobalVariableBase = 0;\r
25\r
26RETURN_STATUS\r
27EFIAPI\r
28ArmPlatformGlobalVariableConstructor (\r
29 VOID\r
30 )\r
31{\r
32 ARM_HOB_GLOBAL_VARIABLE *Hob;\r
33\r
34 Hob = GetFirstGuidHob (&gArmGlobalVariableGuid);\r
35 ASSERT (Hob != NULL);\r
36\r
37 mGlobalVariableBase = Hob->GlobalVariableBase;\r
38\r
39 return EFI_SUCCESS;\r
40}\r
41\r
42VOID\r
43ArmPlatformGetGlobalVariable (\r
44 IN UINTN VariableOffset,\r
45 IN UINTN VariableSize,\r
46 OUT VOID* Variable\r
47 )\r
48{\r
49 if (mGlobalVariableBase == 0) {\r
50 ArmPlatformGlobalVariableConstructor ();\r
51 }\r
52\r
53 CopyMem (Variable, (VOID*)(mGlobalVariableBase + VariableOffset), VariableSize);\r
54}\r
55\r
56VOID\r
57ArmPlatformSetGlobalVariable (\r
58 IN UINTN VariableOffset,\r
59 IN UINTN VariableSize,\r
60 OUT VOID* Variable\r
61 )\r
62{\r
63 if (mGlobalVariableBase == 0) {\r
64 ArmPlatformGlobalVariableConstructor ();\r
65 }\r
66\r
67 CopyMem ((VOID*)(mGlobalVariableBase + VariableOffset), Variable, VariableSize);\r
68}\r
69\r
70VOID*\r
71ArmPlatformGetGlobalVariableAddress (\r
72 IN UINTN VariableOffset\r
73 )\r
74{\r
75 return (VOID*)(mGlobalVariableBase + VariableOffset);\r
76}\r