]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Library/BootMaintenanceManagerUiLib/UpdatePage.c
MdeModulePkg/BMMUI: Make the BmmFakeNvData and BmmOldFakeNVData consistent
[mirror_edk2.git] / MdeModulePkg / Library / BootMaintenanceManagerUiLib / UpdatePage.c
index 13a29db9f4e4728df07af6bb9b23713edecb103a..29d3ac9a47d3c02bdeba78f11fa38465d6388db0 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 Dynamically update the pages.\r
 \r
-Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR>\r
 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
@@ -262,6 +262,7 @@ UpdateBootDelPage (
       // through HiiSetBrowserData function.\r
       //\r
       CallbackData->BmmFakeNvData.BootOptionDel[Index] = FALSE;\r
+      CallbackData->BmmOldFakeNVData.BootOptionDel[Index] = FALSE;\r
     }\r
     \r
     HiiCreateCheckBoxOpCode (\r
@@ -348,6 +349,7 @@ UpdateDrvDelPage (
       // through HiiSetBrowserData function.\r
       //\r
       CallbackData->BmmFakeNvData.DriverOptionDel[Index] = FALSE;\r
+      CallbackData->BmmOldFakeNVData.DriverOptionDel[Index] = FALSE;\r
     }\r
     HiiCreateCheckBoxOpCode (\r
       mStartOpCodeHandle,\r
@@ -459,8 +461,6 @@ UpdateConsolePage (
   UINT16              Index2;\r
   UINT8               CheckFlags;\r
   UINT8               *ConsoleCheck;\r
-  UINT8               *OldConsoleCheck;\r
-  UINTN               ConsoleCheckSize;\r
   EFI_QUESTION_ID     QuestionIdBase;\r
   UINT16              VariableOffsetBase;\r
 \r
@@ -469,32 +469,24 @@ UpdateConsolePage (
   UpdatePageStart (CallbackData);\r
 \r
   ConsoleCheck       = NULL;\r
-  OldConsoleCheck    = NULL;\r
   QuestionIdBase     = 0;\r
   VariableOffsetBase = 0;\r
-  ConsoleCheckSize   = 0;\r
 \r
   switch (UpdatePageId) {\r
   case FORM_CON_IN_ID:\r
     ConsoleCheck       = &CallbackData->BmmFakeNvData.ConsoleInCheck[0];\r
-    OldConsoleCheck    = &CallbackData->BmmOldFakeNVData.ConsoleInCheck[0];\r
-    ConsoleCheckSize   = sizeof (CallbackData->BmmFakeNvData.ConsoleInCheck);\r
     QuestionIdBase     = CON_IN_DEVICE_QUESTION_ID;\r
     VariableOffsetBase = CON_IN_DEVICE_VAR_OFFSET;\r
     break;\r
 \r
   case FORM_CON_OUT_ID:\r
     ConsoleCheck       = &CallbackData->BmmFakeNvData.ConsoleOutCheck[0];\r
-    OldConsoleCheck    = &CallbackData->BmmOldFakeNVData.ConsoleOutCheck[0];\r
-    ConsoleCheckSize   = sizeof (CallbackData->BmmFakeNvData.ConsoleOutCheck);\r
     QuestionIdBase     = CON_OUT_DEVICE_QUESTION_ID;\r
     VariableOffsetBase = CON_OUT_DEVICE_VAR_OFFSET;\r
     break;\r
 \r
   case FORM_CON_ERR_ID:\r
     ConsoleCheck       = &CallbackData->BmmFakeNvData.ConsoleErrCheck[0];\r
-    OldConsoleCheck    = &CallbackData->BmmOldFakeNVData.ConsoleErrCheck[0];\r
-    ConsoleCheckSize   = sizeof (CallbackData->BmmFakeNvData.ConsoleErrCheck);\r
     QuestionIdBase     = CON_ERR_DEVICE_QUESTION_ID;\r
     VariableOffsetBase = CON_ERR_DEVICE_VAR_OFFSET;\r
     break;\r
@@ -519,7 +511,7 @@ UpdateConsolePage (
       (UINT16) (VariableOffsetBase + Index),\r
       NewMenuEntry->DisplayStringToken,\r
       NewMenuEntry->HelpStringToken,\r
-      0,\r
+      EFI_IFR_FLAG_CALLBACK,\r
       CheckFlags,\r
       NULL\r
       );\r
@@ -548,7 +540,7 @@ UpdateConsolePage (
       (UINT16) (VariableOffsetBase + Index),\r
       NewMenuEntry->DisplayStringToken,\r
       NewMenuEntry->HelpStringToken,\r
-      0,\r
+      EFI_IFR_FLAG_CALLBACK,\r
       CheckFlags,\r
       NULL\r
       );\r
@@ -556,8 +548,6 @@ UpdateConsolePage (
     Index++;\r
   }\r
 \r
-  CopyMem (OldConsoleCheck, ConsoleCheck, ConsoleCheckSize);\r
-\r
   UpdatePageEnd (CallbackData);\r
 }\r
 \r
@@ -831,7 +821,7 @@ UpdateTerminalPage (
     (UINT16) (COM_BAUD_RATE_VAR_OFFSET + CurrentTerminal),\r
     STRING_TOKEN (STR_COM_BAUD_RATE),\r
     STRING_TOKEN (STR_COM_BAUD_RATE),\r
-    0,\r
+    EFI_IFR_FLAG_CALLBACK,\r
     EFI_IFR_NUMERIC_SIZE_1,\r
     OptionsOpCodeHandle,\r
     NULL\r
@@ -864,7 +854,7 @@ UpdateTerminalPage (
     (UINT16) (COM_DATA_RATE_VAR_OFFSET + CurrentTerminal),\r
     STRING_TOKEN (STR_COM_DATA_BITS),\r
     STRING_TOKEN (STR_COM_DATA_BITS),\r
-    0,\r
+    EFI_IFR_FLAG_CALLBACK,\r
     EFI_IFR_NUMERIC_SIZE_1,\r
     OptionsOpCodeHandle,\r
     NULL\r
@@ -896,7 +886,7 @@ UpdateTerminalPage (
     (UINT16) (COM_PARITY_VAR_OFFSET + CurrentTerminal),\r
     STRING_TOKEN (STR_COM_PARITY),\r
     STRING_TOKEN (STR_COM_PARITY),\r
-    0,\r
+    EFI_IFR_FLAG_CALLBACK,\r
     EFI_IFR_NUMERIC_SIZE_1,\r
     OptionsOpCodeHandle,\r
     NULL\r
@@ -928,7 +918,7 @@ UpdateTerminalPage (
     (UINT16) (COM_STOP_BITS_VAR_OFFSET + CurrentTerminal),\r
     STRING_TOKEN (STR_COM_STOP_BITS),\r
     STRING_TOKEN (STR_COM_STOP_BITS),\r
-    0,\r
+    EFI_IFR_FLAG_CALLBACK,\r
     EFI_IFR_NUMERIC_SIZE_1,\r
     OptionsOpCodeHandle,\r
     NULL\r
@@ -960,7 +950,7 @@ UpdateTerminalPage (
     (UINT16) (COM_TERMINAL_VAR_OFFSET + CurrentTerminal),\r
     STRING_TOKEN (STR_COM_TERMI_TYPE),\r
     STRING_TOKEN (STR_COM_TERMI_TYPE),\r
-    0,\r
+    EFI_IFR_FLAG_CALLBACK,\r
     EFI_IFR_NUMERIC_SIZE_1,\r
     OptionsOpCodeHandle,\r
     NULL\r
@@ -991,7 +981,7 @@ UpdateTerminalPage (
     (UINT16) (COM_FLOWCONTROL_VAR_OFFSET + CurrentTerminal),\r
     STRING_TOKEN (STR_COM_FLOW_CONTROL),\r
     STRING_TOKEN (STR_COM_FLOW_CONTROL),\r
-    0,\r
+    EFI_IFR_FLAG_CALLBACK,\r
     EFI_IFR_NUMERIC_SIZE_1,\r
     OptionsOpCodeHandle,\r
     NULL\r
@@ -1020,26 +1010,32 @@ UpdateOptionPage(
   CHAR16                *String;\r
   EFI_STRING_ID         StringToken;\r
 \r
+  String = NULL;\r
+\r
   if (DevicePath != NULL){\r
     String = ExtractFileNameFromDevicePath(DevicePath);\r
-    StringToken = HiiSetString (CallbackData->BmmHiiHandle, 0, String, NULL);\r
-    FreePool(String);\r
-  } else {\r
+  }\r
+  if (String == NULL) {\r
     String = HiiGetString (CallbackData->BmmHiiHandle, STRING_TOKEN (STR_NULL_STRING), NULL);\r
     ASSERT (String != NULL);\r
-    StringToken =  HiiSetString (CallbackData->BmmHiiHandle, 0, String, NULL);\r
-    FreePool (String);\r
   }\r
 \r
+  StringToken = HiiSetString (CallbackData->BmmHiiHandle, 0, String, NULL);\r
+  FreePool (String);\r
+\r
   if(FormId == FORM_BOOT_ADD_ID){\r
     if (!CallbackData->BmmFakeNvData.BootOptionChanged) {\r
       ZeroMem (CallbackData->BmmFakeNvData.BootOptionalData, sizeof (CallbackData->BmmFakeNvData.BootOptionalData));\r
       ZeroMem (CallbackData->BmmFakeNvData.BootDescriptionData, sizeof (CallbackData->BmmFakeNvData.BootDescriptionData));\r
+      ZeroMem (CallbackData->BmmOldFakeNVData.BootOptionalData, sizeof (CallbackData->BmmOldFakeNVData.BootOptionalData));\r
+      ZeroMem (CallbackData->BmmOldFakeNVData.BootDescriptionData, sizeof (CallbackData->BmmOldFakeNVData.BootDescriptionData));\r
     }\r
   } else if (FormId == FORM_DRV_ADD_FILE_ID){\r
     if (!CallbackData->BmmFakeNvData.DriverOptionChanged) {\r
       ZeroMem (CallbackData->BmmFakeNvData.DriverOptionalData, sizeof (CallbackData->BmmFakeNvData.DriverOptionalData));\r
       ZeroMem (CallbackData->BmmFakeNvData.DriverDescriptionData, sizeof (CallbackData->BmmFakeNvData.DriverDescriptionData));\r
+      ZeroMem (CallbackData->BmmOldFakeNVData.DriverOptionalData, sizeof (CallbackData->BmmOldFakeNVData.DriverOptionalData));\r
+      ZeroMem (CallbackData->BmmOldFakeNVData.DriverDescriptionData, sizeof (CallbackData->BmmOldFakeNVData.DriverDescriptionData));\r
     }\r
   }\r
 \r