\r
case EFI_BROWSER_ACTION_RETRIEVE:\r
{\r
- if (QuestionId == 0x1248) {\r
- {\r
- if (Type != EFI_IFR_TYPE_REF) {\r
- return EFI_INVALID_PARAMETER;\r
+ switch (QuestionId ) {\r
+ case 0x1248:\r
+ if (Type != EFI_IFR_TYPE_REF) {\r
+ return EFI_INVALID_PARAMETER;\r
+ }\r
+ Value->ref.FormId = 0x3;\r
+ break;\r
+\r
+ case 0x5678:\r
+ case 0x1247:\r
+ //\r
+ // We will reach here once the Question is refreshed\r
+ //\r
+\r
+ //\r
+ // Initialize the container for dynamic opcodes\r
+ //\r
+ StartOpCodeHandle = HiiAllocateOpCodeHandle ();\r
+ ASSERT (StartOpCodeHandle != NULL);\r
+\r
+ //\r
+ // Create Hii Extend Label OpCode as the start opcode\r
+ //\r
+ StartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));\r
+ StartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;\r
+ if (QuestionId == 0x5678) {\r
+ StartLabel->Number = LABEL_UPDATE2;\r
+ FormId = 0x03;\r
+ PrivateData->Configuration.DynamicRefresh++;\r
+ } else if (QuestionId == 0x1247 ) {\r
+ StartLabel->Number = LABEL_UPDATE3;\r
+ FormId = 0x06;\r
+ PrivateData->Configuration.RefreshGuidCount++;\r
+ }\r
+\r
+ HiiCreateActionOpCode (\r
+ StartOpCodeHandle, // Container for dynamic created opcodes\r
+ 0x1237, // Question ID\r
+ STRING_TOKEN(STR_EXIT_TEXT), // Prompt text\r
+ STRING_TOKEN(STR_EXIT_TEXT), // Help text\r
+ EFI_IFR_FLAG_CALLBACK, // Question flag\r
+ 0 // Action String ID\r
+ );\r
+ \r
+ HiiUpdateForm (\r
+ PrivateData->HiiHandle[0], // HII handle\r
+ &gDriverSampleFormSetGuid, // Formset GUID\r
+ FormId, // Form ID\r
+ StartOpCodeHandle, // Label for where to insert opcodes\r
+ NULL // Insert data\r
+ );\r
+\r
+ HiiFreeOpCodeHandle (StartOpCodeHandle);\r
+\r
+ //\r
+ // Refresh the Question value\r
+ //\r
+ Status = gRT->SetVariable(\r
+ VariableName,\r
+ &gDriverSampleFormSetGuid,\r
+ EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
+ sizeof (DRIVER_SAMPLE_CONFIGURATION),\r
+ &PrivateData->Configuration\r
+ );\r
+\r
+ if (QuestionId == 0x5678) {\r
+ //\r
+ // Update uncommitted data of Browser\r
+ //\r
+ EfiData = AllocateZeroPool (sizeof (MY_EFI_VARSTORE_DATA));\r
+ ASSERT (EfiData != NULL);\r
+ if (HiiGetBrowserData (&gDriverSampleFormSetGuid, MyEfiVar, sizeof (MY_EFI_VARSTORE_DATA), (UINT8 *) EfiData)) {\r
+ EfiData->Field8 = 111;\r
+ HiiSetBrowserData (\r
+ &gDriverSampleFormSetGuid,\r
+ MyEfiVar,\r
+ sizeof (MY_EFI_VARSTORE_DATA),\r
+ (UINT8 *) EfiData,\r
+ NULL\r
+ );\r
}\r
- \r
- Value->ref.FormId = 0x3;\r
+ FreePool (EfiData);\r
}\r
+ break;\r
}\r
}\r
break;\r
HiiFreeOpCodeHandle (EndOpCodeHandle);\r
break;\r
\r
- case 0x5678:\r
- case 0x1247:\r
- //\r
- // We will reach here once the Question is refreshed\r
- //\r
-\r
- //\r
- // Initialize the container for dynamic opcodes\r
- //\r
- StartOpCodeHandle = HiiAllocateOpCodeHandle ();\r
- ASSERT (StartOpCodeHandle != NULL);\r
-\r
- //\r
- // Create Hii Extend Label OpCode as the start opcode\r
- //\r
- StartLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));\r
- StartLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;\r
- if (QuestionId == 0x5678) {\r
- StartLabel->Number = LABEL_UPDATE2;\r
- FormId = 0x03;\r
- PrivateData->Configuration.DynamicRefresh++;\r
- } else if (QuestionId == 0x1247 ) {\r
- StartLabel->Number = LABEL_UPDATE3;\r
- FormId = 0x06;\r
- PrivateData->Configuration.RefreshGuidCount++;\r
- }\r
-\r
- HiiCreateActionOpCode (\r
- StartOpCodeHandle, // Container for dynamic created opcodes\r
- 0x1237, // Question ID\r
- STRING_TOKEN(STR_EXIT_TEXT), // Prompt text\r
- STRING_TOKEN(STR_EXIT_TEXT), // Help text\r
- EFI_IFR_FLAG_CALLBACK, // Question flag\r
- 0 // Action String ID\r
- );\r
-\r
- HiiUpdateForm (\r
- PrivateData->HiiHandle[0], // HII handle\r
- &gDriverSampleFormSetGuid, // Formset GUID\r
- FormId, // Form ID\r
- StartOpCodeHandle, // Label for where to insert opcodes\r
- NULL // Insert data\r
- );\r
-\r
- HiiFreeOpCodeHandle (StartOpCodeHandle);\r
-\r
- //\r
- // Refresh the Question value\r
- //\r
- Status = gRT->SetVariable(\r
- VariableName,\r
- &gDriverSampleFormSetGuid,\r
- EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
- sizeof (DRIVER_SAMPLE_CONFIGURATION),\r
- &PrivateData->Configuration\r
- );\r
-\r
- if (QuestionId == 0x5678) {\r
- //\r
- // Update uncommitted data of Browser\r
- //\r
- EfiData = AllocateZeroPool (sizeof (MY_EFI_VARSTORE_DATA));\r
- ASSERT (EfiData != NULL);\r
- if (HiiGetBrowserData (&gDriverSampleFormSetGuid, MyEfiVar, sizeof (MY_EFI_VARSTORE_DATA), (UINT8 *) EfiData)) {\r
- EfiData->Field8 = 111;\r
- HiiSetBrowserData (\r
- &gDriverSampleFormSetGuid,\r
- MyEfiVar,\r
- sizeof (MY_EFI_VARSTORE_DATA),\r
- (UINT8 *) EfiData,\r
- NULL\r
- );\r
- }\r
- FreePool (EfiData);\r
- }\r
- break;\r
-\r
case 0x2000:\r
//\r
// Only used to update the state.\r