]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg:Support orderedList with default value
authorDandan Bi <dandan.bi@intel.com>
Wed, 2 Sep 2015 08:44:24 +0000 (08:44 +0000)
committerdandanbi <dandanbi@Edk2>
Wed, 2 Sep 2015 08:44:24 +0000 (08:44 +0000)
Our tool can support OrderedList which has default value,but doesn't update the
source code in HiiDatabase when parse the ifr data.Now update the code and add
test case in DriverSample.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Dandan Bi <dandan.bi@intel.com>
Reviewed-by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18388 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/DriverSampleDxe/Vfr.vfr
MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c

index 8da0d4b30bda51dc24e055d4551394a8e6f67a6d..bd28797a555f31babc0df137f909d43e7f75ecb3 100644 (file)
@@ -234,6 +234,7 @@ formset
         option text = STRING_TOKEN(STR_ONE_OF_TEXT1), value = 3, flags = 0;\r
         option text = STRING_TOKEN(STR_ONE_OF_TEXT2), value = 2, flags = 0;\r
         option text = STRING_TOKEN(STR_ONE_OF_TEXT3), value = 1, flags = 0;\r
+        default     = {1,2,3},\r
       endlist;\r
     endif;\r
 \r
index 1081e759211657c7ba408b6995ca0a2938540eda..b618903b6a5bd2c2615d40f2a85ad43eaa492f5a 100644 (file)
@@ -1599,6 +1599,7 @@ ParseIfrData (
   UINT16                   VarWidth;\r
   UINT16                   VarDefaultId;\r
   BOOLEAN                  FirstOneOfOption;\r
+  BOOLEAN                  FirstOrderedList;\r
   LIST_ENTRY               *LinkData;\r
   LIST_ENTRY               *LinkDefault;\r
   EFI_IFR_VARSTORE_NAME_VALUE *IfrNameValueVarStore;\r
@@ -1610,6 +1611,7 @@ ParseIfrData (
   DefaultDataPtr   = NULL;\r
   FirstOneOfOption = FALSE;\r
   VarStoreId       = 0;\r
+  FirstOrderedList = FALSE;\r
   ZeroMem (&DefaultData, sizeof (IFR_DEFAULT_DATA));\r
 \r
   //\r
@@ -1856,9 +1858,9 @@ ParseIfrData (
       //\r
       // offset by question header\r
       // width by EFI_IFR_ORDERED_LIST MaxContainers * OneofOption Type\r
-      // no default value and default id, how to define its default value?\r
       //\r
 \r
+      FirstOrderedList = TRUE;\r
       //\r
       // OrderedList question is not in IFR Form. This IFR form is not valid. \r
       //\r
@@ -2102,6 +2104,10 @@ ParseIfrData (
 \r
       IfrOneOfOption = (EFI_IFR_ONE_OF_OPTION *) IfrOpHdr;\r
       if (BlockData->OpCode == EFI_IFR_ORDERED_LIST_OP) {\r
+\r
+        if (!FirstOrderedList){\r
+          break;\r
+        }\r
         //\r
         // Get ordered list option data type.\r
         //\r
@@ -2158,10 +2164,9 @@ ParseIfrData (
         // Add Block Data into VarStorageData BlockEntry\r
         //\r
         InsertBlockData (&VarStorageData->BlockEntry, &BlockData);\r
-        //\r
-        // No default data for OrderedList.\r
-        //\r
-        BlockData = NULL;\r
+\r
+        FirstOrderedList = FALSE;\r
+\r
         break;\r
       }\r
 \r
@@ -2222,12 +2227,6 @@ ParseIfrData (
         break;\r
       }\r
 \r
-      if (BlockData->OpCode == EFI_IFR_ORDERED_LIST_OP) {\r
-        //\r
-        // OrderedList Opcode is no default value.\r
-        //\r
-        break;\r
-      }\r
       //\r
       // Get the DefaultId\r
       //\r