]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Universal/BdsDxe/BootMaint/BootMaint.c
Update for IntelFrameworkModulePkg.
[mirror_edk2.git] / IntelFrameworkModulePkg / Universal / BdsDxe / BootMaint / BootMaint.c
index 35c965f316c94e9ef4ccfe1f67752f3f56a14bec..d3215a3c866a5a892127bcb292b3614db27e3e4b 100644 (file)
@@ -38,10 +38,7 @@ HII_VENDOR_DEVICE_PATH  mBmmHiiVendorDevicePath = {
         (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
       }\r
     },\r
-    //\r
-    // {165A028F-0BB2-4b5f-8747-77592E3F6499}\r
-    //\r
-    { 0x165a028f, 0xbb2, 0x4b5f, { 0x87, 0x47, 0x77, 0x59, 0x2e, 0x3f, 0x64, 0x99 } }\r
+    BOOT_MAINT_FORMSET_GUID\r
   },\r
   {\r
     END_DEVICE_PATH_TYPE,\r
@@ -63,10 +60,7 @@ HII_VENDOR_DEVICE_PATH  mFeHiiVendorDevicePath = {
         (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
       }\r
     },\r
-    //\r
-    // {91DB4238-B0C8-472e-BBCF-F3A6541010F4}\r
-    //\r
-    { 0x91db4238, 0xb0c8, 0x472e, { 0xbb, 0xcf, 0xf3, 0xa6, 0x54, 0x10, 0x10, 0xf4 } }\r
+    FILE_EXPLORE_FORMSET_GUID\r
   },\r
   {\r
     END_DEVICE_PATH_TYPE,\r
@@ -78,10 +72,6 @@ HII_VENDOR_DEVICE_PATH  mFeHiiVendorDevicePath = {
   }\r
 };\r
 \r
-EFI_GUID EfiLegacyDevOrderGuid  = EFI_LEGACY_DEV_ORDER_VARIABLE_GUID;\r
-EFI_GUID mBootMaintGuid         = BOOT_MAINT_FORMSET_GUID;\r
-EFI_GUID mFileExplorerGuid      = FILE_EXPLORE_FORMSET_GUID;\r
-\r
 CHAR16  mBootMaintStorageName[]     = L"BmmData";\r
 CHAR16  mFileExplorerStorageName[]  = L"FeData";\r
 \r
@@ -194,7 +184,7 @@ BootMaintExtractConfig (
   }\r
 \r
   *Progress = Request;\r
