//\r
// Get L"ConOut", L"ConIn" and L"ErrOut" from the Var\r
//\r
- OutDevicePath = GetEfiGlobalVariable (L"ConOut");\r
- InpDevicePath = GetEfiGlobalVariable (L"ConIn");\r
- ErrDevicePath = GetEfiGlobalVariable (L"ErrOut");\r
+ GetEfiGlobalVariable2 (L"ConOut", (VOID**)&OutDevicePath, NULL);\r
+ GetEfiGlobalVariable2 (L"ConIn", (VOID**)&InpDevicePath, NULL);\r
+ GetEfiGlobalVariable2 (L"ErrOut", (VOID**)&ErrDevicePath, NULL);\r
if (OutDevicePath != NULL) {\r
UpdateComAttributeFromVariable (OutDevicePath);\r
}\r
switch (ConsoleMenuType) {\r
case BM_CONSOLE_IN_CONTEXT_SELECT:\r
ConsoleMenu = &ConsoleInpMenu;\r
- DevicePath = GetEfiGlobalVariable (L"ConIn");\r
- AllDevicePath = GetEfiGlobalVariable (L"ConInDev");\r
+ GetEfiGlobalVariable2 (L"ConIn", (VOID**)&DevicePath, NULL);\r
+ GetEfiGlobalVariable2 (L"ConInDev", (VOID**)&AllDevicePath, NULL);\r
break;\r
\r
case BM_CONSOLE_OUT_CONTEXT_SELECT:\r
ConsoleMenu = &ConsoleOutMenu;\r
- DevicePath = GetEfiGlobalVariable (L"ConOut");\r
- AllDevicePath = GetEfiGlobalVariable (L"ConOutDev");\r
+ GetEfiGlobalVariable2 (L"ConOut", (VOID**)&DevicePath, NULL);\r
+ GetEfiGlobalVariable2 (L"ConOutDev", (VOID**)&AllDevicePath, NULL);\r
break;\r
\r
case BM_CONSOLE_ERR_CONTEXT_SELECT:\r
ConsoleMenu = &ConsoleErrMenu;\r
- DevicePath = GetEfiGlobalVariable (L"ErrOut");\r
- AllDevicePath = GetEfiGlobalVariable (L"ErrOutDev");\r
+ GetEfiGlobalVariable2 (L"ErrOut", (VOID**)&DevicePath, NULL);\r
+ GetEfiGlobalVariable2 (L"ErrOutDev", (VOID**)&AllDevicePath, NULL);\r
break;\r
\r
default:\r
}\r
}\r
}\r
+\r
+/**\r
+\r
+ Initialize console input device check box to ConsoleInCheck[MAX_MENU_NUMBER]\r
+ in BMM_FAKE_NV_DATA structure.\r
+\r
+ @param CallbackData The BMM context data.\r
+\r
+**/ \r
+VOID \r
+GetConsoleInCheck (\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
+ )\r
+{\r
+ UINT16 Index;\r
+ BM_MENU_ENTRY *NewMenuEntry; \r
+ UINT8 *ConInCheck;\r
+ BM_CONSOLE_CONTEXT *NewConsoleContext;\r
+\r
+ ASSERT (CallbackData != NULL);\r
+\r
+ ConInCheck = &CallbackData->BmmFakeNvData.ConsoleInCheck[0];\r
+ for (Index = 0; ((Index < ConsoleInpMenu.MenuNumber) && \\r
+ (Index < MAX_MENU_NUMBER)) ; Index++) { \r
+ NewMenuEntry = BOpt_GetMenuEntry (&ConsoleInpMenu, Index);\r
+ NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext; \r
+ ConInCheck[Index] = NewConsoleContext->IsActive;\r
+ }\r
+}\r
+\r
+/**\r
+\r
+ Initialize console output device check box to ConsoleOutCheck[MAX_MENU_NUMBER]\r
+ in BMM_FAKE_NV_DATA structure.\r
+\r
+ @param CallbackData The BMM context data.\r
+\r
+**/ \r
+VOID \r
+GetConsoleOutCheck (\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
+ )\r
+{\r
+ UINT16 Index;\r
+ BM_MENU_ENTRY *NewMenuEntry; \r
+ UINT8 *ConOutCheck;\r
+ BM_CONSOLE_CONTEXT *NewConsoleContext;\r
+ \r
+ ASSERT (CallbackData != NULL);\r
+ ConOutCheck = &CallbackData->BmmFakeNvData.ConsoleOutCheck[0];\r
+ for (Index = 0; ((Index < ConsoleOutMenu.MenuNumber) && \\r
+ (Index < MAX_MENU_NUMBER)) ; Index++) { \r
+ NewMenuEntry = BOpt_GetMenuEntry (&ConsoleOutMenu, Index);\r
+ NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext; \r
+ ConOutCheck[Index] = NewConsoleContext->IsActive;\r
+ }\r
+}\r
+\r
+/**\r
+\r
+ Initialize standard error output device check box to ConsoleErrCheck[MAX_MENU_NUMBER]\r
+ in BMM_FAKE_NV_DATA structure.\r
+\r
+ @param CallbackData The BMM context data.\r
+\r
+**/ \r
+VOID \r
+GetConsoleErrCheck (\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
+ )\r
+{\r
+ UINT16 Index;\r
+ BM_MENU_ENTRY *NewMenuEntry; \r
+ UINT8 *ConErrCheck;\r
+ BM_CONSOLE_CONTEXT *NewConsoleContext;\r
+\r
+ ASSERT (CallbackData != NULL);\r
+ ConErrCheck = &CallbackData->BmmFakeNvData.ConsoleErrCheck[0];\r
+ for (Index = 0; ((Index < ConsoleErrMenu.MenuNumber) && \\r
+ (Index < MAX_MENU_NUMBER)) ; Index++) { \r
+ NewMenuEntry = BOpt_GetMenuEntry (&ConsoleErrMenu, Index);\r
+ NewConsoleContext = (BM_CONSOLE_CONTEXT *) NewMenuEntry->VariableContext; \r
+ ConErrCheck[Index] = NewConsoleContext->IsActive;\r
+ }\r
+}\r
+\r
+/**\r
+\r
+ Initialize terminal attributes (baudrate, data rate, stop bits, parity and terminal type)\r
+ to BMM_FAKE_NV_DATA structure.\r
+\r
+ @param CallbackData The BMM context data.\r
+\r
+**/\r
+VOID \r
+GetTerminalAttribute (\r
+ IN BMM_CALLBACK_DATA *CallbackData\r
+ )\r
+{\r
+ BMM_FAKE_NV_DATA *CurrentFakeNVMap;\r
+ BM_MENU_ENTRY *NewMenuEntry;\r
+ BM_TERMINAL_CONTEXT *NewTerminalContext; \r
+ UINT16 TerminalIndex; \r
+ UINT8 AttributeIndex;\r
+\r
+ ASSERT (CallbackData != NULL);\r
+\r
+ CurrentFakeNVMap = &CallbackData->BmmFakeNvData; \r
+ for (TerminalIndex = 0; ((TerminalIndex < TerminalMenu.MenuNumber) && \\r
+ (TerminalIndex < MAX_MENU_NUMBER)); TerminalIndex++) { \r
+ NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, TerminalIndex);\r
+ NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;\r
+ for (AttributeIndex = 0; AttributeIndex < sizeof (BaudRateList) / sizeof (BaudRateList [0]); AttributeIndex++) {\r
+ if (NewTerminalContext->BaudRate == (UINT64) (BaudRateList[AttributeIndex].Value)) {\r
+ NewTerminalContext->BaudRateIndex = AttributeIndex;\r
+ break;\r
+ }\r
+ }\r
+ for (AttributeIndex = 0; AttributeIndex < sizeof (DataBitsList) / sizeof (DataBitsList[0]); AttributeIndex++) {\r
+ if (NewTerminalContext->DataBits == (UINT64) (DataBitsList[AttributeIndex].Value)) {\r
+ NewTerminalContext->DataBitsIndex = AttributeIndex;\r
+ break;\r
+ }\r
+ } \r
+\r
+ for (AttributeIndex = 0; AttributeIndex < sizeof (ParityList) / sizeof (ParityList[0]); AttributeIndex++) {\r
+ if (NewTerminalContext->Parity == (UINT64) (ParityList[AttributeIndex].Value)) {\r
+ NewTerminalContext->ParityIndex = AttributeIndex;\r
+ break;\r
+ }\r
+ }\r
+\r
+ for (AttributeIndex = 0; AttributeIndex < sizeof (StopBitsList) / sizeof (StopBitsList[0]); AttributeIndex++) {\r
+ if (NewTerminalContext->StopBits == (UINT64) (StopBitsList[AttributeIndex].Value)) {\r
+ NewTerminalContext->StopBitsIndex = AttributeIndex;\r
+ break;\r
+ }\r
+ }\r
+ CurrentFakeNVMap->COMBaudRate[TerminalIndex] = NewTerminalContext->BaudRateIndex;\r
+ CurrentFakeNVMap->COMDataRate[TerminalIndex] = NewTerminalContext->DataBitsIndex;\r
+ CurrentFakeNVMap->COMStopBits[TerminalIndex] = NewTerminalContext->StopBitsIndex;\r
+ CurrentFakeNVMap->COMParity[TerminalIndex] = NewTerminalContext->ParityIndex; \r
+ CurrentFakeNVMap->COMTerminalType[TerminalIndex] = NewTerminalContext->TerminalType;\r
+ CurrentFakeNVMap->COMFlowControl[TerminalIndex] = NewTerminalContext->FlowControl;\r
+ }\r
+}\r
+\r