MENU_REFRESH_ENTRY *OldMenuRefreshEntry;\r
UI_SCREEN_OPERATION ScreenOperation;\r
EFI_VARIABLE_DEFINITION *VariableDefinition;\r
+ EFI_VARIABLE_DEFINITION *UiDefaultVarDef; // Only used in CfUiDefault State\r
EFI_FORM_CALLBACK_PROTOCOL *FormCallback;\r
EFI_HII_VARIABLE_PACK_LIST *NvMapListHead;\r
EFI_HII_VARIABLE_PACK_LIST *NvMapListNode;\r
NvMapListNode = NvMapListHead;\r
\r
while (NULL != NvMapListNode) {\r
- if (FileFormTags->VariableDefinitions->VariableId == NvMapListNode->VariablePack->VariableId) {\r
- NvMap = (VOID *) ((CHAR8 *) NvMapListNode->VariablePack + sizeof (EFI_HII_VARIABLE_PACK) + NvMapListNode->VariablePack->VariableNameLength);\r
- NvMapSize = NvMapListNode->VariablePack->Header.Length - sizeof (EFI_HII_VARIABLE_PACK) - NvMapListNode->VariablePack->VariableNameLength;\r
- break;\r
+ \r
+ for (UiDefaultVarDef = FileFormTags->VariableDefinitions;\r
+ UiDefaultVarDef != NULL; \r
+ UiDefaultVarDef = UiDefaultVarDef->Next ) {\r
+ \r
+ if (UiDefaultVarDef->VariableId == NvMapListNode->VariablePack->VariableId) {\r
+ NvMap = (VOID *) ((CHAR8 *) NvMapListNode->VariablePack + sizeof (EFI_HII_VARIABLE_PACK) + NvMapListNode->VariablePack->VariableNameLength);\r
+ NvMapSize = NvMapListNode->VariablePack->Header.Length - sizeof (EFI_HII_VARIABLE_PACK) - NvMapListNode->VariablePack->VariableNameLength;\r
+ //\r
+ // Free the buffer that was allocated.\r
+ //\r
+ FreePool (UiDefaultVarDef->NvRamMap);\r
+ FreePool (UiDefaultVarDef->FakeNvRamMap);\r
+ \r
+ //\r
+ // Allocate, copy the NvRamMap.\r
+ //\r
+ UiDefaultVarDef->VariableFakeSize = (UINT16) (UiDefaultVarDef->VariableFakeSize - UiDefaultVarDef->VariableSize);\r
+ UiDefaultVarDef->VariableSize = (UINT16) NvMapSize;\r
+ UiDefaultVarDef->VariableFakeSize = (UINT16) (UiDefaultVarDef->VariableFakeSize + UiDefaultVarDef->VariableSize);\r
+ \r
+ UiDefaultVarDef->NvRamMap = AllocateZeroPool (FileFormTags->VariableDefinitions->VariableSize);\r
+ ASSERT (UiDefaultVarDef->NvRamMap != NULL);\r
+ \r
+ UiDefaultVarDef->FakeNvRamMap = AllocateZeroPool (NvMapSize + UiDefaultVarDef->VariableFakeSize);\r
+ ASSERT (UiDefaultVarDef->FakeNvRamMap != NULL);\r
+ \r
+ CopyMem (UiDefaultVarDef->NvRamMap, NvMap, NvMapSize);\r
+ break;\r
}\r
+ }\r
NvMapListNode = NvMapListNode->NextVariablePack;\r
}\r
\r
- //\r
- // Free the buffer that was allocated.\r
- //\r
- FreePool (FileFormTags->VariableDefinitions->NvRamMap);\r
- FreePool (FileFormTags->VariableDefinitions->FakeNvRamMap);\r
-\r
- //\r
- // Allocate, copy the NvRamMap.\r
- //\r
- FileFormTags->VariableDefinitions->VariableFakeSize = (UINT16) (FileFormTags->VariableDefinitions->VariableFakeSize - FileFormTags->VariableDefinitions->VariableSize);\r
- FileFormTags->VariableDefinitions->VariableSize = (UINT16) NvMapSize;\r
- FileFormTags->VariableDefinitions->VariableFakeSize = (UINT16) (FileFormTags->VariableDefinitions->VariableFakeSize + FileFormTags->VariableDefinitions->VariableSize);\r
-\r
- FileFormTags->VariableDefinitions->NvRamMap = AllocateZeroPool (FileFormTags->VariableDefinitions->VariableSize);\r
- ASSERT (FileFormTags->VariableDefinitions->NvRamMap != NULL);\r
-\r
- FileFormTags->VariableDefinitions->FakeNvRamMap = AllocateZeroPool (NvMapSize + FileFormTags->VariableDefinitions->VariableFakeSize);\r
- ASSERT (FileFormTags->VariableDefinitions->FakeNvRamMap != NULL);\r
-\r
- CopyMem (FileFormTags->VariableDefinitions->NvRamMap, NvMap, NvMapSize);\r
FreePool (NvMapListHead);\r
}\r
\r