Add example of Name/Value pair var store to DriverSample
[efi/edk2/.git] / edk2 / MdeModulePkg / Universal / DriverSampleDxe / Vfr.vfr
index 8a0a863..bc821a6 100644 (file)
@@ -89,6 +89,15 @@ formset
     varsize   = 1,                                // Size of the EFI variable\r
     guid      = FORMSET_GUID;                     // EFI variable GUID\r
 \r
+  //\r
+  // Define a Name/Value Storage (EFI_IFR_VARSTORE_NAME_VALUE)\r
+  //\r
+  namevaluevarstore MyNameValueVar,                // Define storage reference name in vfr\r
+    name = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME0), // Define Name list of this storage, refer it by MyNameValueVar[0]\r
+    name = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME1), // Define Name list of this storage, refer it by MyNameValueVar[1]\r
+    name = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME2), // Define Name list of this storage, refer it by MyNameValueVar[2]\r
+    guid = FORMSET_GUID;                           // GUID of this Name/Value storage\r
+\r
   defaultstore MyStandardDefault,\r
     prompt      = STRING_TOKEN(STR_STANDARD_DEFAULT_PROMPT),\r
     attribute   = 0x0000;                         // Default ID: 0000 standard default\r
@@ -323,6 +332,41 @@ formset
 \r
     endnumeric;\r
 \r
+    //\r
+    // Define numeric using Name/Value Storage\r
+    //\r
+    numeric varid   = MyNameValueVar[0],     // This numeric take NameValueVar0 as storage\r
+            prompt  = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME0),\r
+            help    = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME0_HELP),\r
+            //\r
+            // Size should be defined for numeric when use Name/Value storage\r
+            // Valid value for numerice size are: NUMERIC_SIZE_1, NUMERIC_SIZE_2, NUMERIC_SIZE_4 and NUMERIC_SIZE_8\r
+            //\r
+            flags   = NUMERIC_SIZE_1,        // Size of this numeric is 1 byte\r
+            minimum = 0,\r
+            maximum = 0xff,\r
+            step    = 0,\r
+    endnumeric;\r
+\r
+    numeric varid   = MyNameValueVar[1],     // This numeric take NameValueVar1 as storage\r
+            prompt  = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME1),\r
+            help    = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME1_HELP),\r
+            flags   = NUMERIC_SIZE_2,        // Size of this numeric is 2 bytes\r
+            minimum = 0,\r
+            maximum = 0xffff,\r
+            step    = 0,\r
+    endnumeric;\r
+\r
+    //\r
+    // Define string using Name/Value Storage\r
+    //\r
+    string    varid    = MyNameValueVar[2],     // This string take NameValueVar2 as storage\r
+              prompt   = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME2),\r
+              help     = STRING_TOKEN(STR_NAME_VALUE_VAR_NAME2_HELP),\r
+              minsize  = 2,\r
+              maxsize  = 0x14,\r
+    endstring;\r
+\r
     label LABEL_1_VALUE;\r
     label LABEL_2_VALUE;\r
 \r