EFI_INPUT_KEY Key;\r
PLAT_OVER_MNGR_DATA *FakeNvData;\r
\r
+ if ((Action != EFI_BROWSER_ACTION_CHANGING) && (Action != EFI_BROWSER_ACTION_CHANGED)) {\r
+ //\r
+ // All other action return unsupported.\r
+ //\r
+ return EFI_UNSUPPORTED;\r
+ }\r
+\r
+ Private = EFI_CALLBACK_INFO_FROM_THIS (This);\r
+ FakeNvData = &Private->FakeNvData;\r
+ if (!HiiGetBrowserData (&gPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *) FakeNvData)) {\r
+ return EFI_NOT_FOUND;\r
+ }\r
+\r
if (Action == EFI_BROWSER_ACTION_CHANGING) {\r
- Private = EFI_CALLBACK_INFO_FROM_THIS (This);\r
- FakeNvData = &Private->FakeNvData;\r
- if (!HiiGetBrowserData (&gPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *) FakeNvData)) {\r
- return EFI_NOT_FOUND;\r
+ if (Value == NULL) {\r
+ return EFI_INVALID_PARAMETER;\r
}\r
-\r
- if (KeyValue == KEY_VALUE_DEVICE_REFRESH ||\r
- KeyValue == KEY_VALUE_DEVICE_FILTER ||\r
- KeyValue == KEY_VALUE_DRIVER_GOTO_PREVIOUS\r
- ) {\r
+ \r
+ if (KeyValue == KEY_VALUE_DRIVER_GOTO_PREVIOUS) {\r
UpdateDeviceSelectPage (Private, KeyValue, FakeNvData);\r
//\r
// Update page title string\r
}\r
}\r
\r
- if (KeyValue == KEY_VALUE_ORDER_SAVE_AND_EXIT) {\r
- Status = CommintChanges (Private, KeyValue, FakeNvData);\r
- *ActionRequest = EFI_BROWSER_ACTION_REQUEST_SUBMIT;\r
- if (EFI_ERROR (Status)) {\r
- CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, L"Single Override Info too large, Saving Error!", NULL);\r
- return EFI_DEVICE_ERROR;\r
- }\r
- }\r
-\r
if (KeyValue == KEY_VALUE_DEVICE_CLEAR) {\r
//\r
// Deletes all environment variable(s) that contain the override mappings info\r
Status = SaveOverridesMapping (&mMappingDataBase);\r
UpdateDeviceSelectPage (Private, KeyValue, FakeNvData);\r
}\r
- //\r
- // Pass changed uncommitted data back to Form Browser\r
- //\r
- HiiSetBrowserData (&gPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *) FakeNvData, NULL);\r
+ } else if (Action == EFI_BROWSER_ACTION_CHANGED) {\r
+ switch (KeyValue) {\r
+ case KEY_VALUE_DEVICE_REFRESH:\r
+ case KEY_VALUE_DEVICE_FILTER:\r
+ UpdateDeviceSelectPage (Private, KeyValue, FakeNvData);\r
+ //\r
+ // Update page title string\r
+ //\r
+ NewStringToken = STRING_TOKEN (STR_TITLE);\r
+ if (HiiSetString (Private->RegisteredHandle, NewStringToken, L"First, Select the controller by device path", NULL) == 0) {\r
+ ASSERT (FALSE);\r
+ }\r
+ break;\r
+ \r
+ case KEY_VALUE_ORDER_SAVE_AND_EXIT:\r
+ Status = CommintChanges (Private, KeyValue, FakeNvData);\r
+ *ActionRequest = EFI_BROWSER_ACTION_REQUEST_SUBMIT;\r
+ if (EFI_ERROR (Status)) {\r
+ CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, L"Single Override Info too large, Saving Error!", NULL);\r
+ return EFI_DEVICE_ERROR;\r
+ }\r
+ break;\r
\r
- return EFI_SUCCESS;\r
- } \r
+ default:\r
+ break;\r
+ }\r
+ }\r
\r
//\r
- // All other action return unsupported.\r
+ // Pass changed uncommitted data back to Form Browser\r
//\r
- return EFI_UNSUPPORTED;\r
+ HiiSetBrowserData (&gPlatformOverridesManagerGuid, mVariableName, sizeof (PLAT_OVER_MNGR_DATA), (UINT8 *) FakeNvData, NULL);\r
+\r
+ return EFI_SUCCESS;\r
}\r
\r
/**\r