-/** @file\r
-\r
- Variable worker functions specific for IA32, X64 and EBC.\r
-\r
-Copyright (c) 2007 - 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-#include "Variable.h"\r
-\r
-/**\r
- Get one variable by the index count.\r
-\r
- @param IndexTable The pointer to variable index table.\r
- @param Count The index count of variable in index table.\r
-\r
- @return The pointer to variable header indexed by count.\r
-\r
-**/\r
-VARIABLE_HEADER *\r
-GetVariableByIndex (\r
- IN VARIABLE_INDEX_TABLE *IndexTable,\r
- IN UINT32 Count\r
- )\r
-{\r
- return (VARIABLE_HEADER *) (UINTN) (IndexTable->Index[Count] + ((UINTN) IndexTable->StartPtr & 0xFFFF0000));\r
-}\r
-\r
-/**\r
- Record Variable in VariableIndex HOB.\r
-\r
- Record Variable in VariableIndex HOB and update the length of variable index table.\r
-\r
- @param IndexTable The pointer to variable index table.\r
- @param Variable The pointer to the variable that will be recorded.\r
-\r
-**/\r
-VOID\r
-VariableIndexTableUpdate (\r
- IN OUT VARIABLE_INDEX_TABLE *IndexTable,\r
- IN VARIABLE_HEADER *Variable\r
- )\r
-{\r
- if (IndexTable->Length < VARIABLE_INDEX_TABLE_VOLUME) {\r
- IndexTable->Index[IndexTable->Length++] = (UINT16) (UINTN) Variable;\r
- }\r
-\r
- return;\r
-}\r
-\r