]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/SetupBrowserDxe/Setup.c
Add new "Modal form" opcode, also add sample code to use it.
[mirror_edk2.git] / MdeModulePkg / Universal / SetupBrowserDxe / Setup.c
index 0eaa78321fae30a32c02f6404fe4ae62b1e882ea..dbf6a79b8cffd62312a0384edfddb948fb0f5bfc 100644 (file)
@@ -2835,6 +2835,7 @@ InitializeCurrentSetting (
   FORMSET_STORAGE         *StorageSrc;\r
   FORMSET_STORAGE         *OldStorage;\r
   FORM_BROWSER_FORM       *Form;\r
+  FORM_BROWSER_FORM       *Form2;\r
   EFI_STATUS              Status;\r
 \r
   //\r
@@ -2896,6 +2897,29 @@ InitializeCurrentSetting (
     Link = GetNextNode (&FormSet->StorageListHead, Link);\r
   }\r
 \r
+  //\r
+  // If has old formset, get the old nv update status.\r
+  //\r
+  if (gOldFormSet != NULL) {\r
+      Link = GetFirstNode (&FormSet->FormListHead);\r
+      while (!IsNull (&FormSet->FormListHead, Link)) {\r
+        Form = FORM_BROWSER_FORM_FROM_LINK (Link);\r
+\r
+        Link2 = GetFirstNode (&gOldFormSet->FormListHead);\r
+        while (!IsNull (&gOldFormSet->FormListHead, Link2)) {\r
+          Form2 = FORM_BROWSER_FORM_FROM_LINK (Link2);\r
+\r
+          if (Form->FormId == Form2->FormId) {\r
+            Form->NvUpdateRequired = Form2->NvUpdateRequired;\r
+            break;\r
+          }\r
+\r
+          Link2 = GetNextNode (&gOldFormSet->FormListHead, Link2);\r
+        }\r
+          Link = GetNextNode (&FormSet->FormListHead, Link);\r
+      }\r
+  }\r
+\r
   return EFI_SUCCESS;\r
 }\r
 \r