Revision: 14636
http://sourceforge.net/p/edk2/code/14636
Author: vanjeff
Date: 2013-09-10 03:17:16 +0000 (Tue, 10 Sep 2013)
Log Message:
-----------
Sync patch r14036 from main trunk.
Base on the type field to get the width of value field for option opcode.
Revision Links:
--------------
http://sourceforge.net/p/edk2/code/14036
Modified Paths:
--------------
branches/UDK2010.SR1/MdeModulePkg/Library/UefiHiiLib/HiiLib.c
branches/UDK2010.SR1/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
branches/UDK2010.SR1/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
Modified: branches/UDK2010.SR1/MdeModulePkg/Library/UefiHiiLib/HiiLib.c
===================================================================
--- branches/UDK2010.SR1/MdeModulePkg/Library/UefiHiiLib/HiiLib.c
2013-09-10 03:07:41 UTC (rev 14635)
+++ branches/UDK2010.SR1/MdeModulePkg/Library/UefiHiiLib/HiiLib.c
2013-09-10 03:17:16 UTC (rev 14636)
@@ -947,6 +947,7 @@
UINT16 Offset;
UINT16 Width;
UINT64 VarValue;
+ UINT64 TmpValue;
LIST_ENTRY *Link;
UINT8 *VarBuffer;
UINTN MaxBufferSize;
@@ -1511,7 +1512,9 @@
//
// Check current value is the value of one of option.
//
- if (VarValue == IfrOneOfOption->Value.u64) {
+ TmpValue = 0;
+ CopyMem (&TmpValue, &IfrOneOfOption->Value,
IfrOneOfOption->Header.Length - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));
+ if (VarValue == TmpValue) {
//
// The value is one of option value.
// Set OpCode to Zero, don't need check again.
@@ -2629,7 +2632,7 @@
OpCode.Type = Type;
CopyMem (&OpCode.Value, &Value, mHiiDefaultTypeToWidth[Type]);
- return InternalHiiCreateOpCode (OpCodeHandle, &OpCode,
EFI_IFR_ONE_OF_OPTION_OP, sizeof (OpCode));
+ return InternalHiiCreateOpCode (OpCodeHandle, &OpCode,
EFI_IFR_ONE_OF_OPTION_OP, OFFSET_OF(EFI_IFR_ONE_OF_OPTION, Value) +
mHiiDefaultTypeToWidth[Type]);
}
/**
Modified:
branches/UDK2010.SR1/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
===================================================================
--- branches/UDK2010.SR1/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
2013-09-10 03:07:41 UTC (rev 14635)
+++ branches/UDK2010.SR1/MdeModulePkg/Universal/HiiDatabaseDxe/ConfigRouting.c
2013-09-10 03:17:16 UTC (rev 14636)
@@ -1,7 +1,7 @@
/** @file
Implementation of interfaces function for EFI_HII_CONFIG_ROUTING_PROTOCOL.
-Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD
License
which accompanies this distribution. The full text of the license may be
found at
@@ -1861,7 +1861,7 @@
// Prepare new DefaultValue
//
DefaultData.Type = DefaultValueFromFlag;
- CopyMem (&DefaultData.Value.u64, &IfrOneOfOption->Value.u64, sizeof
(UINT64));
+ CopyMem (&DefaultData.Value, &IfrOneOfOption->Value,
IfrOneOfOption->Header.Length - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));
if ((IfrOneOfOption->Flags & EFI_IFR_OPTION_DEFAULT) ==
EFI_IFR_OPTION_DEFAULT) {
DefaultData.DefaultId = EFI_HII_DEFAULT_CLASS_STANDARD;
InsertDefaultValue (BlockData, &DefaultData);
@@ -1886,7 +1886,7 @@
// Prepare new DefaultValue
//
DefaultData.Type = DefaultValueFromDefault;
- CopyMem (&DefaultData.Value.u64, &IfrOneOfOption->Value.u64, sizeof
(UINT64));
+ CopyMem (&DefaultData.Value, &IfrOneOfOption->Value,
IfrOneOfOption->Header.Length - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));
for (LinkData = DefaultIdArray->Entry.ForwardLink; LinkData !=
&DefaultIdArray->Entry; LinkData = LinkData->ForwardLink) {
DefaultDataPtr = BASE_CR (LinkData, IFR_DEFAULT_DATA, Entry);
DefaultData.DefaultId = DefaultDataPtr->DefaultId;
Modified: branches/UDK2010.SR1/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
===================================================================
--- branches/UDK2010.SR1/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
2013-09-10 03:07:41 UTC (rev 14635)
+++ branches/UDK2010.SR1/MdeModulePkg/Universal/SetupBrowserDxe/IfrParse.c
2013-09-10 03:17:16 UTC (rev 14636)
@@ -1,7 +1,7 @@
/** @file
Parser for IFR binary encoding.
-Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD
License
which accompanies this distribution. The full text of the license may be
found at
@@ -1915,7 +1915,7 @@
CurrentOption->Flags = ((EFI_IFR_ONE_OF_OPTION *) OpCodeData)->Flags;
CurrentOption->Value.Type = ((EFI_IFR_ONE_OF_OPTION *) OpCodeData)->Type;
CopyMem (&CurrentOption->Text, &((EFI_IFR_ONE_OF_OPTION *)
OpCodeData)->Option, sizeof (EFI_STRING_ID));
- CopyMem (&CurrentOption->Value.Value, &((EFI_IFR_ONE_OF_OPTION *)
OpCodeData)->Value, sizeof (EFI_IFR_TYPE_VALUE));
+ CopyMem (&CurrentOption->Value.Value, &((EFI_IFR_ONE_OF_OPTION *)
OpCodeData)->Value, OpCodeLength - OFFSET_OF (EFI_IFR_ONE_OF_OPTION, Value));
ExtendValueToU64 (&CurrentOption->Value);
ConditionalExprCount = GetConditionalExpressionCount(ExpressOption);
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. Consolidate legacy IT systems to a single system of record for IT
2. Standardize and globalize service processes across IT
3. Implement zero-touch automation to replace manual, redundant tasks
http://pubads.g.doubleclick.net/gampad/clk?id=51271111&iu=/4140/ostg.clktrk
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits