\r
Status = EFI_SUCCESS;\r
}\r
+ SendDiscardInfoToDriver (FormSet,Form);\r
} else {\r
Status = EFI_UNSUPPORTED;\r
}\r
BOOLEAN HasInserted;\r
FORM_BROWSER_STATEMENT *Question;\r
BOOLEAN SubmitFormSetFail;\r
+ BOOLEAN DiscardChange;\r
\r
HasInserted = FALSE;\r
SubmitFormSetFail = FALSE;\r
+ DiscardChange = FALSE;\r
\r
if (!IsNvUpdateRequiredForFormSet (FormSet)) {\r
return EFI_SUCCESS;\r
// If not in system level, just handl the save failed storage here.\r
//\r
if (ConfirmSaveFail (Form->FormTitle, FormSet->HiiHandle) == BROWSER_ACTION_DISCARD) {\r
+ DiscardChange = TRUE;\r
Link = GetFirstNode (&FormSet->SaveFailStorageListHead);\r
while (!IsNull (&FormSet->SaveFailStorageListHead, Link)) {\r
FormSetStorage = FORMSET_STORAGE_FROM_SAVE_FAIL_LINK (Link);\r
}\r
}\r
\r
+ //\r
+ // If user discard the change, send the discard info to driver.\r
+ //\r
+ if (DiscardChange) {\r
+ Link = GetFirstNode (&FormSet->FormListHead);\r
+ while (!IsNull (&FormSet->FormListHead, Link)) {\r
+ Form = FORM_BROWSER_FORM_FROM_LINK (Link);\r
+ Link = GetNextNode (&FormSet->FormListHead, Link);\r
+ //\r
+ // Call callback with Changed type to inform the driver.\r
+ //\r
+ SendDiscardInfoToDriver (FormSet, Form);\r
+ }\r
+ }\r
+\r
//\r
// 5. Update the NV flag.\r
// \r
}\r
}\r
\r
+ Link = GetFirstNode (&LocalFormSet->FormListHead);\r
+ while (!IsNull (&LocalFormSet->FormListHead, Link)) {\r
+ Form = FORM_BROWSER_FORM_FROM_LINK (Link);\r
+ Link = GetNextNode (&LocalFormSet->FormListHead, Link);\r
+ //\r
+ // Call callback with Changed type to inform the driver.\r
+ //\r
+ SendDiscardInfoToDriver (LocalFormSet, Form);\r
+ }\r
+\r
if (!IsHiiHandleInBrowserContext (LocalFormSet->HiiHandle)) {\r
CleanBrowserStorage(LocalFormSet);\r
RemoveEntryList (&LocalFormSet->Link);\r