/** @file\r
Parser for IFR binary encoding.\r
\r
-Copyright (c) 2008, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
http://opensource.org/licenses/bsd-license.php\r
EFI_GUID mFrameworkHiiCompatibilityGuid = EFI_IFR_FRAMEWORK_GUID;\r
extern EFI_GUID mTianoHiiIfrGuid;\r
\r
+/**\r
+ Find the question's OneOfOptionMap list in FormSet \r
+ based on the input question Id. \r
+ \r
+ @param FormSet FormSet context.\r
+ @param QuestionId Unique ID to specicy the question in FormSet.\r
+ \r
+ @return the found OneOfOptionMap list. If not found, NULL will return.\r
+**/\r
LIST_ENTRY *\r
GetOneOfOptionMapEntryListHead (\r
IN CONST FORM_BROWSER_FORMSET *FormSet,\r
return NULL;\r
}\r
\r
+/**\r
+ Free OneOfOption map list.\r
+ \r
+ @param OneOfOptionMapListHead Pointer to list header of OneOfOptionMap list.\r
+\r
+**/\r
VOID\r
DestoryOneOfOptionMap (\r
IN LIST_ENTRY *OneOfOptionMapListHead\r
FORMSET_STORAGE *Storage;\r
\r
Storage = AllocateZeroPool (sizeof (FORMSET_STORAGE));\r
+ ASSERT (Storage != NULL);\r
Storage->Signature = FORMSET_STORAGE_SIGNATURE;\r
InsertTailList (&FormSet->StorageListHead, &Storage->Link);\r
\r
// Create a new Form for this FormSet\r
//\r
CurrentForm = AllocateZeroPool (sizeof (FORM_BROWSER_FORM));\r
+ ASSERT (CurrentForm != NULL);\r
CurrentForm->Signature = FORM_BROWSER_FORM_SIGNATURE;\r
\r
InitializeListHead (&CurrentForm->StatementListHead);\r
// Create a new Form Map for this FormSet\r
//\r
CurrentForm = AllocateZeroPool (sizeof (FORM_BROWSER_FORM));\r
+ ASSERT (CurrentForm != NULL);\r
CurrentForm->Signature = FORM_BROWSER_FORM_SIGNATURE;\r
\r
InitializeListHead (&CurrentForm->StatementListHead);\r
//\r
case EFI_IFR_DEFAULTSTORE_OP:\r
DefaultStore = AllocateZeroPool (sizeof (FORMSET_DEFAULTSTORE));\r
+ ASSERT (DefaultStore != NULL);\r
DefaultStore->Signature = FORMSET_DEFAULTSTORE_SIGNATURE;\r
\r
CopyMem (&DefaultStore->DefaultId, &((EFI_IFR_DEFAULTSTORE *) OpCodeData)->DefaultId, sizeof (UINT16));\r
CurrentStatement->Minimum = ((EFI_IFR_NUMERIC *) OpCodeData)->data.u8.MinValue;\r
CurrentStatement->Maximum = ((EFI_IFR_NUMERIC *) OpCodeData)->data.u8.MaxValue;\r
CurrentStatement->Step = ((EFI_IFR_NUMERIC *) OpCodeData)->data.u8.Step;\r
- CurrentStatement->StorageWidth = sizeof (UINT8);\r
+ CurrentStatement->StorageWidth = (UINT16) sizeof (UINT8);\r
Value->Type = EFI_IFR_TYPE_NUM_SIZE_8;\r
break;\r
\r
CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u16.MinValue, sizeof (UINT16));\r
CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u16.MaxValue, sizeof (UINT16));\r
CopyMem (&CurrentStatement->Step, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u16.Step, sizeof (UINT16));\r
- CurrentStatement->StorageWidth = sizeof (UINT16);\r
+ CurrentStatement->StorageWidth = (UINT16) sizeof (UINT16);\r
Value->Type = EFI_IFR_TYPE_NUM_SIZE_16;\r
break;\r
\r
CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.MinValue, sizeof (UINT32));\r
CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.MaxValue, sizeof (UINT32));\r
CopyMem (&CurrentStatement->Step, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u32.Step, sizeof (UINT32));\r
- CurrentStatement->StorageWidth = sizeof (UINT32);\r
+ CurrentStatement->StorageWidth = (UINT16) sizeof (UINT32);\r
Value->Type = EFI_IFR_TYPE_NUM_SIZE_32;\r
break;\r
\r
CopyMem (&CurrentStatement->Minimum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u64.MinValue, sizeof (UINT64));\r
CopyMem (&CurrentStatement->Maximum, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u64.MaxValue, sizeof (UINT64));\r
CopyMem (&CurrentStatement->Step, &((EFI_IFR_NUMERIC *) OpCodeData)->data.u64.Step, sizeof (UINT64));\r
- CurrentStatement->StorageWidth = sizeof (UINT64);\r
+ CurrentStatement->StorageWidth = (UINT16) sizeof (UINT64);\r
Value->Type = EFI_IFR_TYPE_NUM_SIZE_64;\r
break;\r
\r
ASSERT (CurrentStatement != NULL);\r
\r
CurrentStatement->Flags = ((EFI_IFR_CHECKBOX *) OpCodeData)->Flags;\r
- CurrentStatement->StorageWidth = sizeof (BOOLEAN);\r
+ CurrentStatement->StorageWidth = (UINT16) sizeof (BOOLEAN);\r
CurrentStatement->HiiValue.Type = EFI_IFR_TYPE_BOOLEAN;\r
\r
break;\r
// A Question may have more than one Default value which have different default types.\r
//\r
CurrentDefault = AllocateZeroPool (sizeof (QUESTION_DEFAULT));\r
+ ASSERT (CurrentDefault != NULL);\r
CurrentDefault->Signature = QUESTION_DEFAULT_SIGNATURE;\r
\r
CurrentDefault->Value.Type = ((EFI_IFR_DEFAULT *) OpCodeData)->Type;\r
// It create a selection for use in current Question.\r
//\r
CurrentOption = AllocateZeroPool (sizeof (QUESTION_OPTION));\r
+ ASSERT (CurrentOption != NULL);\r
CurrentOption->Signature = QUESTION_OPTION_SIGNATURE;\r
\r
CurrentOption->Flags = ((EFI_IFR_ONE_OF_OPTION *) OpCodeData)->Flags;\r