Revision: 18337
http://sourceforge.net/p/edk2/code/18337
Author: dandanbi
Date: 2015-08-27 08:35:19 +0000 (Thu, 27 Aug 2015)
Log Message:
-----------
MdeModulePkg:Set default string value
Previously construct Default Value in AltResp for string opcode is String Id,
Now change it to string value if the string opcode has default value.
This change is compatible for SetupBrowser to handle.And add default value
for string in DriverSample to test this case.
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/DriverSampleDxe/VfrStrings.uni
trunk/edk2/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
Modified: trunk/edk2/MdeModulePkg/Universal/DriverSampleDxe/Vfr.vfr
===================================================================
--- trunk/edk2/MdeModulePkg/Universal/DriverSampleDxe/Vfr.vfr 2015-08-27
08:19:40 UTC (rev 18336)
+++ trunk/edk2/MdeModulePkg/Universal/DriverSampleDxe/Vfr.vfr 2015-08-27
08:35:19 UTC (rev 18337)
@@ -461,6 +461,7 @@
help = STRING_TOKEN(STR_MY_STRING_HELP),
minsize = 6,
maxsize = 0x14,
+ default = STRING_TOKEN(STR_MY_STRING_DEFAULT),
endstring;
//
Modified: trunk/edk2/MdeModulePkg/Universal/DriverSampleDxe/VfrStrings.uni
===================================================================
--- trunk/edk2/MdeModulePkg/Universal/DriverSampleDxe/VfrStrings.uni
2015-08-27 08:19:40 UTC (rev 18336)
+++ trunk/edk2/MdeModulePkg/Universal/DriverSampleDxe/VfrStrings.uni
2015-08-27 08:35:19 UTC (rev 18337)
@@ -312,6 +312,10 @@
++ Modified: trunk/edk2/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
===================================================================
--- trunk/edk2/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
2015-08-27 08:19:40 UTC (rev 18336)
+++ trunk/edk2/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
2015-08-27 08:35:19 UTC (rev 18337)
@@ -2056,11 +2056,6 @@
if (EFI_ERROR (Status)) {
goto Done;
}
-
- //
- // No default value for string.
- //
- BlockData = NULL;
break;
case EFI_IFR_PASSWORD_OP:
@@ -2850,6 +2845,7 @@
/**
Generate ConfigAltResp string base on the varstore info.
+ @param HiiHandle Hii Handle for this hii package.
@param ConfigHdr The config header for this varstore.
@param VarStorageData The varstore info.
@param DefaultIdArray The Default id array.
@@ -2860,6 +2856,7 @@
**/
EFI_STATUS
GenerateAltConfigResp (
+ IN EFI_HII_HANDLE HiiHandle,
IN CHAR16 *ConfigHdr,
IN IFR_VARSTORAGE_DATA *VarStorageData,
IN IFR_DEFAULT_DATA *DefaultIdArray,
@@ -2878,10 +2875,11 @@
IFR_DEFAULT_DATA *DefaultValueData;
UINTN Width;
UINT8 *TmpBuffer;
+ CHAR16 *DefaultString;
BlockData = NULL;
DataExist = FALSE;
-
+ DefaultString = NULL;
//
// Add length for <ConfigHdr> + '\0'
//
@@ -2993,10 +2991,19 @@
// Convert Value to a hex string in "%x" format
// NOTE: This is in the opposite byte that GUID and PATH use
//
- TmpBuffer = (UINT8 *) &(DefaultValueData->Value);
- for (; Width > 0; Width--) {
+ if (BlockData->OpCode == EFI_IFR_STRING_OP){
+ DefaultString = InternalGetString(HiiHandle,
DefaultValueData->Value.string);
+ TmpBuffer = (UINT8 *) DefaultString;
+ } else {
+ TmpBuffer = (UINT8 *) &(DefaultValueData->Value);
+ }
+ for (; Width > 0 && (TmpBuffer != NULL); Width--) {
StringPtr += UnicodeValueToString (StringPtr, PREFIX_ZERO |
RADIX_HEX, TmpBuffer[Width - 1], 2);
}
+ if (DefaultString != NULL){
+ FreePool(DefaultString);
+ DefaultString = NULL;
+ }
}
}
}
@@ -3218,7 +3225,7 @@
// Go through all VarStorageData Entry and get the DefaultId array for each
one
// Then construct them all to : ConfigHdr AltConfigHdr ConfigBody
AltConfigHdr ConfigBody
//
- Status = GenerateAltConfigResp (ConfigHdr, VarStorageData, DefaultIdArray,
&DefaultAltCfgResp);
+ Status = GenerateAltConfigResp (DataBaseRecord->Handle,ConfigHdr,
VarStorageData, DefaultIdArray, &DefaultAltCfgResp);
if (EFI_ERROR (Status)) {
goto Done;
}
------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits