EFI_HII_STRING_PROTOCOL *mHiiString;\r
EFI_HII_CONFIG_ROUTING_PROTOCOL *mHiiConfigRouting;\r
\r
-BANNER_DATA *BannerData;\r
-EFI_HII_HANDLE FrontPageHandle;\r
+BANNER_DATA *gBannerData;\r
+EFI_HII_HANDLE gFrontPageHandle;\r
UINTN gClassOfVfr;\r
UINTN gFunctionKeySetting;\r
BOOLEAN gResetRequired;\r
CHAR16 *gSaveChanges;\r
CHAR16 *gOptionMismatch;\r
\r
+CHAR16 *mUnknownString = L"!";\r
+\r
CHAR16 gPromptBlockWidth;\r
CHAR16 gOptionBlockWidth;\r
CHAR16 gHelpBlockWidth;\r
InitializeBrowserStrings ();\r
\r
gFunctionKeySetting = DEFAULT_FUNCTION_KEY_SETTING;\r
- gClassOfVfr = EFI_SETUP_APPLICATION_SUBCLASS;\r
+ gClassOfVfr = FORMSET_CLASS_PLATFORM_SETUP;\r
\r
//\r
// Ensure we are in Text mode\r
)\r
{\r
EFI_STATUS Status;\r
- EFI_HII_PACKAGE_LIST_HEADER *PackageList;\r
\r
//\r
// Locate required Hii relative protocols\r
//\r
// Publish our HII data\r
//\r
- PackageList = HiiLibPreparePackageList (1, &gSetupBrowserGuid, SetupBrowserStrings);\r
- ASSERT (PackageList != NULL);\r
- Status = mHiiDatabase->NewPackageList (\r
- mHiiDatabase,\r
- PackageList,\r
- ImageHandle,\r
- &gHiiHandle\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
+ gHiiHandle = HiiAddPackages (\r
+ &gSetupBrowserGuid,\r
+ ImageHandle,\r
+ SetupBrowserStrings,\r
+ NULL\r
+ );\r
+ ASSERT (gHiiHandle != NULL);\r
\r
//\r
// Initialize Driver private data\r
//\r
- BannerData = AllocateZeroPool (sizeof (BANNER_DATA));\r
- ASSERT (BannerData != NULL);\r
+ gBannerData = AllocateZeroPool (sizeof (BANNER_DATA));\r
+ ASSERT (gBannerData != NULL);\r
\r
//\r
// Install FormBrowser2 protocol\r
)\r
{\r
EFI_STRING_ID StringId;\r
- EFI_STATUS Status;\r
\r
- StringId = 0;\r
- Status = HiiLibNewString (HiiHandle, &StringId, String);\r
- ASSERT_EFI_ERROR (Status);\r
+ StringId = HiiSetString (HiiHandle, 0, String, NULL);\r
+ ASSERT (StringId != 0);\r
\r
return StringId;\r
}\r
CHAR16 NullChar;\r
\r
NullChar = CHAR_NULL;\r
- return HiiLibSetString (HiiHandle, StringId, &NullChar);\r
+ HiiSetString (HiiHandle, StringId, &NullChar, NULL);\r
+ return EFI_SUCCESS;\r
}\r
\r
\r
IN EFI_HII_HANDLE HiiHandle\r
)\r
{\r
- EFI_STATUS Status;\r
- CHAR16 *String;\r
- UINTN BufferLength;\r
+ EFI_STRING String;\r
\r
- //\r
- // Set default string size assumption at no more than 256 bytes\r
- //\r
- BufferLength = 0x100;\r
- String = AllocateZeroPool (BufferLength);\r
- ASSERT (String != NULL);\r
-\r
- Status = HiiLibGetString (HiiHandle, Token, String, &BufferLength);\r
-\r
- if (Status == EFI_BUFFER_TOO_SMALL) {\r
- FreePool (String);\r
- String = AllocateZeroPool (BufferLength);\r
+ String = HiiGetString (HiiHandle, Token, NULL);\r
+ if (String == NULL) {\r
+ String = AllocateCopyPool (sizeof (mUnknownString), mUnknownString);\r
ASSERT (String != NULL);\r
-\r
- Status = HiiLibGetString (HiiHandle, Token, String, &BufferLength);\r
}\r
- ASSERT_EFI_ERROR (Status);\r
-\r
- return String;\r
+ return (CHAR16 *) String;\r
}\r
\r
\r
if ((Index & 1) == 0) {\r
Dst [Index/2] = DigitUint8;\r
} else {\r
- Dst [Index/2] = (UINT8) ((Dst [Index/2] << 4) + DigitUint8);\r
+ Dst [Index/2] = (UINT8) ((DigitUint8 << 4) + Dst [Index/2]);\r
}\r
}\r
}\r
if ((Index & 1) == 0) {\r
Dst [Index/2] = DigitUint8;\r
} else {\r
- Dst [Index/2] = (UINT8) ((Dst [Index/2] << 4) + DigitUint8);\r
+ Dst [Index/2] = (UINT8) ((DigitUint8 << 4) + Dst [Index/2]);\r
}\r
}\r
}\r
// For Questions without default\r
//\r
switch (Question->Operand) {\r
- case EFI_IFR_NUMERIC_OP:\r
- //\r
- // Take minimal value as numeric's default value\r
- //\r
- HiiValue->Value.u64 = Question->Minimum;\r
- break;\r
-\r
case EFI_IFR_ONE_OF_OP:\r
//\r
// Take first oneof option as oneof's default value\r
//\r
- Link = GetFirstNode (&Question->OptionListHead);\r
- if (!IsNull (&Question->OptionListHead, Link)) {\r
- Option = QUESTION_OPTION_FROM_LINK (Link);\r
- CopyMem (HiiValue, &Option->Value, sizeof (EFI_HII_VALUE));\r
+ if (ValueToOption (Question, HiiValue) == NULL) { \r
+ Link = GetFirstNode (&Question->OptionListHead);\r
+ if (!IsNull (&Question->OptionListHead, Link)) {\r
+ Option = QUESTION_OPTION_FROM_LINK (Link);\r
+ CopyMem (HiiValue, &Option->Value, sizeof (EFI_HII_VALUE));\r
+ }\r
}\r
break;\r
\r
Link = GetNextNode (&Form->StatementListHead, Link);\r
\r
//\r
- // If Question is suppressed, don't reset it to default\r
+ // If Question is disabled, don't reset it to default\r
//\r
- if (Question->SuppressExpression != NULL) {\r
- Status = EvaluateExpression (FormSet, Form, Question->SuppressExpression);\r
- if (!EFI_ERROR (Status) && Question->SuppressExpression->Result.Value.b) {\r
+ if (Question->DisableExpression != NULL) {\r
+ Status = EvaluateExpression (FormSet, Form, Question->DisableExpression);\r
+ if (!EFI_ERROR (Status) && Question->DisableExpression->Result.Value.b) {\r
continue;\r
}\r
}\r
BOOLEAN ReturnDefault;\r
UINT32 PackageListLength;\r
EFI_HII_PACKAGE_HEADER PackageHeader;\r
+ UINT8 Index;\r
+ UINT8 NumberOfClassGuid;\r
+ BOOLEAN IsSetupClassGuid;\r
+ EFI_GUID *ClassGuid;\r
\r
OpCodeData = NULL;\r
Package = NULL;\r
// Check whether return default FormSet\r
//\r
if (ReturnDefault) {\r
- break;\r
+ //\r
+ // Check ClassGuid of formset OpCode\r
+ //\r
+ IsSetupClassGuid = FALSE;\r
+ NumberOfClassGuid = (UINT8) (((EFI_IFR_FORM_SET *) OpCodeData)->Flags & 0x3);\r
+ ClassGuid = (EFI_GUID *) (OpCodeData + sizeof (EFI_IFR_FORM_SET));\r
+ for (Index = 0; Index < NumberOfClassGuid; Index++) {\r
+ if (CompareGuid (ClassGuid + Index, &gEfiHiiPlatformSetupFormsetGuid)) {\r
+ IsSetupClassGuid = TRUE;\r
+ break;\r
+ }\r
+ }\r
+ if (IsSetupClassGuid) {\r
+ break;\r
+ }\r
}\r
\r
//\r
return Status;\r
}\r
\r
- gClassOfVfr = FormSet->SubClass;\r
- if (gClassOfVfr == EFI_FRONT_PAGE_SUBCLASS) {\r
- FrontPageHandle = FormSet->HiiHandle;\r
+ gClassOfVfr = FORMSET_CLASS_PLATFORM_SETUP;\r
+ if (FormSet->SubClass == EFI_FRONT_PAGE_SUBCLASS) {\r
+ gClassOfVfr = FORMSET_CLASS_FRONT_PAGE;\r
+ gFrontPageHandle = FormSet->HiiHandle;\r
}\r
\r
//\r