]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkNt32Pkg/Dxe/PlatformBds/Generic/BootMaint/BootMaint.c
1. Perfect libraries MSA files
[mirror_edk2.git] / EdkNt32Pkg / Dxe / PlatformBds / Generic / BootMaint / BootMaint.c
index c4b3211dfd63c588fb307014aea0809b00f264d9..77b530dc57f5a38448fcc3699bcd3b0234112300 100644 (file)
@@ -1,18 +1,18 @@
-/*++ \r
+/*++\r
+\r
+Copyright (c) 2006 - 2007, Intel Corporation\r
+All rights reserved. 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
+http://opensource.org/licenses/bsd-license.php\r
 \r
-Copyright (c) 2006, Intel Corporation                                                         \r
-All rights reserved. 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
-http://opensource.org/licenses/bsd-license.php                                            \r
-                                                                                          \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
 Module Name:\r
 \r
   BootMaint.c\r
-    \r
+\r
 Abstract:\r
 \r
   Boot Maintainence Main File\r
@@ -58,15 +58,15 @@ Routine Description:
 Arguments:\r
 \r
   HiiHandle       - Hii Handle of the package to be updated.\r
-  \r
+\r
   MenuOption      - The Menu whose string tokens need to be created\r
 \r
 Returns:\r
 \r
   EFI_SUCCESS     - string tokens created successfully\r
-  \r
+\r
   others          - contain some errors\r
-  \r
+\r
 --*/\r
 {\r
   BM_MENU_ENTRY *NewMenuEntry;\r
@@ -113,7 +113,7 @@ Routine Description:
 \r
 Arguments:\r
 \r
-  This            - File explorer callback protocol pointer.     \r
+  This            - File explorer callback protocol pointer.\r
   KeyValue        - Key value to identify the type of data to expect.\r
   Data            - A pointer to the data being sent to the original exporting driver.\r
   Packet          - A pointer to a packet of information which a driver passes back to the browser.\r
@@ -122,7 +122,7 @@ Returns:
 \r
   EFI_SUCCESS     - Callback ended successfully.\r
   Others          - Contain some errors.\r
-  \r
+\r
 --*/\r
 {\r
   BMM_CALLBACK_DATA *Private;\r
@@ -449,6 +449,7 @@ Returns:
       Index2                  = (UINT16) (KeyValue - HANDLE_OPTION_OFFSET);\r
 \r
       NewMenuEntry            = BOpt_GetMenuEntry (&DriverMenu, Index2);\r
+      ASSERT (NewMenuEntry != NULL);\r
       Private->HandleContext  = (BM_HANDLE_CONTEXT *) NewMenuEntry->VariableContext;\r
 \r
       CleanUpPage (FORM_DRV_ADD_HANDLE_DESC_ID, Private);\r
@@ -556,6 +557,8 @@ Returns:
   case FORM_CON_COM_ID:\r
     NewMenuEntry                      = BOpt_GetMenuEntry (&TerminalMenu, Private->CurrentTerminal);\r
 \r
+    ASSERT (NewMenuEntry != NULL);\r
+\r
     NewTerminalContext                = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;\r
 \r
     NewTerminalContext->BaudRateIndex = CurrentFakeNVMap->COMBaudRate;\r
@@ -726,15 +729,15 @@ Routine Description:
 Arguments:\r
 \r
   ImageHandle     - caller provided handle\r
-  \r
+\r
   SystemTable     - caller provided system tables\r
 \r
 Returns:\r
 \r
   EFI_SUCCESS     - utility ended successfully\r
-  \r
+\r
   others          - contain some errors\r
-  \r
+\r
 --*/\r
 {\r
   EFI_LEGACY_BIOS_PROTOCOL  *LegacyBios;\r
@@ -846,13 +849,13 @@ Returns:
   //\r
   PackageList = PreparePackages (1, &gBdsStringPackGuid, bmBin);\r
   Status      = Hii->NewPack (Hii, PackageList, &HiiHandle);\r
-  gBS->FreePool (PackageList);\r
+  FreePool (PackageList);\r
 \r
   BmmCallbackInfo->BmmHiiHandle = HiiHandle;\r
 \r
   PackageList                   = PreparePackages (1, &gBdsStringPackGuid, FEBin);\r
   Status                        = Hii->NewPack (Hii, PackageList, &HiiHandle);\r
-  gBS->FreePool (PackageList);\r
+  FreePool (PackageList);\r
 \r
   BmmCallbackInfo->FeHiiHandle = HiiHandle;\r
 \r
@@ -1033,7 +1036,7 @@ Arguments:
   None.\r
 \r
 Returns:\r
-  None.  \r
+  None.\r
 --*/\r
 {\r
   STRING_DEPOSITORY *StringDepository;\r
@@ -1230,6 +1233,7 @@ Returns:
   UINTN                     Index;\r
   BM_MENU_ENTRY             *NewMenuEntry;\r
   BM_FILE_CONTEXT           *NewFileContext;\r
+  BOOLEAN                       BootMaintMenuResetRequired;\r
 \r
   Location        = NULL;\r
   Index           = 0;\r
@@ -1247,6 +1251,7 @@ Returns:
   while (1) {\r
     UpdatePageId (CallbackData, FORM_MAIN_ID);\r
 \r
+    BootMaintMenuResetRequired = FALSE;\r
     Status = FormConfig->SendForm (\r
                           FormConfig,\r
                           TRUE,\r
@@ -1256,9 +1261,13 @@ Returns:
                           NULL,\r
                           (UINT8 *) CallbackData->BmmFakeNvData,\r
                           NULL,\r
-                          NULL\r
+                          &BootMaintMenuResetRequired\r
                           );\r
 \r
+    if (BootMaintMenuResetRequired) {\r
+      EnableResetRequired ();\r
+    }\r
+\r
     ReclaimStringDepository ();\r
 \r
     //\r
@@ -1267,6 +1276,7 @@ Returns:
     if (INACTIVE_STATE != CallbackData->FeCurrentState) {\r
       UpdateFileExplorer (CallbackData, 0);\r
 \r
+      BootMaintMenuResetRequired = FALSE;\r
       Status = FormConfig->SendForm (\r
                             FormConfig,\r
                             TRUE,\r
@@ -1276,9 +1286,13 @@ Returns:
                             NULL,\r
                             NULL,\r
                             NULL,\r
-                            NULL\r
+                            &BootMaintMenuResetRequired\r
                             );\r
 \r
+      if (BootMaintMenuResetRequired) {\r
+        EnableResetRequired ();\r
+      }\r
+\r
       CallbackData->FeCurrentState    = INACTIVE_STATE;\r
       CallbackData->FeDisplayContext  = UNKNOWN_CONTEXT;\r
       ReclaimStringDepository ();\r