3 Copyright (c) 2006 - 2007, 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
30 EsalVariableCommonEntry (
39 IN SAL_EXTENDED_SAL_PROC ExtendedSalProc
,
40 IN BOOLEAN VirtualMode
,
41 IN ESAL_VARIABLE_GLOBAL
*Global
53 SAL_RETURN_REGS ReturnVal
;
57 ReturnVal
.Status
= GetVariable (
63 &Global
->VariableGlobal
[VirtualMode
],
68 case EsalGetNextVariableName
:
69 ReturnVal
.Status
= GetNextVariableName (
73 &Global
->VariableGlobal
[VirtualMode
],
79 ReturnVal
.Status
= SetVariable (
85 &Global
->VariableGlobal
[VirtualMode
],
86 (UINTN
*) &Global
->VolatileLastVariableOffset
,
87 (UINTN
*) &Global
->NonVolatileLastVariableOffset
,
92 #if (EFI_SPECIFICATION_VERSION >= 0x00020000)
93 case EsalQueryVariableInfo
:
94 ReturnVal
.Status
= QueryVariableInfo (
99 &Global
->VariableGlobal
[VirtualMode
],
106 ReturnVal
.Status
= EFI_SAL_INVALID_ARGUMENT
;
113 VariableClassAddressChangeEvent (
128 &mVariableModuleGlobal
->VariableGlobal
[Virtual
],
129 &mVariableModuleGlobal
->VariableGlobal
[Physical
],
130 sizeof (VARIABLE_GLOBAL
)
135 (VOID
**) &mVariableModuleGlobal
->VariableGlobal
[Virtual
].NonVolatileVariableBase
139 (VOID
**) &mVariableModuleGlobal
->VariableGlobal
[Virtual
].VolatileVariableBase
141 EfiConvertPointer (0x0, (VOID
**) &mVariableModuleGlobal
);
145 VariableServiceInitialize (
146 IN EFI_HANDLE ImageHandle
,
147 IN EFI_SYSTEM_TABLE
*SystemTable
161 Status
= VariableCommonInitialize (ImageHandle
, SystemTable
);
162 ASSERT_EFI_ERROR (Status
);
165 // Register All the Functions with Extended Sal.
168 &gEfiExtendedSalVariableServicesProtocolGuid
,
169 mVariableModuleGlobal
,
170 EsalVariableCommonEntry
,
172 EsalVariableCommonEntry
,
173 EsalGetNextVariableName
,
174 EsalVariableCommonEntry
,
176 #if (EFI_SPECIFICATION_VERSION >= 0x00020000)
177 EsalVariableCommonEntry
,
178 EsalQueryVariableInfo
,