12BOOLEAN mHiiPackageListUpdated;
16 0, 0, 0, { 0, 0, 0, 0, 0, 0, 0, 0 }
18UINT16 mCurrentFormId = 0;
23BOOLEAN mFinishRetrieveCall =
FALSE;
40 Status =
gBS->HandleProtocol (
41 FormSet->DriverHandle,
42 &gEfiHiiConfigAccessProtocolGuid,
43 (VOID **)&FormSet->ConfigAccess
45 if (EFI_ERROR (Status)) {
51 FormSet->ConfigAccess =
NULL;
77 while (!
IsNull (&Form->ExpressionListHead, Link)) {
78 Expression = FORM_EXPRESSION_FROM_LINK (Link);
79 Link =
GetNextNode (&Form->ExpressionListHead, Link);
81 if ((Expression->Type == EFI_HII_EXPRESSION_INCONSISTENT_IF) ||
82 (Expression->Type == EFI_HII_EXPRESSION_NO_SUBMIT_IF) ||
83 (Expression->Type == EFI_HII_EXPRESSION_WARNING_IF) ||
84 (Expression->Type == EFI_HII_EXPRESSION_WRITE) ||
85 ((Expression->Type == EFI_HII_EXPRESSION_READ) && (Form->FormType != STANDARD_MAP_FORM_TYPE)))
94 if (EFI_ERROR (Status)) {
118 Link =
GetFirstNode (&gDisplayFormData.StatementListHead);
119 while (!
IsNull (&gDisplayFormData.StatementListHead, Link)) {
120 DisplayStatement = FORM_DISPLAY_ENGINE_STATEMENT_FROM_LINK (Link);
122 if (DisplayStatement->OpCode == OpCode) {
123 return DisplayStatement;
126 Link =
GetNextNode (&gDisplayFormData.StatementListHead, Link);
146 EventNode = FORM_BROWSER_REFRESH_EVENT_FROM_LINK (Link);
149 gBS->CloseEvent (EventNode->RefreshEvent);
167 GetQuestionValue (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithHiiDriver);
172 mHiiPackageListUpdated =
FALSE;
177 ProcessCallBackFunction (gCurrentSelection, gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, EFI_BROWSER_ACTION_RETRIEVE,
FALSE);
179 if (mHiiPackageListUpdated) {
183 mHiiPackageListUpdated =
FALSE;
184 gCurrentSelection->Action = UI_ACTION_REFRESH_FORMSET;
205 gBS->SignalEvent (mValueChangedEvent);
221 gCurrentSelection->Action = UI_ACTION_REFRESH_FORMSET;
223 gBS->SignalEvent (mValueChangedEvent);
244 Status =
gBS->CreateEventEx (
249 &Statement->RefreshGuid,
255 ASSERT (EventNode !=
NULL);
256 EventNode->RefreshEvent = RefreshEvent;
278 Status =
gBS->CreateEventEx (
289 ASSERT (EventNode !=
NULL);
290 EventNode->RefreshEvent = RefreshEvent;
312 DisplayStatement->Signature = FORM_DISPLAY_ENGINE_STATEMENT_SIGNATURE;
313 DisplayStatement->Version = FORM_DISPLAY_ENGINE_STATEMENT_VERSION_1;
314 DisplayStatement->OpCode = Statement->OpCode;
319 DisplayStatement->Attribute |= HII_DISPLAY_GRAYOUT;
322 if ((Statement->ValueExpression !=
NULL) || ((Statement->QuestionFlags & EFI_IFR_FLAG_READ_ONLY) != 0)) {
323 DisplayStatement->Attribute |= HII_DISPLAY_READONLY;
330 while (!
IsNull (&Statement->OptionListHead, Link)) {
331 Option = QUESTION_OPTION_FROM_LINK (Link);
332 Link =
GetNextNode (&Statement->OptionListHead, Link);
333 if ((Option->SuppressExpression !=
NULL) &&
340 ASSERT (DisplayOption !=
NULL);
342 DisplayOption->ImageId = Option->ImageId;
343 DisplayOption->Signature = DISPLAY_QUESTION_OPTION_SIGNATURE;
344 DisplayOption->OptionOpCode = Option->OpCode;
345 InsertTailList (&DisplayStatement->OptionListHead, &DisplayOption->Link);
354 if (Statement->BufferValue !=
NULL) {
358 if ((Statement->OpCode->OpCode == EFI_IFR_ORDERED_LIST_OP) && (
GetArrayData (Statement->BufferValue, Statement->ValueType, 0) == 0)) {
359 GetQuestionDefault (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, 0);
362 DisplayStatement->CurrentValue.Buffer =
AllocateCopyPool (Statement->StorageWidth, Statement->BufferValue);
363 DisplayStatement->CurrentValue.BufferLen = Statement->StorageWidth;
366 DisplayStatement->SettingChangedFlag = Statement->ValueChanged;
371 if (((gCurrentSelection->QuestionId != 0) && (Statement->QuestionId == gCurrentSelection->QuestionId)) ||
372 ((mCurFakeQestId != 0) && (Statement->FakeQuestionId == mCurFakeQestId)))
374 gDisplayFormData.HighLightedStatement = DisplayStatement;
387 if (((Statement->Operand == EFI_IFR_DATE_OP) || (Statement->Operand == EFI_IFR_TIME_OP)) && (Statement->Storage ==
NULL)) {
388 Statement->RefreshInterval = 1;
395 if ((!
IsZeroGuid (&Statement->RefreshGuid)) || (Statement->RefreshInterval != 0)) {
396 gDisplayFormData.FormRefreshEvent = mValueChangedEvent;
402 if (Statement->Operand == EFI_IFR_PASSWORD_OP) {
410 if (Statement->ParentStatement !=
NULL) {
412 ASSERT (ParentStatement !=
NULL);
413 InsertTailList (&ParentStatement->NestStatementList, &DisplayStatement->DisplayLink);
415 InsertTailList (&gDisplayFormData.StatementListHead, &DisplayStatement->DisplayLink);
436 Link =
GetFirstNode (&gCurrentSelection->Form->StatementListHead);
437 while (!
IsNull (&gCurrentSelection->Form->StatementListHead, Link)) {
438 Statement = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
439 Link =
GetNextNode (&gCurrentSelection->Form->StatementListHead, Link);
441 if (Statement->RefreshInterval == 0) {
448 gBS->SignalEvent (mValueChangedEvent);
466 while (!
IsNull (&gBrowserHotKeyList, Link)) {
467 HotKey = BROWSER_HOT_KEY_FROM_LINK (Link);
470 ASSERT (CopyKey !=
NULL);
472 ASSERT (CopyKey->KeyData !=
NULL);
474 ASSERT (CopyKey->HelpString !=
NULL);
476 InsertTailList (&gDisplayFormData.HotKeyListHead, &CopyKey->Link);
494 IN EFI_QUESTION_ID QuestionId
503 if (QuestionId == 0) {
504 return HII_DISPLAY_NONE;
507 Link =
GetFirstNode (&mPrivateData.FormBrowserEx2.OverrideQestListHead);
508 while (!
IsNull (&mPrivateData.FormBrowserEx2.OverrideQestListHead, Link)) {
509 QuestionDesc = FORM_QUESTION_ATTRIBUTE_OVERRIDE_FROM_LINK (Link);
510 Link =
GetNextNode (&mPrivateData.FormBrowserEx2.OverrideQestListHead, Link);
512 if ((QuestionDesc->QuestionId == QuestionId) &&
513 (QuestionDesc->FormId == gCurrentSelection->FormId) &&
514 (QuestionDesc->HiiHandle == gCurrentSelection->Handle) &&
515 CompareGuid (&QuestionDesc->FormSetGuid, &gCurrentSelection->FormSetGuid))
517 return QuestionDesc->Attribute;
521 return HII_DISPLAY_NONE;
539 UINT8 MinRefreshInterval;
542 BOOLEAN FormEditable;
543 UINT32 ExtraAttribute;
545 MinRefreshInterval = 0;
546 FormEditable =
FALSE;
552 Link =
GetFirstNode (&gCurrentSelection->FormSet->StatementListOSF);
553 while (!
IsNull (&gCurrentSelection->FormSet->StatementListOSF, Link)) {
554 Statement = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
555 Link =
GetNextNode (&gCurrentSelection->FormSet->StatementListOSF, Link);
558 ASSERT (DisplayStatement !=
NULL);
559 DisplayStatement->Signature = FORM_DISPLAY_ENGINE_STATEMENT_SIGNATURE;
560 DisplayStatement->Version = FORM_DISPLAY_ENGINE_STATEMENT_VERSION_1;
561 DisplayStatement->OpCode = Statement->OpCode;
566 InsertTailList (&gDisplayFormData.StatementListOSF, &DisplayStatement->DisplayLink);
573 ASSERT (DisplayStatement !=
NULL);
575 DisplayStatement->Signature = FORM_DISPLAY_ENGINE_STATEMENT_SIGNATURE;
576 DisplayStatement->Version = FORM_DISPLAY_ENGINE_STATEMENT_VERSION_1;
577 DisplayStatement->OpCode = gCurrentSelection->FormSet->OpCode;
582 InsertTailList (&gDisplayFormData.StatementListOSF, &DisplayStatement->DisplayLink);
587 Link =
GetFirstNode (&gCurrentSelection->Form->StatementListHead);
588 while (!
IsNull (&gCurrentSelection->Form->StatementListHead, Link)) {
589 Statement = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
590 Link =
GetNextNode (&gCurrentSelection->Form->StatementListHead, Link);
603 if ((ExtraAttribute & HII_DISPLAY_SUPPRESS) != 0) {
608 ASSERT (DisplayStatement !=
NULL);
618 DisplayStatement->Attribute |= ExtraAttribute;
620 if (Statement->Storage !=
NULL) {
627 if ((Statement->RefreshInterval != 0) &&
628 ((MinRefreshInterval == 0) || (Statement->RefreshInterval < MinRefreshInterval)))
630 MinRefreshInterval = Statement->RefreshInterval;
637 if (MinRefreshInterval != 0) {
640 Status =
gBS->SetTimer (RefreshIntervalEvent,
TimerPeriodic, MinRefreshInterval * ONE_SECOND);
644 ASSERT (EventNode !=
NULL);
645 EventNode->RefreshEvent = RefreshIntervalEvent;
652 if (!
IsZeroGuid (&gCurrentSelection->Form->RefreshGuid)) {
654 if (gDisplayFormData.FormRefreshEvent ==
NULL) {
655 gDisplayFormData.FormRefreshEvent = mValueChangedEvent;
662 if ((gBrowserSettingScope == SystemLevel) || FormEditable) {
680 gDisplayFormData.SettingChangedFlag =
FALSE;
683 gDisplayFormData.SettingChangedFlag =
TRUE;
690 switch (gBrowserSettingScope) {
696 while (!
IsNull (&gBrowserFormSetList, Link)) {
697 LocalFormSet = FORM_BROWSER_FORMSET_FROM_LINK (Link);
699 gDisplayFormData.SettingChangedFlag =
TRUE;
710 gDisplayFormData.SettingChangedFlag =
TRUE;
733 gDisplayFormData.Signature = FORM_DISPLAY_ENGINE_FORM_SIGNATURE;
734 gDisplayFormData.Version = FORM_DISPLAY_ENGINE_VERSION_1;
735 gDisplayFormData.ImageId = 0;
736 gDisplayFormData.AnimationId = 0;
742 Status =
gBS->CreateEvent (
765 while (!
IsListEmpty (&gDisplayFormData.HotKeyListHead)) {
767 HotKey = BROWSER_HOT_KEY_FROM_LINK (Link);
787 gDisplayFormData.FormTitle = gCurrentSelection->Form->FormTitle;
788 gDisplayFormData.FormId = gCurrentSelection->FormId;
789 gDisplayFormData.HiiHandle = gCurrentSelection->Handle;
790 CopyGuid (&gDisplayFormData.FormSetGuid, &gCurrentSelection->FormSetGuid);
792 gDisplayFormData.Attribute = 0;
793 gDisplayFormData.Attribute |= gCurrentSelection->Form->ModalForm ? HII_DISPLAY_MODAL : 0;
794 gDisplayFormData.Attribute |= gCurrentSelection->Form->Locked ? HII_DISPLAY_LOCK : 0;
796 gDisplayFormData.FormRefreshEvent =
NULL;
797 gDisplayFormData.HighLightedStatement =
NULL;
826 Statement = FORM_DISPLAY_ENGINE_STATEMENT_FROM_LINK (Link);
831 while (!
IsListEmpty (&Statement->OptionListHead)) {
833 Option = DISPLAY_QUESTION_OPTION_FROM_LINK (OptionLink);
841 if (!
IsListEmpty (&Statement->NestStatementList)) {
885 Link =
GetFirstNode (&gCurrentSelection->Form->StatementListHead);
886 while (!
IsNull (&gCurrentSelection->Form->StatementListHead, Link)) {
887 Statement = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
889 if (Statement->OpCode == DisplayStatement->OpCode) {
893 Link =
GetNextNode (&gCurrentSelection->Form->StatementListHead, Link);
916 while (!
IsNull (&Form->StatementListHead, Link)) {
917 Question = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
918 Link =
GetNextNode (&Form->StatementListHead, Link);
923 if (Question->Operand == EFI_IFR_PASSWORD_OP) {
946 while (!
IsNull (&FormSet->FormListHead, Link)) {
947 Form = FORM_BROWSER_FORM_FROM_LINK (Link);
966 IN BROWSER_SETTING_SCOPE SettingScope
972 switch (SettingScope) {
975 while (!
IsNull (&gBrowserFormSetList, Link)) {
976 LocalFormSet = FORM_BROWSER_FORMSET_FROM_LINK (Link);
1019 if ((Action & BROWSER_ACTION_FORM_EXIT) == BROWSER_ACTION_FORM_EXIT) {
1027 if ((Action & BROWSER_ACTION_DISCARD) == BROWSER_ACTION_DISCARD) {
1028 DiscardForm (gCurrentSelection->FormSet, gCurrentSelection->Form, gBrowserSettingScope);
1031 if ((Action & BROWSER_ACTION_DEFAULT) == BROWSER_ACTION_DEFAULT) {
1032 ExtractDefault (gCurrentSelection->FormSet, gCurrentSelection->Form, DefaultId, gBrowserSettingScope, GetDefaultForAll,
NULL,
FALSE,
FALSE);
1036 if ((Action & BROWSER_ACTION_SUBMIT) == BROWSER_ACTION_SUBMIT) {
1037 SubmitForm (gCurrentSelection->FormSet, gCurrentSelection->Form, gBrowserSettingScope);
1040 if ((Action & BROWSER_ACTION_RESET) == BROWSER_ACTION_RESET) {
1041 gResetRequiredFormLevel =
TRUE;
1042 gResetRequiredSystemLevel =
TRUE;
1045 if ((Action & BROWSER_ACTION_EXIT) == BROWSER_ACTION_EXIT) {
1051 DiscardForm (gCurrentSelection->FormSet, gCurrentSelection->Form, gBrowserSettingScope);
1052 if ((gBrowserSettingScope == FormLevel) || (gBrowserSettingScope == FormSetLevel)) {
1053 FindNextMenu (gCurrentSelection, gBrowserSettingScope);
1054 }
else if (gBrowserSettingScope == SystemLevel) {
1055 if (ExitHandlerFunction !=
NULL) {
1056 ExitHandlerFunction ();
1059 gCurrentSelection->Action = UI_ACTION_EXIT;
1086 UINT32 PackageListLength;
1094 HiiPackageList =
NULL;
1097 Status = mHiiDatabase->ExportPackageLists (mHiiDatabase, HiiHandle, &BufferSize, HiiPackageList);
1098 if (Status == EFI_BUFFER_TOO_SMALL) {
1100 ASSERT (HiiPackageList !=
NULL);
1102 Status = mHiiDatabase->ExportPackageLists (mHiiDatabase, HiiHandle, &BufferSize, HiiPackageList);
1105 if (EFI_ERROR (Status) || (HiiPackageList ==
NULL)) {
1114 CopyMem (&PackageListLength, &HiiPackageList->PackageLength, sizeof (UINT32));
1116 while (Offset < PackageListLength) {
1117 Package = ((UINT8 *)HiiPackageList) + Offset;
1119 Offset += PackageHeader.Length;
1121 if (PackageHeader.Type == EFI_HII_PACKAGE_FORMS) {
1126 while (Offset2 < PackageHeader.Length) {
1127 OpCodeData = Package + Offset2;
1178 ASSERT (DevicePath !=
NULL);
1180 TmpDevicePath = DevicePath;
1184 Status =
gBS->LocateDevicePath (
1185 &gEfiDevicePathProtocolGuid,
1197 if (HiiHandles ==
NULL) {
1205 for (Index = 0; HiiHandles[Index] !=
NULL; Index++) {
1206 Status = mHiiDatabase->GetPackageListHandle (
1211 if (!EFI_ERROR (Status) && (Handle == DriverHandle)) {
1213 HiiHandle = HiiHandles[Index];
1217 if (HiiHandle !=
NULL) {
1249 ASSERT (ComparingGuid !=
NULL);
1256 ASSERT (HiiHandles !=
NULL);
1261 for (Index = 0; HiiHandles[Index] !=
NULL; Index++) {
1263 HiiHandle = HiiHandles[Index];
1267 if (HiiHandle !=
NULL) {
1293 IN BROWSER_SETTING_SCOPE Scope
1300 switch (mFormDisplay->ConfirmDataChange ()) {
1301 case BROWSER_ACTION_DISCARD:
1302 DiscardForm (Selection->FormSet, Selection->Form, Scope);
1305 case BROWSER_ACTION_SUBMIT:
1306 Status =
SubmitForm (Selection->FormSet, Selection->Form, Scope);
1307 if (EFI_ERROR (Status)) {
1313 case BROWSER_ACTION_NONE:
1343 CurrentMenu = Selection->CurrentMenu;
1346 if (ParentMenu !=
NULL) {
1347 CopyMem (&Selection->FormSetGuid, &ParentMenu->FormSetGuid, sizeof (
EFI_GUID));
1348 Selection->Handle = ParentMenu->HiiHandle;
1349 Selection->FormId = ParentMenu->FormId;
1350 Selection->QuestionId = ParentMenu->QuestionId;
1352 Selection->FormId = CurrentMenu->FormId;
1353 Selection->QuestionId = CurrentMenu->QuestionId;
1356 Selection->Statement =
NULL;
1387 if (Statement->HiiValue.Value.ref.DevicePath != 0) {
1388 StringPtr =
GetToken (Statement->HiiValue.Value.ref.DevicePath, Selection->FormSet->HiiHandle);
1394 if ((Statement->HiiValue.Value.ref.DevicePath != 0) && (StringPtr !=
NULL) && (StringPtr[0] != L
'\0')) {
1395 if (Selection->Form->ModalForm) {
1402 if (mPathFromText !=
NULL) {
1403 DevicePath = mPathFromText->ConvertTextToDevicePath (StringPtr);
1404 if (DevicePath !=
NULL) {
1419 if (HiiHandle != Selection->Handle) {
1423 if (((gBrowserSettingScope == FormLevel) || (gBrowserSettingScope == FormSetLevel)) &&
1432 Selection->Action = UI_ACTION_REFRESH_FORMSET;
1433 Selection->Handle = HiiHandle;
1434 if (Selection->Handle ==
NULL) {
1442 CopyMem (&Selection->FormSetGuid, &Statement->HiiValue.Value.ref.FormSetGuid, sizeof (
EFI_GUID));
1443 Selection->FormId = Statement->HiiValue.Value.ref.FormId;
1444 Selection->QuestionId = Statement->HiiValue.Value.ref.QuestionId;
1445 }
else if (!
IsZeroGuid (&Statement->HiiValue.Value.ref.FormSetGuid)) {
1446 if (Selection->Form->ModalForm) {
1450 if (!
CompareGuid (&Statement->HiiValue.Value.ref.FormSetGuid, &Selection->FormSetGuid)) {
1454 if (((gBrowserSettingScope == FormLevel) || (gBrowserSettingScope == FormSetLevel)) &&
1463 Selection->Action = UI_ACTION_REFRESH_FORMSET;
1465 if (Selection->Handle ==
NULL) {
1473 CopyMem (&Selection->FormSetGuid, &Statement->HiiValue.Value.ref.FormSetGuid, sizeof (
EFI_GUID));
1474 Selection->FormId = Statement->HiiValue.Value.ref.FormId;
1475 Selection->QuestionId = Statement->HiiValue.Value.ref.QuestionId;
1476 }
else if (Statement->HiiValue.Value.ref.FormId != 0) {
1480 if (Statement->HiiValue.Value.ref.FormId != Selection->FormId) {
1488 RefForm =
IdToForm (Selection->FormSet, Statement->HiiValue.Value.ref.FormId);
1489 if ((RefForm !=
NULL) && (RefForm->SuppressExpression !=
NULL)) {
1499 Selection->FormId = Statement->HiiValue.Value.ref.FormId;
1500 Selection->QuestionId = Statement->HiiValue.Value.ref.QuestionId;
1501 }
else if (Statement->HiiValue.Value.ref.QuestionId != 0) {
1502 Selection->QuestionId = Statement->HiiValue.Value.ref.QuestionId;
1528 if (Question->QuestionConfig == 0) {
1535 ConfigResp =
GetToken (Question->QuestionConfig, Selection->FormSet->HiiHandle);
1536 if (ConfigResp ==
NULL) {
1537 return EFI_NOT_FOUND;
1538 }
else if (ConfigResp[0] == L
'\0') {
1545 Status = mHiiConfigRouting->RouteConfig (
1577 ASSERT (UserInput->Action != 0 || UserInput->SelectedStatement !=
NULL);
1582 gCurrentSelection->QuestionId = 0;
1583 if (UserInput->SelectedStatement !=
NULL) {
1585 ASSERT (Statement !=
NULL);
1591 gCurrentSelection->CurrentMenu->QuestionId = Statement->QuestionId;
1596 if (gCurrentSelection->CurrentMenu->QuestionId == 0) {
1597 mCurFakeQestId = Statement->FakeQuestionId;
1606 if (UserInput->Action != 0) {
1607 Status =
ProcessAction (UserInput->Action, UserInput->DefaultId);
1608 gCurrentSelection->Statement =
NULL;
1610 ASSERT (Statement !=
NULL);
1611 gCurrentSelection->Statement = Statement;
1612 switch (Statement->Operand) {
1613 case EFI_IFR_REF_OP:
1617 case EFI_IFR_ACTION_OP:
1624 case EFI_IFR_RESET_BUTTON_OP:
1633 switch (Statement->Operand) {
1634 case EFI_IFR_STRING_OP:
1635 DeleteString (Statement->HiiValue.Value.
string, gCurrentSelection->FormSet->HiiHandle);
1636 Statement->HiiValue.Value.
string = UserInput->InputValue.Value.string;
1637 CopyMem (Statement->BufferValue, UserInput->InputValue.Buffer, (
UINTN)UserInput->InputValue.BufferLen);
1638 FreePool (UserInput->InputValue.Buffer);
1641 case EFI_IFR_PASSWORD_OP:
1642 if (UserInput->InputValue.Buffer ==
NULL) {
1649 DeleteString (Statement->HiiValue.Value.
string, gCurrentSelection->FormSet->HiiHandle);
1650 Statement->HiiValue.Value.
string = UserInput->InputValue.Value.string;
1651 CopyMem (Statement->BufferValue, UserInput->InputValue.Buffer, (
UINTN)UserInput->InputValue.BufferLen);
1652 ZeroMem (UserInput->InputValue.Buffer, (
UINTN)UserInput->InputValue.BufferLen);
1653 FreePool (UserInput->InputValue.Buffer);
1657 if ((Statement->QuestionFlags & EFI_IFR_FLAG_CALLBACK) != 0) {
1658 PasswordCheck (
NULL, UserInput->SelectedStatement, (CHAR16 *)Statement->BufferValue);
1662 ZeroMem (Statement->BufferValue, (
UINTN)UserInput->InputValue.BufferLen);
1663 HiiSetString (gCurrentSelection->FormSet->HiiHandle, Statement->HiiValue.Value.
string, (CHAR16 *)Statement->BufferValue,
NULL);
1665 SetQuestionValue (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithHiiDriver);
1670 case EFI_IFR_ORDERED_LIST_OP:
1671 CopyMem (Statement->BufferValue, UserInput->InputValue.Buffer, UserInput->InputValue.BufferLen);
1707 CurrentMenu =
UiFindMenuList (gCurrentSelection->Handle, &gCurrentSelection->FormSetGuid, gCurrentSelection->FormId);
1708 if (CurrentMenu ==
NULL) {
1713 gCurrentSelection->Handle,
1714 &gCurrentSelection->FormSetGuid,
1715 gCurrentSelection->FormId,
1716 gCurrentSelection->QuestionId
1718 ASSERT (CurrentMenu !=
NULL);
1724 UiCopyMenuList (&gCurrentSelection->Form->FormViewListHead, &mPrivateData.FormBrowserEx2.FormViewHistoryHead);
1726 gCurrentSelection->CurrentMenu = CurrentMenu;
1728 if (gCurrentSelection->QuestionId == 0) {
1732 gCurrentSelection->QuestionId = CurrentMenu->QuestionId;
1736 if (EFI_ERROR (Status)) {
1742 ASSERT (gDisplayFormData.BrowserStatus == BROWSER_SUCCESS);
1743 Status = mFormDisplay->FormDisplay (&gDisplayFormData, &UserInput);
1744 if (EFI_ERROR (Status)) {
1785 IN UINT8 PackageType,
1792 mHiiPackageListUpdated =
TRUE;
1815 if (!FormSet->QuestionInited) {
1822 while (!
IsNull (&FormSet->FormListHead, Link)) {
1823 Form = FORM_BROWSER_FORM_FROM_LINK (Link);
1830 Link =
GetNextNode (&FormSet->FormListHead, Link);
1851 while (!
IsNull (&Form->StatementListHead, Link)) {
1852 Statement = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
1854 if (Statement->ValueChanged) {
1858 Link =
GetNextNode (&Form->StatementListHead, Link);
1880 IN BROWSER_SETTING_SCOPE SettingLevel
1885 BROWSER_SETTING_SCOPE Scope;
1887 CurrentMenu = Selection->CurrentMenu;
1888 Scope = FormSetLevel;
1895 if (ParentMenu !=
NULL) {
1896 if (
CompareGuid (&CurrentMenu->FormSetGuid, &ParentMenu->FormSetGuid)) {
1899 Scope = FormSetLevel;
1914 if (ParentMenu !=
NULL) {
1918 if (Scope == FormLevel) {
1919 Selection->Action = UI_ACTION_REFRESH_FORM;
1921 Selection->Action = UI_ACTION_REFRESH_FORMSET;
1922 CopyMem (&Selection->FormSetGuid, &ParentMenu->FormSetGuid, sizeof (
EFI_GUID));
1923 Selection->Handle = ParentMenu->HiiHandle;
1926 Selection->Statement =
NULL;
1928 Selection->FormId = ParentMenu->FormId;
1929 Selection->QuestionId = ParentMenu->QuestionId;
1934 CurrentMenu->QuestionId = 0;
1941 Selection->Action = UI_ACTION_EXIT;
1962 Status =
gBS->DisconnectController (DriverHandle,
NULL,
NULL);
1963 if (!EFI_ERROR (Status)) {
1992 IN EFI_BROWSER_ACTION Action,
1993 IN BOOLEAN SkipSaveOrDiscard
1998 EFI_BROWSER_ACTION_REQUEST ActionRequest;
2003 BOOLEAN SubmitFormIsRequired;
2004 BOOLEAN DiscardFormIsRequired;
2007 BROWSER_SETTING_SCOPE SettingLevel;
2009 UINT8 *BackUpBuffer;
2012 ConfigAccess = FormSet->ConfigAccess;
2013 SubmitFormIsRequired =
FALSE;
2014 SettingLevel = FormSetLevel;
2015 DiscardFormIsRequired =
FALSE;
2018 ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE;
2019 BackUpBuffer =
NULL;
2021 if (ConfigAccess ==
NULL) {
2026 while (!
IsNull (&Form->StatementListHead, Link)) {
2027 Statement = FORM_BROWSER_STATEMENT_FROM_LINK (Link);
2028 Link =
GetNextNode (&Form->StatementListHead, Link);
2033 if ((Question !=
NULL) && (Statement != Question)) {
2037 if ((Statement->QuestionFlags & EFI_IFR_FLAG_CALLBACK) != EFI_IFR_FLAG_CALLBACK) {
2044 if (Statement->Expression !=
NULL) {
2050 HiiValue = &Statement->HiiValue;
2052 if (HiiValue->Type == EFI_IFR_TYPE_BUFFER) {
2062 if (Action == EFI_BROWSER_ACTION_CHANGING) {
2063 if (HiiValue->Type == EFI_IFR_TYPE_BUFFER) {
2064 BackUpBuffer =
AllocateCopyPool (Statement->StorageWidth, Statement->BufferValue);
2065 ASSERT (BackUpBuffer !=
NULL);
2071 ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE;
2072 Status = ConfigAccess->Callback (
2075 Statement->QuestionId,
2080 if (!EFI_ERROR (Status)) {
2084 if (HiiValue->Type == EFI_IFR_TYPE_STRING) {
2088 ASSERT (
StrLen (
NewString) *
sizeof (CHAR16) <= Statement->StorageWidth);
2089 if (
StrLen (
NewString) *
sizeof (CHAR16) <= Statement->StorageWidth) {
2090 ZeroMem (Statement->BufferValue, Statement->StorageWidth);
2103 case EFI_BROWSER_ACTION_CHANGED:
2104 switch (ActionRequest) {
2105 case EFI_BROWSER_ACTION_REQUEST_RESET:
2106 DiscardFormIsRequired =
TRUE;
2107 gResetRequiredFormLevel =
TRUE;
2108 gResetRequiredSystemLevel =
TRUE;
2112 case EFI_BROWSER_ACTION_REQUEST_SUBMIT:
2113 SubmitFormIsRequired =
TRUE;
2117 case EFI_BROWSER_ACTION_REQUEST_EXIT:
2118 DiscardFormIsRequired =
TRUE;
2122 case EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT:
2123 SubmitFormIsRequired =
TRUE;
2124 SettingLevel = FormLevel;
2128 case EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT:
2129 DiscardFormIsRequired =
TRUE;
2130 SettingLevel = FormLevel;
2134 case EFI_BROWSER_ACTION_REQUEST_FORM_APPLY:
2135 SubmitFormIsRequired =
TRUE;
2136 SettingLevel = FormLevel;
2139 case EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD:
2140 DiscardFormIsRequired =
TRUE;
2141 SettingLevel = FormLevel;
2144 case EFI_BROWSER_ACTION_REQUEST_RECONNECT:
2145 gCallbackReconnect =
TRUE;
2148 case EFI_BROWSER_ACTION_REQUEST_QUESTION_APPLY:
2150 gCurrentSelection->FormSet,
2151 gCurrentSelection->Form,
2153 GetSetValueWithHiiDriver
2163 case EFI_BROWSER_ACTION_CHANGING:
2168 if (!EFI_ERROR (Status)) {
2173 IsQuestionValueChanged (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithEditBuffer);
2183 case EFI_BROWSER_ACTION_RETRIEVE:
2200 if ((Action == EFI_BROWSER_ACTION_CHANGING) && (Status == EFI_UNSUPPORTED)) {
2201 if (HiiValue->Type == EFI_IFR_TYPE_BUFFER) {
2202 CopyMem (Statement->BufferValue, BackUpBuffer, Statement->StorageWidth);
2210 InternalStatus =
ValueChangedValidation (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement);
2211 if (!EFI_ERROR (InternalStatus)) {
2216 IsQuestionValueChanged (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithEditBuffer);
2225 if ((Action == EFI_BROWSER_ACTION_CHANGING) && (Status != EFI_UNSUPPORTED)) {
2226 if (Statement->Storage !=
NULL) {
2228 }
else if ((Statement->QuestionFlags & EFI_IFR_FLAG_CALLBACK) != 0) {
2233 if (Action == EFI_BROWSER_ACTION_RETRIEVE) {
2237 if (Status == EFI_UNSUPPORTED) {
2245 if (BackUpBuffer !=
NULL) {
2254 if (Question !=
NULL) {
2259 if (gCallbackReconnect && (EFI_BROWSER_ACTION_CHANGED == Action)) {
2265 gCallbackReconnect =
FALSE;
2266 DiscardFormIsRequired =
TRUE;
2268 SubmitFormIsRequired =
TRUE;
2278 SettingLevel = FormSetLevel;
2281 if (SubmitFormIsRequired && !SkipSaveOrDiscard) {
2285 if (DiscardFormIsRequired && !SkipSaveOrDiscard) {
2317 EFI_BROWSER_ACTION_REQUEST ActionRequest;
2323 ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE;
2325 if (((Statement->QuestionFlags & EFI_IFR_FLAG_CALLBACK) != EFI_IFR_FLAG_CALLBACK) || (ConfigAccess ==
NULL)) {
2326 return EFI_UNSUPPORTED;
2329 HiiValue = &Statement->HiiValue;
2331 if (HiiValue->Type == EFI_IFR_TYPE_BUFFER) {
2338 ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE;
2339 Status = ConfigAccess->Callback (
2341 EFI_BROWSER_ACTION_RETRIEVE,
2342 Statement->QuestionId,
2347 if (!EFI_ERROR (Status) && (HiiValue->Type == EFI_IFR_TYPE_STRING)) {
2351 ASSERT (
StrLen (
NewString) *
sizeof (CHAR16) <= Statement->StorageWidth);
2352 if (
StrLen (
NewString) *
sizeof (CHAR16) <= Statement->StorageWidth) {
2353 ZeroMem (Statement->BufferValue, Statement->StorageWidth);
2389 ConfigAccess = Selection->FormSet->ConfigAccess;
2394 Status = mHiiDatabase->RegisterPackageNotify (
2396 EFI_HII_PACKAGE_FORMS,
2399 EFI_HII_DATABASE_NOTIFY_REMOVE_PACK,
2402 if (EFI_ERROR (Status)) {
2414 Selection->Action = UI_ACTION_REFRESH_FORM;
2432 if (mHiiPackageListUpdated) {
2433 Selection->Action = UI_ACTION_REFRESH_FORMSET;
2434 mHiiPackageListUpdated =
FALSE;
2441 if (Selection->FormId == 0) {
2445 Link =
GetFirstNode (&Selection->FormSet->FormListHead);
2447 Selection->Form = FORM_BROWSER_FORM_FROM_LINK (Link);
2448 Selection->FormId = Selection->Form->FormId;
2450 Selection->Form =
IdToForm (Selection->FormSet, Selection->FormId);
2453 if (Selection->Form ==
NULL) {
2457 Status = EFI_NOT_FOUND;
2464 if (Selection->Form->SuppressExpression !=
NULL) {
2465 if (
EvaluateExpressionList (Selection->Form->SuppressExpression,
TRUE, Selection->FormSet, Selection->Form) == ExpressSuppress) {
2470 Status = EFI_NOT_FOUND;
2480 if (((Selection->Handle != mCurrentHiiHandle) ||
2481 (!
CompareGuid (&Selection->FormSetGuid, &mCurrentFormSetGuid)) ||
2482 (Selection->FormId != mCurrentFormId)))
2487 mFinishRetrieveCall =
FALSE;
2492 mCurrentHiiHandle = Selection->Handle;
2493 CopyGuid (&mCurrentFormSetGuid, &Selection->FormSetGuid);
2494 mCurrentFormId = Selection->FormId;
2496 if (ConfigAccess !=
NULL) {
2498 if (EFI_ERROR (Status)) {
2505 if (mHiiPackageListUpdated) {
2506 Selection->Action = UI_ACTION_REFRESH_FORMSET;
2507 mHiiPackageListUpdated =
FALSE;
2517 if (EFI_ERROR (Status)) {
2521 if (!mFinishRetrieveCall) {
2525 mFinishRetrieveCall =
TRUE;
2527 if (ConfigAccess !=
NULL) {
2529 if (EFI_ERROR (Status)) {
2536 if (mHiiPackageListUpdated) {
2537 Selection->Action = UI_ACTION_REFRESH_FORMSET;
2538 mHiiPackageListUpdated =
FALSE;
2548 if (EFI_ERROR (Status)) {
2555 Statement = Selection->Statement;
2556 if (Statement !=
NULL) {
2557 if ((ConfigAccess !=
NULL) &&
2558 ((Statement->QuestionFlags & EFI_IFR_FLAG_CALLBACK) == EFI_IFR_FLAG_CALLBACK) &&
2559 (Statement->Operand != EFI_IFR_PASSWORD_OP))
2562 if (Statement->Operand == EFI_IFR_REF_OP) {
2566 if (!EFI_ERROR (Status)) {
2573 if (EFI_ERROR (Status)) {
2577 Selection->Handle = mCurrentHiiHandle;
2578 CopyMem (&Selection->FormSetGuid, &mCurrentFormSetGuid, sizeof (
EFI_GUID));
2579 Selection->FormId = mCurrentFormId;
2580 Selection->QuestionId = 0;
2581 Selection->Action = UI_ACTION_REFRESH_FORM;
2585 if (!EFI_ERROR (Status) &&
2586 (Statement->Operand != EFI_IFR_REF_OP) &&
2587 ((Statement->Storage ==
NULL) || ((Statement->Storage !=
NULL) && Statement->ValueChanged)))
2597 IsQuestionValueChanged (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithBuffer);
2604 if (!EFI_ERROR (Status) && (Statement->Operand != EFI_IFR_PASSWORD_OP)) {
2605 SetQuestionValue (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithEditBuffer);
2609 IsQuestionValueChanged (gCurrentSelection->FormSet, gCurrentSelection->Form, Statement, GetSetValueWithBuffer);
2618 (Statement->Storage ==
NULL))
2620 if ((Statement->QuestionFlags & EFI_IFR_FLAG_RESET_REQUIRED) != 0) {
2621 gResetRequiredFormLevel =
TRUE;
2622 gResetRequiredSystemLevel =
TRUE;
2625 if ((Statement->QuestionFlags & EFI_IFR_FLAG_RECONNECT_REQUIRED) != 0) {
2626 gFlagReconnect =
TRUE;
2634 if (gExitRequired) {
2635 switch (gBrowserSettingScope) {
2637 Selection->Action = UI_ACTION_EXIT;
2649 gExitRequired =
FALSE;
2656 if ((ConfigAccess !=
NULL) &&
2657 ((Selection->Action == UI_ACTION_EXIT) ||
2658 (Selection->Handle != mCurrentHiiHandle) ||
2659 (!
CompareGuid (&Selection->FormSetGuid, &mCurrentFormSetGuid)) ||
2660 (Selection->FormId != mCurrentFormId)))
2663 if (EFI_ERROR (Status)) {
2667 }
while (Selection->Action == UI_ACTION_REFRESH_FORM);
2673 if (EFI_ERROR (Status) || (Selection->Action == UI_ACTION_EXIT)) {
2674 mCurrentHiiHandle =
NULL;
2675 CopyGuid (&mCurrentFormSetGuid, &gZeroGuid);
2682 mHiiDatabase->UnregisterPackageNotify (
BOOLEAN EFIAPI IsNull(IN CONST LIST_ENTRY *List, IN CONST LIST_ENTRY *Node)
UINTN EFIAPI StrSize(IN CONST CHAR16 *String)
BOOLEAN EFIAPI IsListEmpty(IN CONST LIST_ENTRY *ListHead)
LIST_ENTRY *EFIAPI GetNextNode(IN CONST LIST_ENTRY *List, IN CONST LIST_ENTRY *Node)
LIST_ENTRY *EFIAPI GetFirstNode(IN CONST LIST_ENTRY *List)
LIST_ENTRY *EFIAPI RemoveEntryList(IN CONST LIST_ENTRY *Entry)
LIST_ENTRY *EFIAPI InitializeListHead(IN OUT LIST_ENTRY *ListHead)
#define INITIALIZE_LIST_HEAD_VARIABLE(ListHead)
UINTN EFIAPI StrLen(IN CONST CHAR16 *String)
LIST_ENTRY *EFIAPI InsertTailList(IN OUT LIST_ENTRY *ListHead, IN OUT LIST_ENTRY *Entry)
VOID *EFIAPI CopyMem(OUT VOID *DestinationBuffer, IN CONST VOID *SourceBuffer, IN UINTN Length)
BOOLEAN EFIAPI CompareGuid(IN CONST GUID *Guid1, IN CONST GUID *Guid2)
GUID *EFIAPI CopyGuid(OUT GUID *DestinationGuid, IN CONST GUID *SourceGuid)
VOID *EFIAPI ZeroMem(OUT VOID *Buffer, IN UINTN Length)
BOOLEAN EFIAPI IsZeroGuid(IN CONST GUID *Guid)
BOOLEAN EFIAPI IsDevicePathEnd(IN CONST VOID *Node)
VOID *EFIAPI AllocateZeroPool(IN UINTN AllocationSize)
VOID EFIAPI FreePool(IN VOID *Buffer)
VOID *EFIAPI AllocateCopyPool(IN UINTN AllocationSize, IN CONST VOID *Buffer)
EFI_STATUS EvaluateExpression(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN OUT FORM_EXPRESSION *Expression)
EXPRESS_RESULT EvaluateExpressionList(IN FORM_EXPRESSION_LIST *ExpList, IN BOOLEAN Evaluate, IN FORM_BROWSER_FORMSET *FormSet OPTIONAL, IN FORM_BROWSER_FORM *Form OPTIONAL)
FORM_BROWSER_FORM * IdToForm(IN FORM_BROWSER_FORMSET *FormSet, IN UINT16 FormId)
EFI_HII_HANDLE *EFIAPI HiiGetHiiHandles(IN CONST EFI_GUID *PackageListGuid OPTIONAL)
EFI_STRING_ID EFIAPI HiiSetString(IN EFI_HII_HANDLE HiiHandle, IN EFI_STRING_ID StringId OPTIONAL, IN CONST EFI_STRING String, IN CONST CHAR8 *SupportedLanguages OPTIONAL)
#define ASSERT_EFI_ERROR(StatusParameter)
UINTN EFI_HII_DATABASE_NOTIFY_TYPE
VOID *EFIAPI AllocatePool(IN UINTN AllocationSize)
EFI_HII_HANDLE DevicePathToHiiHandle(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, IN EFI_GUID *FormsetGuid)
EFI_STATUS ProcessQuestionConfig(IN UI_MENU_SELECTION *Selection, IN FORM_BROWSER_STATEMENT *Question)
VOID FreeDisplayFormData(VOID)
VOID FindParentFormSet(IN OUT UI_MENU_SELECTION *Selection)
BOOLEAN GetFormsetGuidFromHiiHandle(IN EFI_HII_HANDLE HiiHandle, IN EFI_GUID *FormSetGuid)
FORM_BROWSER_STATEMENT * GetBrowserStatement(IN FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement)
VOID EFIAPI RefreshEventNotifyForForm(IN EFI_EVENT Event, IN VOID *Context)
BOOLEAN FindNextMenu(IN OUT UI_MENU_SELECTION *Selection, IN BROWSER_SETTING_SCOPE SettingLevel)
VOID UpdateStatementStatusForFormSet(IN FORM_BROWSER_FORMSET *FormSet)
VOID InitializeDisplayFormData(VOID)
BOOLEAN IsNvUpdateRequiredForForm(IN FORM_BROWSER_FORM *Form)
VOID FreeRefreshEvent(VOID)
VOID UpdateStatementStatus(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN BROWSER_SETTING_SCOPE SettingScope)
VOID EFIAPI RefreshEventNotifyForStatement(IN EFI_EVENT Event, IN VOID *Context)
EFI_STATUS ProcessAction(IN UINT32 Action, IN UINT16 DefaultId)
VOID EFIAPI RefreshIntervalProcess(IN EFI_EVENT Event, IN VOID *Context)
VOID CreateRefreshEventForForm(IN FORM_BROWSER_FORM *Form)
EFI_STATUS ProcessRetrieveForQuestion(IN EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess, IN FORM_BROWSER_STATEMENT *Statement, IN FORM_BROWSER_FORMSET *FormSet)
VOID FreeHotkeyList(VOID)
EFI_HII_HANDLE FormSetGuidToHiiHandle(EFI_GUID *ComparingGuid)
VOID CreateRefreshEventForStatement(IN FORM_BROWSER_STATEMENT *Statement)
EFI_STATUS CheckConfigAccess(IN FORM_BROWSER_FORMSET *FormSet)
VOID FreeStatementData(LIST_ENTRY *StatementList)
BOOLEAN ReconnectController(IN EFI_HANDLE DriverHandle)
UINT32 ProcessQuestionExtraAttr(IN EFI_QUESTION_ID QuestionId)
EFI_STATUS SetupBrowser(IN OUT UI_MENU_SELECTION *Selection)
VOID InitializeDisplayStatement(IN OUT FORM_DISPLAY_ENGINE_STATEMENT *DisplayStatement, IN FORM_BROWSER_STATEMENT *Statement)
EFI_STATUS ProcessGotoOpCode(IN OUT FORM_BROWSER_STATEMENT *Statement, IN OUT UI_MENU_SELECTION *Selection)
EFI_STATUS EFIAPI FormUpdateNotify(IN UINT8 PackageType, IN CONST EFI_GUID *PackageGuid, IN CONST EFI_HII_PACKAGE_HEADER *Package, IN EFI_HII_HANDLE Handle, IN EFI_HII_DATABASE_NOTIFY_TYPE NotifyType)
VOID UpdateStatementStatusForForm(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form)
VOID UpdateDataChangedFlag(VOID)
EFI_STATUS ProcessCallBackFunction(IN OUT UI_MENU_SELECTION *Selection, IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN FORM_BROWSER_STATEMENT *Question, IN EFI_BROWSER_ACTION Action, IN BOOLEAN SkipSaveOrDiscard)
FORM_DISPLAY_ENGINE_STATEMENT * GetDisplayStatement(IN EFI_IFR_OP_HEADER *OpCode)
VOID UpdateHotkeyList(VOID)
VOID UpdateDisplayFormData(VOID)
BOOLEAN ProcessChangedData(IN OUT UI_MENU_SELECTION *Selection, IN BROWSER_SETTING_SCOPE Scope)
EFI_STATUS DisplayForm(VOID)
VOID AddStatementToDisplayForm(VOID)
BOOLEAN IsNvUpdateRequiredForFormSet(IN FORM_BROWSER_FORMSET *FormSet)
VOID UpdateStatement(IN OUT FORM_BROWSER_STATEMENT *Statement)
EFI_STATUS EvaluateFormExpressions(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form)
EFI_STATUS ProcessUserInput(IN USER_INPUT *UserInput)
EFI_STATUS SubmitForm(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN BROWSER_SETTING_SCOPE SettingScope)
EFI_STATUS DiscardForm(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN BROWSER_SETTING_SCOPE SettingScope)
FORM_ENTRY_INFO * UiFindMenuList(IN EFI_HII_HANDLE HiiHandle, IN EFI_GUID *FormSetGuid, IN UINT16 FormId)
VOID InitializeCurrentSetting(IN OUT FORM_BROWSER_FORMSET *FormSet)
FORM_ENTRY_INFO * UiFindParentMenu(IN FORM_ENTRY_INFO *CurrentMenu, IN BROWSER_SETTING_SCOPE SettingLevel)
EFI_STATUS LoadFormSetConfig(IN OUT UI_MENU_SELECTION *Selection, IN FORM_BROWSER_FORMSET *FormSet)
EFI_STATUS ValueChangedValidation(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN FORM_BROWSER_STATEMENT *Question)
BOOLEAN ValidateFormSet(FORM_BROWSER_FORMSET *FormSet)
EFI_STATUS DeleteString(IN EFI_STRING_ID StringId, IN EFI_HII_HANDLE HiiHandle)
EFI_STATUS GetQuestionDefault(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN FORM_BROWSER_STATEMENT *Question, IN UINT16 DefaultId)
BOOLEAN ValidateHiiHandle(EFI_HII_HANDLE HiiHandle)
EFI_STATUS ExtractDefault(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN UINT16 DefaultId, IN BROWSER_SETTING_SCOPE SettingScope, IN BROWSER_GET_DEFAULT_VALUE GetDefaultValueScope, IN BROWSER_STORAGE *Storage OPTIONAL, IN BOOLEAN RetrieveValueFirst, IN BOOLEAN SkipGetAltCfg)
EFI_STATUS EFIAPI PasswordCheck(IN FORM_DISPLAY_ENGINE_FORM *Form, IN FORM_DISPLAY_ENGINE_STATEMENT *Statement, IN EFI_STRING PasswordString OPTIONAL)
UINT32 PopupErrorMessage(IN UINT32 BrowserStatus, IN EFI_HII_HANDLE HiiHandle, IN EFI_IFR_OP_HEADER *OpCode OPTIONAL, IN CHAR16 *ErrorString)
FORM_ENTRY_INFO * UiAddMenuList(IN EFI_HII_HANDLE HiiHandle, IN EFI_GUID *FormSetGuid, IN UINT16 FormId, IN UINT16 QuestionId)
BOOLEAN IsQuestionValueChanged(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN OUT FORM_BROWSER_STATEMENT *Question, IN GET_SET_QUESTION_VALUE_WITH GetValueFrom)
EFI_STATUS SetQuestionValue(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN OUT FORM_BROWSER_STATEMENT *Question, IN GET_SET_QUESTION_VALUE_WITH SetValueTo)
EFI_STATUS GetQuestionValue(IN FORM_BROWSER_FORMSET *FormSet, IN FORM_BROWSER_FORM *Form, IN OUT FORM_BROWSER_STATEMENT *Question, IN GET_SET_QUESTION_VALUE_WITH GetValueFrom)
EFI_STRING_ID NewString(IN CHAR16 *String, IN EFI_HII_HANDLE HiiHandle)
VOID UiCopyMenuList(OUT LIST_ENTRY *NewMenuListHead, IN LIST_ENTRY *CurrentMenuListHead)
@ TypeValue
A flag that has some data following it with a space (IE "-a 1").
VOID EFIAPI EfiEventEmptyFunction(IN EFI_EVENT Event, IN VOID *Context)
EFI_STRING_ID string
EFI_IFR_TYPE_STRING, EFI_IFR_TYPE_ACTION.