]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Universal/SetupBrowserDxe/Ui.c
Tracker merger. "There is no "NV" display when change the certain option in NT32"
[mirror_edk2.git] / IntelFrameworkModulePkg / Universal / SetupBrowserDxe / Ui.c
index 8a514a000adf5f609d3f62c9b6127f06deb57349..c222a72e03d7964fd5b55fb42962ecda423c666b 100644 (file)
@@ -12,10 +12,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 **/\r
 \r
-//\r
-// Include common header file for this module.\r
-//\r
-#include "CommonHeader.h"\r
 \r
 #include "Setup.h"\r
 #include "Ui.h"\r
@@ -1445,6 +1441,7 @@ Returns:
   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
@@ -2981,34 +2978,40 @@ Returns:
         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
@@ -3017,7 +3020,7 @@ Returns:
       //\r
       // After the repaint operation, we should refresh the highlight.\r
       //\r
-      NewLine = TRUE;\r
+      NewLine    = TRUE;\r
       break;\r
 \r
     case CfUiNoOperation:\r