OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest\r
)\r
{\r
- DEVICE_MANAGER_CALLBACK_DATA *PrivateData;\r
-\r
if ((Value == NULL) || (ActionRequest == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- PrivateData = DEVICE_MANAGER_CALLBACK_DATA_FROM_THIS (This);\r
\r
- switch (QuestionId) {\r
- case DEVICE_MANAGER_KEY_VBIOS:\r
- PrivateData->VideoBios = Value->u8;\r
- gRT->SetVariable (\r
- L"VBIOS",\r
- &gEfiGenericPlatformVariableGuid,\r
- EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_NON_VOLATILE,\r
- sizeof (UINT8),\r
- &PrivateData->VideoBios\r
- );\r
+ gCallbackKey = QuestionId;\r
\r
- //\r
- // Tell browser not to ask for confirmation of changes,\r
- // since we have already applied.\r
- //\r
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_SUBMIT;\r
- break;\r
+ //\r
+ // Request to exit SendForm(), so as to switch to selected form\r
+ //\r
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_EXIT;\r
\r
- default:\r
- //\r
- // The key corresponds the Handle Index which was requested to be displayed\r
- //\r
- gCallbackKey = QuestionId;\r
-\r
- //\r
- // Request to exit SendForm(), so as to switch to selected form\r
- //\r
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_EXIT;\r
- break;\r
- }\r
\r
return EFI_SUCCESS;\r
}\r
EFI_HII_UPDATE_DATA UpdateData[MENU_ITEM_NUM];\r
EFI_STRING_ID Token;\r
EFI_STRING_ID TokenHelp;\r
- IFR_OPTION *IfrOptionList;\r
- UINT8 *VideoOption;\r
- UINTN VideoOptionSize;\r
EFI_HII_HANDLE *HiiHandles;\r
UINTN HandleBufferLength;\r
UINTN NumberOfHiiHandles;\r
EFI_BROWSER_ACTION_REQUEST ActionRequest;\r
EFI_HII_PACKAGE_LIST_HEADER *PackageList;\r
\r
- IfrOptionList = NULL;\r
- VideoOption = NULL;\r
HiiHandles = NULL;\r
HandleBufferLength = 0;\r
\r
);\r
}\r
\r
- //\r
- // Add oneof for video BIOS selection\r
- //\r
- VideoOption = BdsLibGetVariableAndSize (\r
- L"VBIOS",\r
- &gEfiGenericPlatformVariableGuid,\r
- &VideoOptionSize\r
- );\r
- if (VideoOption == NULL) {\r
- gDeviceManagerPrivate.VideoBios = 0;\r
- } else {\r
- gDeviceManagerPrivate.VideoBios = VideoOption[0];\r
- FreePool (VideoOption);\r
- }\r
-\r
- ASSERT (gDeviceManagerPrivate.VideoBios <= 1);\r
-\r
- IfrOptionList = AllocatePool (2 * sizeof (IFR_OPTION));\r
- ASSERT (IfrOptionList != NULL);\r
- IfrOptionList[0].Flags = 0;\r
- IfrOptionList[0].StringToken = STRING_TOKEN (STR_ONE_OF_PCI);\r
- IfrOptionList[0].Value.u8 = 0;\r
- IfrOptionList[1].Flags = 0;\r
- IfrOptionList[1].StringToken = STRING_TOKEN (STR_ONE_OF_AGP);\r
- IfrOptionList[1].Value.u8 = 1;\r
- IfrOptionList[gDeviceManagerPrivate.VideoBios].Flags |= EFI_IFR_OPTION_DEFAULT;\r
-\r
- UpdateData[0].Offset = 0;\r
- CreateOneOfOpCode (\r
- DEVICE_MANAGER_KEY_VBIOS,\r
- 0,\r
- 0,\r
- STRING_TOKEN (STR_ONE_OF_VBIOS),\r
- STRING_TOKEN (STR_ONE_OF_VBIOS_HELP),\r
- EFI_IFR_FLAG_CALLBACK,\r
- EFI_IFR_NUMERIC_SIZE_1,\r
- IfrOptionList,\r
- 2,\r
- &UpdateData[0]\r
- );\r
-\r
IfrLibUpdateForm (\r
HiiHandle,\r
&mDeviceManagerGuid,\r