]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Universal/EmuVariable/RuntimeDxe/Ipf/InitVariable.c
changed the Esal call function ids all over the tree
[mirror_edk2.git] / EdkModulePkg / Universal / EmuVariable / RuntimeDxe / Ipf / InitVariable.c
CommitLineData
878ddf1f 1/*++\r
2\r
ce8bd86e 3Copyright (c) 2006 - 2007, Intel Corporation\r
4All rights reserved. This program and the accompanying materials\r
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
878ddf1f 11\r
12Module Name:\r
13\r
14 IpfVariable.c\r
15\r
16Abstract:\r
17\r
18Revision History\r
19\r
20--*/\r
21\r
22#include "Variable.h"\r
23\r
24//\r
25// Don't use module globals after the SetVirtualAddress map is signaled\r
26//\r
878ddf1f 27\r
1cc8ee78 28STATIC\r
878ddf1f 29SAL_RETURN_REGS\r
30EsalVariableCommonEntry (\r
31 IN UINT64 FunctionId,\r
32 IN UINT64 Arg2,\r
33 IN UINT64 Arg3,\r
34 IN UINT64 Arg4,\r
35 IN UINT64 Arg5,\r
36 IN UINT64 Arg6,\r
37 IN UINT64 Arg7,\r
38 IN UINT64 Arg8,\r
39 IN SAL_EXTENDED_SAL_PROC ExtendedSalProc,\r
40 IN BOOLEAN VirtualMode,\r
41 IN ESAL_VARIABLE_GLOBAL *Global\r
42 )\r
43/*++\r
44\r
45Routine Description:\r
46\r
47Arguments:\r
48\r
49Returns:\r
50\r
51--*/\r
52{\r
53 SAL_RETURN_REGS ReturnVal;\r
54\r
55 switch (FunctionId) {\r
b798426d 56 case EsalGetVariableFunctionId:\r
878ddf1f 57 ReturnVal.Status = GetVariable (\r
58 (CHAR16 *) Arg2,\r
59 (EFI_GUID *) Arg3,\r
60 (UINT32 *) Arg4,\r
61 (UINTN *) Arg5,\r
62 (VOID *) Arg6,\r
6ed71dcc 63 &Global->VariableGlobal[VirtualMode],\r
878ddf1f 64 Global->FvbInstance\r
65 );\r
66 return ReturnVal;\r
67\r
b798426d 68 case EsalGetNextVariableNameFunctionId:\r
878ddf1f 69 ReturnVal.Status = GetNextVariableName (\r
70 (UINTN *) Arg2,\r
71 (CHAR16 *) Arg3,\r
72 (EFI_GUID *) Arg4,\r
6ed71dcc 73 &Global->VariableGlobal[VirtualMode],\r
878ddf1f 74 Global->FvbInstance\r
75 );\r
76 return ReturnVal;\r
77\r
b798426d 78 case EsalSetVariableFunctionId:\r
878ddf1f 79 ReturnVal.Status = SetVariable (\r
80 (CHAR16 *) Arg2,\r
81 (EFI_GUID *) Arg3,\r
82 (UINT32) Arg4,\r
83 (UINTN) Arg5,\r
84 (VOID *) Arg6,\r
6ed71dcc 85 &Global->VariableGlobal[VirtualMode],\r
878ddf1f 86 (UINTN *) &Global->VolatileLastVariableOffset,\r
87 (UINTN *) &Global->NonVolatileLastVariableOffset,\r
88 Global->FvbInstance\r
89 );\r
90 return ReturnVal;\r
91\r
b798426d 92 case EsalQueryVariableInfoFunctionId:\r
045f4521 93 ReturnVal.Status = QueryVariableInfo (\r
94 (UINT32) Arg2,\r
95 (UINT64 *) Arg3,\r
96 (UINT64 *) Arg4,\r
97 (UINT64 *) Arg5,\r
6ed71dcc 98 &Global->VariableGlobal[VirtualMode],\r
045f4521 99 Global->FvbInstance\r
100 );\r
101 return ReturnVal;\r
045f4521 102\r
878ddf1f 103 default:\r
104 ReturnVal.Status = EFI_SAL_INVALID_ARGUMENT;\r
105 return ReturnVal;\r
106 }\r
107}\r
108\r
109\r
110VOID\r
111VariableClassAddressChangeEvent (\r
112 IN EFI_EVENT Event,\r
113 IN VOID *Context\r
114 )\r
115/*++\r
116\r
117Routine Description:\r
118\r
119Arguments:\r
120\r
121Returns:\r
122\r
123--*/\r
124{\r
125 CopyMem (\r
6ed71dcc 126 &mVariableModuleGlobal->VariableGlobal[Virtual],\r
127 &mVariableModuleGlobal->VariableGlobal[Physical],\r
878ddf1f 128 sizeof (VARIABLE_GLOBAL)\r
129 );\r
130\r
131 EfiConvertPointer (\r
132 0x0,\r
6ed71dcc 133 (VOID **) &mVariableModuleGlobal->VariableGlobal[Virtual].NonVolatileVariableBase\r
878ddf1f 134 );\r
135 EfiConvertPointer (\r
136 0x0,\r
6ed71dcc 137 (VOID **) &mVariableModuleGlobal->VariableGlobal[Virtual].VolatileVariableBase\r
878ddf1f 138 );\r
139 EfiConvertPointer (0x0, (VOID **) &mVariableModuleGlobal);\r
140}\r
141\r
142EFI_STATUS\r
143VariableServiceInitialize (\r
144 IN EFI_HANDLE ImageHandle,\r
145 IN EFI_SYSTEM_TABLE *SystemTable\r
146 )\r
147/*++\r
148\r
149Routine Description:\r
150\r
151Arguments:\r
152\r
153Returns:\r
154\r
155--*/\r
156{\r
157 EFI_STATUS Status;\r
158\r
159 Status = VariableCommonInitialize (ImageHandle, SystemTable);\r
160 ASSERT_EFI_ERROR (Status);\r
161\r
162 //\r
163 // Register All the Functions with Extended Sal.\r
164 //\r
165 RegisterEsalClass (\r
166 &gEfiExtendedSalVariableServicesProtocolGuid,\r
167 mVariableModuleGlobal,\r
168 EsalVariableCommonEntry,\r
b798426d 169 EsalGetVariableFunctionId,\r
878ddf1f 170 EsalVariableCommonEntry,\r
b798426d 171 EsalGetNextVariableNameFunctionId,\r
878ddf1f 172 EsalVariableCommonEntry,\r
b798426d 173 EsalSetVariableFunctionId,\r
045f4521 174 EsalVariableCommonEntry,\r
b798426d 175 EsalQueryVariableInfoFunctionId,\r
878ddf1f 176 NULL\r
177 );\r
178\r
179 return EFI_SUCCESS;\r
180}\r