3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
25 // Don't use module globals after the SetVirtualAddress map is signaled
27 extern ESAL_VARIABLE_GLOBAL
*mVariableModuleGlobal
;
31 EsalVariableCommonEntry (
40 IN SAL_EXTENDED_SAL_PROC ExtendedSalProc
,
41 IN BOOLEAN VirtualMode
,
42 IN ESAL_VARIABLE_GLOBAL
*Global
54 SAL_RETURN_REGS ReturnVal
;
58 ReturnVal
.Status
= GetVariable (
64 &Global
->VariableBase
[VirtualMode
],
69 case EsalGetNextVariableName
:
70 ReturnVal
.Status
= GetNextVariableName (
74 &Global
->VariableBase
[VirtualMode
],
80 ReturnVal
.Status
= SetVariable (
86 &Global
->VariableBase
[VirtualMode
],
87 (UINTN
*) &Global
->VolatileLastVariableOffset
,
88 (UINTN
*) &Global
->NonVolatileLastVariableOffset
,
93 #if (EFI_SPECIFICATION_VERSION >= 0x00020000)
94 case EsalQueryVariableInfo
:
95 ReturnVal
.Status
= QueryVariableInfo (
100 &Global
->VariableBase
[VirtualMode
],
107 ReturnVal
.Status
= EFI_SAL_INVALID_ARGUMENT
;
114 VariableClassAddressChangeEvent (
129 &mVariableModuleGlobal
->VariableBase
[Virtual
],
130 &mVariableModuleGlobal
->VariableBase
[Physical
],
131 sizeof (VARIABLE_GLOBAL
)
136 (VOID
**) &mVariableModuleGlobal
->VariableBase
[Virtual
].NonVolatileVariableBase
140 (VOID
**) &mVariableModuleGlobal
->VariableBase
[Virtual
].VolatileVariableBase
142 EfiConvertPointer (0x0, (VOID
**) &mVariableModuleGlobal
);
146 VariableServiceInitialize (
147 IN EFI_HANDLE ImageHandle
,
148 IN EFI_SYSTEM_TABLE
*SystemTable
162 Status
= VariableCommonInitialize (ImageHandle
, SystemTable
);
163 ASSERT_EFI_ERROR (Status
);
166 // Register All the Functions with Extended Sal.
169 &gEfiExtendedSalVariableServicesProtocolGuid
,
170 mVariableModuleGlobal
,
171 EsalVariableCommonEntry
,
173 EsalVariableCommonEntry
,
174 EsalGetNextVariableName
,
175 EsalVariableCommonEntry
,
177 #if (EFI_SPECIFICATION_VERSION >= 0x00020000)
178 EsalVariableCommonEntry
,
179 EsalQueryVariableInfo
,