]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/SetupBrowserDxe/Setup.c
MdeModulePkg/SetupBrowser: Record the reset status in all SendForm
[mirror_edk2.git] / MdeModulePkg / Universal / SetupBrowserDxe / Setup.c
index 83dc2b86c7fad165db4e5a943a4550bb8062faee..89e06deae86c4bae00b4cb78fe65ca45b34cff15 100644 (file)
@@ -53,7 +53,8 @@ LIST_ENTRY      gBrowserStorageList = INITIALIZE_LIST_HEAD_VARIABLE (gBrowserSto
 LIST_ENTRY      gBrowserSaveFailFormSetList = INITIALIZE_LIST_HEAD_VARIABLE (gBrowserSaveFailFormSetList);\r
 \r
 BOOLEAN               mSystemSubmit = FALSE;\r
-BOOLEAN               gResetRequired;\r
+BOOLEAN               gResetRequiredFormLevel;\r
+BOOLEAN               gResetRequiredSystemLevel = FALSE;\r
 BOOLEAN               gExitRequired;\r
 BOOLEAN               gFlagReconnect;\r
 BOOLEAN               gCallbackReconnect;\r
@@ -499,7 +500,7 @@ SendForm (
   SaveBrowserContext ();\r
 \r
   gFlagReconnect = FALSE;\r
-  gResetRequired = FALSE;\r
+  gResetRequiredFormLevel = FALSE;\r
   gExitRequired  = FALSE;\r
   gCallbackReconnect = FALSE;\r
   Status         = EFI_SUCCESS;\r
@@ -579,7 +580,7 @@ SendForm (
 \r
   if (ActionRequest != NULL) {\r
     *ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE;\r
-    if (gResetRequired) {\r
+    if (gResetRequiredFormLevel) {\r
       *ActionRequest = EFI_BROWSER_ACTION_REQUEST_RESET;\r
     }\r
   }\r
@@ -2678,7 +2679,8 @@ UpdateFlagForForm (
     //\r
     if (SetFlag && OldValue && !Question->ValueChanged) {\r
       if ((Question->QuestionFlags & EFI_IFR_FLAG_RESET_REQUIRED) != 0) {\r
-        gResetRequired = TRUE;\r
+        gResetRequiredFormLevel = TRUE;\r
+        gResetRequiredSystemLevel = TRUE;\r
       }\r
 \r
       if ((Question->QuestionFlags & EFI_IFR_FLAG_RECONNECT_REQUIRED) != 0) {\r
@@ -5917,7 +5919,7 @@ SaveBrowserContext (
   // Save FormBrowser context\r
   //\r
   Context->Selection            = gCurrentSelection;\r
-  Context->ResetRequired        = gResetRequired;\r
+  Context->ResetRequired        = gResetRequiredFormLevel;\r
   Context->FlagReconnect        = gFlagReconnect;\r
   Context->CallbackReconnect    = gCallbackReconnect;\r
   Context->ExitRequired         = gExitRequired;\r
@@ -5990,7 +5992,7 @@ RestoreBrowserContext (
   // Restore FormBrowser context\r
   //\r
   gCurrentSelection     = Context->Selection;\r
-  gResetRequired        = Context->ResetRequired;\r
+  gResetRequiredFormLevel = Context->ResetRequired;\r
   gFlagReconnect        = Context->FlagReconnect;\r
   gCallbackReconnect    = Context->CallbackReconnect;\r
   gExitRequired         = Context->ExitRequired;\r
@@ -6465,7 +6467,8 @@ ExecuteAction (
   // Executet the reset action.\r
   //\r
   if ((Action & BROWSER_ACTION_RESET) != 0) {\r
-    gResetRequired = TRUE;\r
+    gResetRequiredFormLevel = TRUE;\r
+    gResetRequiredSystemLevel = TRUE;\r
   }\r
 \r
   //\r
@@ -6565,6 +6568,6 @@ IsResetRequired (
   VOID\r
   )\r
 {\r
-  return gResetRequired;\r
+  return gResetRequiredSystemLevel;\r
 }\r
 \r