Revision: 18388
          http://sourceforge.net/p/edk2/code/18388
Author:   dandanbi
Date:     2015-09-02 08:44:24 +0000 (Wed, 02 Sep 2015)
Log Message:
-----------
MdeModulePkg:Support orderedList with default value

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 <[email protected]>
Reviewed-by: Liming Gao <[email protected]>

Modified Paths:
--------------
    trunk/edk2/MdeModulePkg/Universal/DriverSampleDxe/Vfr.vfr
    trunk/edk2/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c

Modified: trunk/edk2/MdeModulePkg/Universal/DriverSampleDxe/Vfr.vfr
===================================================================
--- trunk/edk2/MdeModulePkg/Universal/DriverSampleDxe/Vfr.vfr   2015-09-02 
08:32:20 UTC (rev 18387)
+++ trunk/edk2/MdeModulePkg/Universal/DriverSampleDxe/Vfr.vfr   2015-09-02 
08:44:24 UTC (rev 18388)
@@ -234,6 +234,7 @@
         option text = STRING_TOKEN(STR_ONE_OF_TEXT1), value = 3, flags = 0;
         option text = STRING_TOKEN(STR_ONE_OF_TEXT2), value = 2, flags = 0;
         option text = STRING_TOKEN(STR_ONE_OF_TEXT3), value = 1, flags = 0;
+        default     = {1,2,3},
       endlist;
     endif;
 

Modified: trunk/edk2/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
===================================================================
--- trunk/edk2/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c    
2015-09-02 08:32:20 UTC (rev 18387)
+++ trunk/edk2/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c    
2015-09-02 08:44:24 UTC (rev 18388)
@@ -1599,6 +1599,7 @@
   UINT16                   VarWidth;
   UINT16                   VarDefaultId;
   BOOLEAN                  FirstOneOfOption;
+  BOOLEAN                  FirstOrderedList;
   LIST_ENTRY               *LinkData;
   LIST_ENTRY               *LinkDefault;
   EFI_IFR_VARSTORE_NAME_VALUE *IfrNameValueVarStore;
@@ -1610,6 +1611,7 @@
   DefaultDataPtr   = NULL;
   FirstOneOfOption = FALSE;
   VarStoreId       = 0;
+  FirstOrderedList = FALSE;
   ZeroMem (&DefaultData, sizeof (IFR_DEFAULT_DATA));
 
   //
@@ -1856,9 +1858,9 @@
       //
       // offset by question header
       // width by EFI_IFR_ORDERED_LIST MaxContainers * OneofOption Type
-      // no default value and default id, how to define its default value?
       //
 
+      FirstOrderedList = TRUE;
       //
       // OrderedList question is not in IFR Form. This IFR form is not valid. 
       //
@@ -2102,6 +2104,10 @@
 
       IfrOneOfOption = (EFI_IFR_ONE_OF_OPTION *) IfrOpHdr;
       if (BlockData->OpCode == EFI_IFR_ORDERED_LIST_OP) {
+
+        if (!FirstOrderedList){
+          break;
+        }
         //
         // Get ordered list option data type.
         //
@@ -2158,10 +2164,9 @@
         // Add Block Data into VarStorageData BlockEntry
         //
         InsertBlockData (&VarStorageData->BlockEntry, &BlockData);
-        //
-        // No default data for OrderedList.
-        //
-        BlockData = NULL;
+
+        FirstOrderedList = FALSE;
+
         break;
       }
 
@@ -2222,12 +2227,6 @@
         break;
       }
 
-      if (BlockData->OpCode == EFI_IFR_ORDERED_LIST_OP) {
-        //
-        // OrderedList Opcode is no default value.
-        //
-        break;
-      }
       //
       // Get the DefaultId
       //


------------------------------------------------------------------------------
Monitor Your Dynamic Infrastructure at Any Scale With Datadog!
Get real-time metrics from all of your servers, apps and tools
in one place.
SourceForge users - Click here to start your Free Trial of Datadog now!
http://pubads.g.doubleclick.net/gampad/clk?id=241902991&iu=/4140
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to