summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c75
1 files changed, 44 insertions, 31 deletions
diff --git a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
index 02d7d7b..29576ba 100644
--- a/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
+++ b/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
@@ -1158,51 +1158,64 @@ ParseIfrData (
InsertBlockData (&VarStorageData->BlockEntry, &BlockData);
//
- // Add default value by CheckBox Flags
+ // Add default value for standard ID by CheckBox Flag
//
+ VarDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
+ //
+ // Prepare new DefaultValue
+ //
+ DefaultData = (IFR_DEFAULT_DATA *) AllocateZeroPool (sizeof (IFR_DEFAULT_DATA));
+ if (DefaultData == NULL) {
+ Status = EFI_OUT_OF_RESOURCES;
+ goto Done;
+ }
+ DefaultData->OpCode = IfrOpHdr->OpCode;
+ DefaultData->DefaultId = VarDefaultId;
if ((IfrCheckBox->Flags & EFI_IFR_CHECKBOX_DEFAULT) == EFI_IFR_CHECKBOX_DEFAULT) {
//
- // Set standard ID to Manufacture ID
- //
- VarDefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
- //
- // Prepare new DefaultValue
+ // When flag is set, defautl value is TRUE.
//
- DefaultData = (IFR_DEFAULT_DATA *) AllocateZeroPool (sizeof (IFR_DEFAULT_DATA));
- if (DefaultData == NULL) {
- Status = EFI_OUT_OF_RESOURCES;
- goto Done;
- }
- DefaultData->OpCode = IfrOpHdr->OpCode;
- DefaultData->DefaultId = VarDefaultId;
- DefaultData->Value = 1;
+ DefaultData->Value = 1;
+ } else {
//
- // Add DefaultValue into current BlockData
+ // When flag is not set, defautl value is FASLE.
//
- InsertDefaultValue (BlockData, DefaultData);
+ DefaultData->Value = 0;
}
+ //
+ // Add DefaultValue into current BlockData
+ //
+ InsertDefaultValue (BlockData, DefaultData);
+ //
+ // Add default value for Manufacture ID by CheckBox Flag
+ //
+ VarDefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;
+ //
+ // Prepare new DefaultValue
+ //
+ DefaultData = (IFR_DEFAULT_DATA *) AllocateZeroPool (sizeof (IFR_DEFAULT_DATA));
+ if (DefaultData == NULL) {
+ Status = EFI_OUT_OF_RESOURCES;
+ goto Done;
+ }
+ DefaultData->OpCode = IfrOpHdr->OpCode;
+ DefaultData->DefaultId = VarDefaultId;
if ((IfrCheckBox->Flags & EFI_IFR_CHECKBOX_DEFAULT_MFG) == EFI_IFR_CHECKBOX_DEFAULT_MFG) {
//
- // Set standard ID to Manufacture ID
- //
- VarDefaultId = EFI_HII_DEFAULT_CLASS_MANUFACTURING;
- //
- // Prepare new DefaultValue
+ // When flag is set, defautl value is TRUE.
//
- DefaultData = (IFR_DEFAULT_DATA *) AllocateZeroPool (sizeof (IFR_DEFAULT_DATA));
- if (DefaultData == NULL) {
- Status = EFI_OUT_OF_RESOURCES;
- goto Done;
- }
- DefaultData->OpCode = IfrOpHdr->OpCode;
- DefaultData->DefaultId = VarDefaultId;
- DefaultData->Value = 1;
+ DefaultData->Value = 1;
+ } else {
//
- // Add DefaultValue into current BlockData
+ // When flag is not set, defautl value is FASLE.
//
- InsertDefaultValue (BlockData, DefaultData);
+ DefaultData->Value = 0;
}
+ //
+ // Add DefaultValue into current BlockData
+ //
+ InsertDefaultValue (BlockData, DefaultData);
break;
case EFI_IFR_STRING_OP: