\r
**/\r
\r
-#include <PiDxe.h>\r
-\r
-#include <Protocol/HiiConfigAccess.h>\r
-#include <Protocol/HiiConfigRouting.h>\r
-#include <Protocol/HiiDatabase.h>\r
-#include <Protocol/HiiString.h>\r
-\r
-#include <Library/BaseLib.h>\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/HiiLib.h>\r
-#include <Library/IfrSupportLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-#include <Library/PrintLib.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-\r
-#include <Guid/MdeModuleHii.h>\r
-\r
-#include "UefiIfrParser.h"\r
+#include "HiiDatabase.h"\r
\r
#include "UefiIfrParserExpression.h"\r
\r
ONE_OF_OPTION_MAP_ENTRY *OneOfOptionMapEntry;\r
UINT8 OneOfType;\r
EFI_IFR_ONE_OF *OneOfOpcode;\r
+ HII_THUNK_CONTEXT *ThunkContext;\r
\r
- mInScopeSubtitle = FALSE;\r
- mInScopeSuppress = FALSE;\r
- mInScopeGrayOut = FALSE;\r
- CurrentDefault = NULL;\r
- CurrentOption = NULL;\r
+ mInScopeSubtitle = FALSE;\r
+ mInScopeSuppress = FALSE;\r
+ mInScopeGrayOut = FALSE;\r
+ CurrentDefault = NULL;\r
+ CurrentOption = NULL;\r
+ ThunkContext = UefiHiiHandleToThunkContext ((CONST HII_THUNK_PRIVATE_DATA*) mHiiThunkPrivateData, FormSet->HiiHandle);\r
\r
//\r
// Set to a invalid value.\r
break;\r
\r
case EFI_IFR_VARSTORE_NAME_VALUE_OP:\r
- ASSERT (FALSE);\r
+ //\r
+ // Framework IFR doesn't support Name/Value VarStore opcode\r
+ //\r
+ if (ThunkContext != NULL && ThunkContext->ByFrameworkHiiNewPack) {\r
+ ASSERT (FALSE);\r
+ }\r
+\r
+ //\r
+ // Create a name/value Storage for this FormSet\r
+ //\r
+ Storage = CreateStorage (FormSet);\r
+ Storage->Type = EFI_HII_VARSTORE_NAME_VALUE;\r
+\r
+ CopyMem (&Storage->VarStoreId, &((EFI_IFR_VARSTORE_NAME_VALUE *) OpCodeData)->VarStoreId, sizeof (EFI_VARSTORE_ID));\r
+ CopyMem (&Storage->Guid, &((EFI_IFR_VARSTORE_NAME_VALUE *) OpCodeData)->Guid, sizeof (EFI_GUID));\r
\r
break;\r
\r
break;\r
\r
case EFI_IFR_RESET_BUTTON_OP:\r
- CurrentStatement = CreateQuestion (OpCodeData, FormSet, CurrentForm);\r
-\r
+ CurrentStatement = CreateStatement (OpCodeData, FormSet, CurrentForm);\r
CopyMem (&CurrentStatement->DefaultId, &((EFI_IFR_RESET_BUTTON *) OpCodeData)->DefaultId, sizeof (EFI_DEFAULT_ID));\r
break;\r
\r
break;\r
\r
case EFI_IFR_DISABLE_IF_OP:\r
- ASSERT (FALSE);\r
-\r
+ //\r
+ // Framework IFR doesn't support DisableIf opcode\r
+ //\r
+ if (ThunkContext != NULL && ThunkContext->ByFrameworkHiiNewPack) {\r
+ ASSERT (FALSE);\r
+ }\r
\r
//\r
// Expression\r
default:\r
break;\r
}\r
- } \r
- else if (CompareGuid ((EFI_GUID *)(VOID *)&OptionMap->Guid, &mFrameworkHiiCompatibilityGuid)) {\r
+ } else if (CompareGuid ((EFI_GUID *)(VOID *)&OptionMap->Guid, &mFrameworkHiiCompatibilityGuid)) {\r
if (OptionMap->ExtendOpCode == EFI_IFR_EXTEND_OP_OPTIONKEY) {\r
OneOfOptinMapEntryListHead = GetOneOfOptionMapEntryListHead (FormSet, OptionMap->QuestionId);\r
if (OneOfOptinMapEntryListHead == NULL) {\r