// through HiiSetBrowserData function.\r
//\r
CallbackData->BmmFakeNvData.BootOptionDel[Index] = FALSE;\r
+ CallbackData->BmmOldFakeNVData.BootOptionDel[Index] = FALSE;\r
}\r
\r
HiiCreateCheckBoxOpCode (\r
// through HiiSetBrowserData function.\r
//\r
CallbackData->BmmFakeNvData.DriverOptionDel[Index] = FALSE;\r
+ CallbackData->BmmOldFakeNVData.DriverOptionDel[Index] = FALSE;\r
}\r
HiiCreateCheckBoxOpCode (\r
mStartOpCodeHandle,\r
UINT16 Index2;\r
UINT8 CheckFlags;\r
UINT8 *ConsoleCheck;\r
- UINT8 *OldConsoleCheck;\r
- UINTN ConsoleCheckSize;\r
EFI_QUESTION_ID QuestionIdBase;\r
UINT16 VariableOffsetBase;\r
\r
UpdatePageStart (CallbackData);\r
\r
ConsoleCheck = NULL;\r
- OldConsoleCheck = NULL;\r
QuestionIdBase = 0;\r
VariableOffsetBase = 0;\r
- ConsoleCheckSize = 0;\r
\r
switch (UpdatePageId) {\r
case FORM_CON_IN_ID:\r
ConsoleCheck = &CallbackData->BmmFakeNvData.ConsoleInCheck[0];\r
- OldConsoleCheck = &CallbackData->BmmOldFakeNVData.ConsoleInCheck[0];\r
- ConsoleCheckSize = sizeof (CallbackData->BmmFakeNvData.ConsoleInCheck);\r
QuestionIdBase = CON_IN_DEVICE_QUESTION_ID;\r
VariableOffsetBase = CON_IN_DEVICE_VAR_OFFSET;\r
break;\r
\r
case FORM_CON_OUT_ID:\r
ConsoleCheck = &CallbackData->BmmFakeNvData.ConsoleOutCheck[0];\r
- OldConsoleCheck = &CallbackData->BmmOldFakeNVData.ConsoleOutCheck[0];\r
- ConsoleCheckSize = sizeof (CallbackData->BmmFakeNvData.ConsoleOutCheck);\r
QuestionIdBase = CON_OUT_DEVICE_QUESTION_ID;\r
VariableOffsetBase = CON_OUT_DEVICE_VAR_OFFSET;\r
break;\r
\r
case FORM_CON_ERR_ID:\r
ConsoleCheck = &CallbackData->BmmFakeNvData.ConsoleErrCheck[0];\r
- OldConsoleCheck = &CallbackData->BmmOldFakeNVData.ConsoleErrCheck[0];\r
- ConsoleCheckSize = sizeof (CallbackData->BmmFakeNvData.ConsoleErrCheck);\r
QuestionIdBase = CON_ERR_DEVICE_QUESTION_ID;\r
VariableOffsetBase = CON_ERR_DEVICE_VAR_OFFSET;\r
break;\r
(UINT16) (VariableOffsetBase + Index),\r
NewMenuEntry->DisplayStringToken,\r
NewMenuEntry->HelpStringToken,\r
- 0,\r
+ EFI_IFR_FLAG_CALLBACK,\r
CheckFlags,\r
NULL\r
);\r
(UINT16) (VariableOffsetBase + Index),\r
NewMenuEntry->DisplayStringToken,\r
NewMenuEntry->HelpStringToken,\r
- 0,\r
+ EFI_IFR_FLAG_CALLBACK,\r
CheckFlags,\r
NULL\r
);\r
Index++;\r
}\r
\r
- CopyMem (OldConsoleCheck, ConsoleCheck, ConsoleCheckSize);\r
-\r
UpdatePageEnd (CallbackData);\r
}\r
\r
switch (UpdatePageId) { \r
\r
case FORM_BOOT_CHG_ID:\r
- GetBootOrder (CallbackData);\r
+ //\r
+ // If the BootOptionOrder in the BmmFakeNvData are same with the date in the BmmOldFakeNVData,\r
+ // means all Boot Options has been save in BootOptionMenu, we can get the date from the menu.\r
+ // else means browser maintains some uncommitted date which are not saved in BootOptionMenu,\r
+ // so we should not get the data from BootOptionMenu to show it.\r
+ //\r
+ if (CompareMem (CallbackData->BmmFakeNvData.BootOptionOrder, CallbackData->BmmOldFakeNVData.BootOptionOrder, sizeof (CallbackData->BmmFakeNvData.BootOptionOrder)) == 0) {\r
+ GetBootOrder (CallbackData);\r
+ }\r
OptionOrder = CallbackData->BmmFakeNvData.BootOptionOrder;\r
QuestionId = BOOT_OPTION_ORDER_QUESTION_ID;\r
VarOffset = BOOT_OPTION_ORDER_VAR_OFFSET;\r
break;\r
\r
case FORM_DRV_CHG_ID:\r
- GetDriverOrder (CallbackData);\r
+ //\r
+ // If the DriverOptionOrder in the BmmFakeNvData are same with the date in the BmmOldFakeNVData,\r
+ // means all Driver Options has been save in DriverOptionMenu, we can get the DriverOptionOrder from the menu.\r
+ // else means browser maintains some uncommitted date which are not saved in DriverOptionMenu,\r
+ // so we should not get the data from DriverOptionMenu to show it.\r
+ //\r
+ if (CompareMem (CallbackData->BmmFakeNvData.DriverOptionOrder, CallbackData->BmmOldFakeNVData.DriverOptionOrder, sizeof (CallbackData->BmmFakeNvData.DriverOptionOrder)) == 0) {\r
+ GetDriverOrder (CallbackData);\r
+ }\r
OptionOrder = CallbackData->BmmFakeNvData.DriverOptionOrder;\r
QuestionId = DRIVER_OPTION_ORDER_QUESTION_ID;\r
VarOffset = DRIVER_OPTION_ORDER_VAR_OFFSET;\r
//\r
UnicodeValueToString (ModeString, 0, Col, 0);\r
PStr = &ModeString[0];\r
- StrnCatS (PStr, sizeof (ModeString) / sizeof (ModeString[0]), L" x ", StrLen(L" x ") + 1);\r
+ StrnCatS (PStr, ARRAY_SIZE (ModeString), L" x ", StrLen(L" x ") + 1);\r
PStr = PStr + StrLen (PStr);\r
UnicodeValueToString (PStr , 0, Row, 0);\r
\r
(UINT16) (COM_BAUD_RATE_VAR_OFFSET + CurrentTerminal),\r
STRING_TOKEN (STR_COM_BAUD_RATE),\r
STRING_TOKEN (STR_COM_BAUD_RATE),\r
- 0,\r
+ EFI_IFR_FLAG_CALLBACK,\r
EFI_IFR_NUMERIC_SIZE_1,\r
OptionsOpCodeHandle,\r
NULL\r
OptionsOpCodeHandle = HiiAllocateOpCodeHandle ();\r
ASSERT (OptionsOpCodeHandle != NULL);\r
\r
- for (Index = 0; Index < sizeof (DataBitsList) / sizeof (DataBitsList[0]); Index++) {\r
+ for (Index = 0; Index < ARRAY_SIZE (DataBitsList); Index++) {\r
CheckFlags = 0;\r
\r
if (DataBitsList[Index].Value == 8) {\r
(UINT16) (COM_DATA_RATE_VAR_OFFSET + CurrentTerminal),\r
STRING_TOKEN (STR_COM_DATA_BITS),\r
STRING_TOKEN (STR_COM_DATA_BITS),\r
- 0,\r
+ EFI_IFR_FLAG_CALLBACK,\r
EFI_IFR_NUMERIC_SIZE_1,\r
OptionsOpCodeHandle,\r
NULL\r
OptionsOpCodeHandle = HiiAllocateOpCodeHandle ();\r
ASSERT (OptionsOpCodeHandle != NULL);\r
\r
- for (Index = 0; Index < sizeof (ParityList) / sizeof (ParityList[0]); Index++) {\r
+ for (Index = 0; Index < ARRAY_SIZE (ParityList); Index++) {\r
CheckFlags = 0;\r
if (ParityList[Index].Value == NoParity) {\r
CheckFlags |= EFI_IFR_OPTION_DEFAULT;\r
(UINT16) (COM_PARITY_VAR_OFFSET + CurrentTerminal),\r
STRING_TOKEN (STR_COM_PARITY),\r
STRING_TOKEN (STR_COM_PARITY),\r
- 0,\r
+ EFI_IFR_FLAG_CALLBACK,\r
EFI_IFR_NUMERIC_SIZE_1,\r
OptionsOpCodeHandle,\r
NULL\r
OptionsOpCodeHandle = HiiAllocateOpCodeHandle ();\r
ASSERT (OptionsOpCodeHandle != NULL);\r
\r
- for (Index = 0; Index < sizeof (StopBitsList) / sizeof (StopBitsList[0]); Index++) {\r
+ for (Index = 0; Index < ARRAY_SIZE (StopBitsList); Index++) {\r
CheckFlags = 0;\r
if (StopBitsList[Index].Value == OneStopBit) {\r
CheckFlags |= EFI_IFR_OPTION_DEFAULT;\r
(UINT16) (COM_STOP_BITS_VAR_OFFSET + CurrentTerminal),\r
STRING_TOKEN (STR_COM_STOP_BITS),\r
STRING_TOKEN (STR_COM_STOP_BITS),\r
- 0,\r
+ EFI_IFR_FLAG_CALLBACK,\r
EFI_IFR_NUMERIC_SIZE_1,\r
OptionsOpCodeHandle,\r
NULL\r
OptionsOpCodeHandle = HiiAllocateOpCodeHandle ();\r
ASSERT (OptionsOpCodeHandle != NULL);\r
\r
- for (Index = 0; Index < sizeof (TerminalType) / sizeof (TerminalType[0]); Index++) {\r
+ for (Index = 0; Index < ARRAY_SIZE (TerminalType); Index++) {\r
CheckFlags = 0;\r
if (Index == 0) {\r
CheckFlags |= EFI_IFR_OPTION_DEFAULT;\r
(UINT16) (COM_TERMINAL_VAR_OFFSET + CurrentTerminal),\r
STRING_TOKEN (STR_COM_TERMI_TYPE),\r
STRING_TOKEN (STR_COM_TERMI_TYPE),\r
- 0,\r
+ EFI_IFR_FLAG_CALLBACK,\r
EFI_IFR_NUMERIC_SIZE_1,\r
OptionsOpCodeHandle,\r
NULL\r
OptionsOpCodeHandle = HiiAllocateOpCodeHandle ();\r
ASSERT (OptionsOpCodeHandle != NULL);\r
\r
- for (Index = 0; Index < sizeof (mFlowControlType) / sizeof (mFlowControlType[0]); Index++) {\r
+ for (Index = 0; Index < ARRAY_SIZE (mFlowControlType); Index++) {\r
CheckFlags = 0;\r
if (Index == 0) {\r
CheckFlags |= EFI_IFR_OPTION_DEFAULT;\r
(UINT16) (COM_FLOWCONTROL_VAR_OFFSET + CurrentTerminal),\r
STRING_TOKEN (STR_COM_FLOW_CONTROL),\r
STRING_TOKEN (STR_COM_FLOW_CONTROL),\r
- 0,\r
+ EFI_IFR_FLAG_CALLBACK,\r
EFI_IFR_NUMERIC_SIZE_1,\r
OptionsOpCodeHandle,\r
NULL\r
if (!CallbackData->BmmFakeNvData.BootOptionChanged) {\r
ZeroMem (CallbackData->BmmFakeNvData.BootOptionalData, sizeof (CallbackData->BmmFakeNvData.BootOptionalData));\r
ZeroMem (CallbackData->BmmFakeNvData.BootDescriptionData, sizeof (CallbackData->BmmFakeNvData.BootDescriptionData));\r
+ ZeroMem (CallbackData->BmmOldFakeNVData.BootOptionalData, sizeof (CallbackData->BmmOldFakeNVData.BootOptionalData));\r
+ ZeroMem (CallbackData->BmmOldFakeNVData.BootDescriptionData, sizeof (CallbackData->BmmOldFakeNVData.BootDescriptionData));\r
}\r
} else if (FormId == FORM_DRV_ADD_FILE_ID){\r
if (!CallbackData->BmmFakeNvData.DriverOptionChanged) {\r
ZeroMem (CallbackData->BmmFakeNvData.DriverOptionalData, sizeof (CallbackData->BmmFakeNvData.DriverOptionalData));\r
ZeroMem (CallbackData->BmmFakeNvData.DriverDescriptionData, sizeof (CallbackData->BmmFakeNvData.DriverDescriptionData));\r
+ ZeroMem (CallbackData->BmmOldFakeNVData.DriverOptionalData, sizeof (CallbackData->BmmOldFakeNVData.DriverOptionalData));\r
+ ZeroMem (CallbackData->BmmOldFakeNVData.DriverDescriptionData, sizeof (CallbackData->BmmOldFakeNVData.DriverDescriptionData));\r
}\r
}\r
\r