]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/SetupBrowserDxe/Setup.c
Enable SetupBrowser to support multiple form class guid.
[mirror_edk2.git] / MdeModulePkg / Universal / SetupBrowserDxe / Setup.c
index 5b99e7c5dd93c4f3de5d6d0b86f6241fb641aa0d..da690eb97e6165029b599ebc62a6de1d81798c39 100644 (file)
@@ -277,7 +277,6 @@ SendForm (
   InitializeBrowserStrings ();\r
 \r
   gFunctionKeySetting = DEFAULT_FUNCTION_KEY_SETTING;\r
-  gClassOfVfr         = FORMSET_CLASS_PLATFORM_SETUP;\r
 \r
   //\r
   // Ensure we are in Text mode\r
@@ -942,6 +941,10 @@ ConfigRespToStorage (
     break;\r
 \r
   case EFI_HII_VARSTORE_NAME_VALUE:\r
+    StrPtr = StrStr (ConfigResp, L"PATH");\r
+    if (StrPtr == NULL) {\r
+      break;\r
+    }\r
     StrPtr = StrStr (ConfigResp, L"&");\r
     while (StrPtr != NULL) {\r
       //\r
@@ -2584,9 +2587,25 @@ InitializeFormSet (
     return Status;\r
   }\r
 \r
+  //\r
+  // Set VFR type by FormSet SubClass field\r
+  //\r
   gClassOfVfr = FORMSET_CLASS_PLATFORM_SETUP;\r
   if (FormSet->SubClass == EFI_FRONT_PAGE_SUBCLASS) {\r
     gClassOfVfr = FORMSET_CLASS_FRONT_PAGE;\r
+  }\r
+  \r
+  //\r
+  // Set VFR type by FormSet class guid\r
+  //\r
+  for (Index = 0; Index < 3; Index ++) {\r
+    if (CompareGuid (&FormSet->ClassGuid[Index], &gEfiHiiPlatformSetupFormsetGuid)) {\r
+      gClassOfVfr |= FORMSET_CLASS_PLATFORM_SETUP;\r
+      break;\r
+    }\r
+  }\r
+\r
+  if ((gClassOfVfr & FORMSET_CLASS_FRONT_PAGE) == FORMSET_CLASS_FRONT_PAGE) {\r
     gFrontPageHandle = FormSet->HiiHandle;\r
   }\r
 \r