-  if ((Request != NULL) && !HiiIsConfigHdrMatch (Request, &mBootMaintGuid, mBootMaintStorageName)) {\r
+  if ((Request != NULL) && !HiiIsConfigHdrMatch (Request, &gBootMaintFormSetGuid, mBootMaintStorageName)) {\r
     return EFI_NOT_FOUND;\r
   }\r
 \r
@@ -215,7 +205,7 @@ BootMaintExtractConfig (
     // Allocate and fill a buffer large enough to hold the <ConfigHdr> template\r
     // followed by "&OFFSET=0&WIDTH=WWWWWWWWWWWWWWWW" followed by a Null-terminator\r
     //\r
-    ConfigRequestHdr = HiiConstructConfigHdr (&mBootMaintGuid, mBootMaintStorageName, Private->BmmDriverHandle);\r
+    ConfigRequestHdr = HiiConstructConfigHdr (&gBootMaintFormSetGuid, mBootMaintStorageName, Private->BmmDriverHandle);\r
     Size = (StrLen (ConfigRequestHdr) + 32 + 1) * sizeof (CHAR16);\r
     ConfigRequest = AllocateZeroPool (Size);\r
     ASSERT (ConfigRequest != NULL);\r
@@ -296,31 +286,36 @@ BootMaintCallback (
   UINT8             *NewLegacyDev;\r
   UINT8             *DisMap;\r
   EFI_FORM_ID       FormId;\r
-  Status = EFI_SUCCESS;\r
 \r
+  if (Action != EFI_BROWSER_ACTION_CHANGING && Action != EFI_BROWSER_ACTION_CHANGED) {    \r
+    //\r
+    // All other action return unsupported.\r
+    //\r
+    return EFI_UNSUPPORTED;\r
+  }\r
+  \r
+  Status       = EFI_SUCCESS;\r
+  OldValue     = 0;\r
+  NewValue     = 0;\r
+  Number       = 0;\r
+  OldLegacyDev = NULL;\r
+  NewLegacyDev = NULL;\r
+  NewValuePos  = 0;\r
+  DisMap       = NULL;\r
+\r
+  Private      = BMM_CALLBACK_DATA_FROM_THIS (This);\r
+  //\r
+  // Retrive uncommitted data from Form Browser\r
+  //\r
+  CurrentFakeNVMap = &Private->BmmFakeNvData;\r
+  HiiGetBrowserData (&gBootMaintFormSetGuid, mBootMaintStorageName, sizeof (BMM_FAKE_NV_DATA), (UINT8 *) CurrentFakeNVMap);\r
   if (Action == EFI_BROWSER_ACTION_CHANGING) {\r
-    if ((Value == NULL) || (ActionRequest == NULL)) {\r
+    if (Value == NULL) {\r
       return EFI_INVALID_PARAMETER;\r
     }\r
-\r
-    OldValue       = 0;\r
-    NewValue       = 0;\r
-    Number         = 0;\r
-    OldLegacyDev   = NULL;\r
-    NewLegacyDev   = NULL;\r
-    NewValuePos    = 0;\r
-    DisMap         = NULL;\r
-    *ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE;\r
-\r
-    Private        = BMM_CALLBACK_DATA_FROM_THIS (This);\r
+    \r
     UpdatePageId (Private, QuestionId);\r
 \r
-    //\r
-    // Retrive uncommitted data from Form Browser\r
-    //\r
-    CurrentFakeNVMap = &Private->BmmFakeNvData;\r
-    HiiGetBrowserData (&mBootMaintGuid, mBootMaintStorageName, sizeof (BMM_FAKE_NV_DATA), (UINT8 *) CurrentFakeNVMap);\r
-\r
     //\r
     // need to be subtituded.\r
     //\r
@@ -498,29 +493,14 @@ BootMaintCallback (
         switch (QuestionId) {\r
         case KEY_VALUE_BOOT_FROM_FILE:\r
           Private->FeCurrentState = FileExplorerStateBootFromFile;\r
-\r
-          //\r
-          // Exit Bmm main formset to send File Explorer formset.\r
-          //\r
-          *ActionRequest = EFI_BROWSER_ACTION_REQUEST_EXIT;\r
           break;\r
 \r
         case FORM_BOOT_ADD_ID:\r
           Private->FeCurrentState = FileExplorerStateAddBootOption;\r
-\r
-          //\r
-          // Exit Bmm main formset to send File Explorer formset.\r
-          //\r
-          *ActionRequest = EFI_BROWSER_ACTION_REQUEST_EXIT;\r
           break;\r
 \r
         case FORM_DRV_ADD_FILE_ID:\r
           Private->FeCurrentState = FileExplorerStateAddDriverOptionState;\r
-\r
-          //\r
-          // Exit Bmm main formset to send File Explorer formset.\r
-          //\r
-          *ActionRequest = EFI_BROWSER_ACTION_REQUEST_EXIT;\r
           break;\r
 \r
         case FORM_DRV_ADD_HANDLE_ID:\r
@@ -553,10 +533,6 @@ BootMaintCallback (
           UpdateTimeOutPage (Private);\r
           break;\r
 \r
-        case FORM_RESET:\r
-          gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);\r
-          return EFI_UNSUPPORTED;\r
-\r
         case FORM_CON_IN_ID:\r
         case FORM_CON_OUT_ID:\r
         case FORM_CON_ERR_ID:\r
@@ -582,25 +558,6 @@ BootMaintCallback (
           UpdateSetLegacyDeviceOrderPage (QuestionId, Private);\r
           break;\r
 \r
-        case KEY_VALUE_SAVE_AND_EXIT:\r
-        case KEY_VALUE_NO_SAVE_AND_EXIT:\r
-\r
-          if (QuestionId == KEY_VALUE_SAVE_AND_EXIT) {\r
-            Status = ApplyChangeHandler (Private, CurrentFakeNVMap, Private->BmmPreviousPageId);\r
-            if (EFI_ERROR (Status)) {\r
-              return Status;\r
-            }\r
-          } else if (QuestionId == KEY_VALUE_NO_SAVE_AND_EXIT) {\r
-            DiscardChangeHandler (Private, CurrentFakeNVMap);\r
-          }\r
-\r
-          //\r
-          // Tell browser not to ask for confirmation of changes,\r
-          // since we have already applied or discarded.\r
-          //\r
-          *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_APPLY;\r
-          break;\r
-\r
         default:\r
           break;\r
         }\r
@@ -626,18 +583,44 @@ BootMaintCallback (
         UpdateDriverAddHandleDescPage (Private);\r
       }\r
     }\r
+  } else if (Action == EFI_BROWSER_ACTION_CHANGED) {\r
+    if ((Value == NULL) || (ActionRequest == NULL)) {\r
+      return EFI_INVALID_PARAMETER;\r
+    }\r
+    \r
+    switch (QuestionId) {\r
+    case KEY_VALUE_SAVE_AND_EXIT:\r
+    case KEY_VALUE_NO_SAVE_AND_EXIT:\r
+      if (QuestionId == KEY_VALUE_SAVE_AND_EXIT) {\r
+        Status = ApplyChangeHandler (Private, CurrentFakeNVMap, Private->BmmPreviousPageId);\r
+        if (EFI_ERROR (Status)) {\r
+          return Status;\r
+        }\r
+      } else if (QuestionId == KEY_VALUE_NO_SAVE_AND_EXIT) {\r
+        DiscardChangeHandler (Private, CurrentFakeNVMap);\r
+      }\r
 \r
-    //\r
-    // Pass changed uncommitted data back to Form Browser\r
-    //\r
-    Status = HiiSetBrowserData (&mBootMaintGuid, mBootMaintStorageName, sizeof (BMM_FAKE_NV_DATA), (UINT8 *) CurrentFakeNVMap, NULL);\r
-    return Status;\r
+      //\r
+      // Tell browser not to ask for confirmation of changes,\r
+      // since we have already applied or discarded.\r
+      //\r
+      *ActionRequest = EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT;\r
+      break;  \r
+\r
+    case FORM_RESET:\r
+      gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);\r
+      return EFI_UNSUPPORTED;\r
+\r
+    default:\r
+      break;\r
+    }\r
   }\r
 \r
   //\r
-  // All other action return unsupported.\r
+  // Pass changed uncommitted data back to Form Browser\r
   //\r
-  return EFI_UNSUPPORTED;\r
+  HiiSetBrowserData (&gBootMaintFormSetGuid, mBootMaintStorageName, sizeof (BMM_FAKE_NV_DATA), (UINT8 *) CurrentFakeNVMap, NULL);\r
+  return EFI_SUCCESS;\r
 }\r
 \r
 /**\r
@@ -985,7 +968,7 @@ InitializeBM (
   // Post our Boot Maint VFR binary to the HII database.\r
   //\r
   BmmCallbackInfo->BmmHiiHandle = HiiAddPackages (\r
-                                    &mBootMaintGuid,\r
+                                    &gBootMaintFormSetGuid,\r
                                     BmmCallbackInfo->BmmDriverHandle,\r
                                     BmBin,\r
                                     BdsDxeStrings,\r
@@ -997,7 +980,7 @@ InitializeBM (
   // Post our File Explorer VFR binary to the HII database.\r
   //\r
   BmmCallbackInfo->FeHiiHandle = HiiAddPackages (\r
-                                   &mFileExplorerGuid,\r
+                                   &gFileExploreFormSetGuid,\r
                                    BmmCallbackInfo->FeDriverHandle,\r
                                    FEBin,\r
                                    BdsDxeStrings,\r
@@ -1109,7 +1092,7 @@ InitializeBM (
     \r
     HiiUpdateForm (\r
       BmmCallbackInfo->BmmHiiHandle,\r
-      &mBootMaintGuid,\r
+      &gBootMaintFormSetGuid,\r
       FORM_BOOT_SETUP_ID,\r
       mStartOpCodeHandle, // Label FORM_BOOT_LEGACY_DEVICE_ID\r
       mEndOpCodeHandle    // LABEL_END\r
@@ -1399,7 +1382,7 @@ FormSetDispatcher (
                              gFormBrowser2,\r
                              &CallbackData->BmmHiiHandle,\r
                              1,\r
-                             &mBootMaintGuid,\r
+                             &gBootMaintFormSetGuid,\r
                              0,\r
                              NULL,\r
                              &ActionRequest\r
@@ -1421,7 +1404,7 @@ FormSetDispatcher (
                                gFormBrowser2,\r
                                &CallbackData->FeHiiHandle,\r
                                1,\r
-                               &mFileExplorerGuid,\r
+                               &gFileExploreFormSetGuid,\r
                                0,\r
                                NULL,\r
                                &ActionRequest\r