Skip locating Terminal driver Protocol Guid to determine the terminal options. It is better that BDS does not hardcode a special driver GUID.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4761 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qhuang8
2008-02-26 12:01:22 +00:00
parent 9b8a6c2edc
commit fb42e02bb4

View File

@@ -21,10 +21,6 @@ Abstract:
#include "BootMaint.h" #include "BootMaint.h"
EFI_GUID gTerminalDriverGuid = {
0x10634d8e, 0x1c05, 0x46cb, {0xbb, 0xc, 0x5a, 0xfd, 0xc8, 0x29, 0xa8, 0xc8}
};
VOID VOID
RefreshUpdateData ( RefreshUpdateData (
VOID VOID
@@ -179,27 +175,23 @@ UpdateConCOMPage (
{ {
BM_MENU_ENTRY *NewMenuEntry; BM_MENU_ENTRY *NewMenuEntry;
UINT16 Index; UINT16 Index;
EFI_STATUS Status;
VOID *Interface;
CallbackData->BmmAskSaveOrNot = FALSE; CallbackData->BmmAskSaveOrNot = FALSE;
UpdatePageStart (CallbackData); UpdatePageStart (CallbackData);
Status = EfiLibLocateProtocol (&gTerminalDriverGuid, (VOID **) &Interface);
if (!EFI_ERROR (Status)) {
for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index);
CreateGotoOpCode ( for (Index = 0; Index < TerminalMenu.MenuNumber; Index++) {
FORM_CON_COM_SETUP_ID, NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index);
NewMenuEntry->DisplayStringToken,
STRING_TOKEN (STR_NULL_STRING), CreateGotoOpCode (
EFI_IFR_FLAG_CALLBACK, FORM_CON_COM_SETUP_ID,
(UINT16) (TERMINAL_OPTION_OFFSET + Index), NewMenuEntry->DisplayStringToken,
&gUpdateData STRING_TOKEN (STR_NULL_STRING),
); EFI_IFR_FLAG_CALLBACK,
} (UINT16) (TERMINAL_OPTION_OFFSET + Index),
&gUpdateData
);
} }
UpdatePageEnd (CallbackData); UpdatePageEnd (CallbackData);
@@ -384,9 +376,7 @@ UpdateConsolePage (
UINT16 Index; UINT16 Index;
UINT16 Index2; UINT16 Index2;
UINT8 CheckFlags; UINT8 CheckFlags;
EFI_STATUS Status;
VOID *Interface;
CallbackData->BmmAskSaveOrNot = TRUE; CallbackData->BmmAskSaveOrNot = TRUE;
UpdatePageStart (CallbackData); UpdatePageStart (CallbackData);
@@ -414,36 +404,33 @@ UpdateConsolePage (
); );
} }
Status = EfiLibLocateProtocol (&gTerminalDriverGuid, (VOID **) &Interface); for (Index2 = 0; Index2 < TerminalMenu.MenuNumber; Index2++) {
if (!EFI_ERROR (Status)) { CheckFlags = 0;
for (Index2 = 0; Index2 < TerminalMenu.MenuNumber; Index2++) { NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index2);
CheckFlags = 0; NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
NewMenuEntry = BOpt_GetMenuEntry (&TerminalMenu, Index2);
NewTerminalContext = (BM_TERMINAL_CONTEXT *) NewMenuEntry->VariableContext;
if ((NewTerminalContext->IsConIn && (UpdatePageId == FORM_CON_IN_ID)) || if ((NewTerminalContext->IsConIn && (UpdatePageId == FORM_CON_IN_ID)) ||
(NewTerminalContext->IsConOut && (UpdatePageId == FORM_CON_OUT_ID)) || (NewTerminalContext->IsConOut && (UpdatePageId == FORM_CON_OUT_ID)) ||
(NewTerminalContext->IsStdErr && (UpdatePageId == FORM_CON_ERR_ID)) (NewTerminalContext->IsStdErr && (UpdatePageId == FORM_CON_ERR_ID))
) { ) {
CheckFlags |= EFI_IFR_CHECKBOX_DEFAULT; CheckFlags |= EFI_IFR_CHECKBOX_DEFAULT;
CallbackData->BmmFakeNvData.ConsoleCheck[Index] = TRUE; CallbackData->BmmFakeNvData.ConsoleCheck[Index] = TRUE;
} else { } else {
CallbackData->BmmFakeNvData.ConsoleCheck[Index] = FALSE; CallbackData->BmmFakeNvData.ConsoleCheck[Index] = FALSE;
}
CreateCheckBoxOpCode (
(EFI_QUESTION_ID) (CON_DEVICE_QUESTION_ID + Index),
VARSTORE_ID_BOOT_MAINT,
(UINT16) (CON_DEVICE_VAR_OFFSET + Index),
NewMenuEntry->DisplayStringToken,
NewMenuEntry->HelpStringToken,
0,
CheckFlags,
&gUpdateData
);
Index++;
} }
CreateCheckBoxOpCode (
(EFI_QUESTION_ID) (CON_DEVICE_QUESTION_ID + Index),
VARSTORE_ID_BOOT_MAINT,
(UINT16) (CON_DEVICE_VAR_OFFSET + Index),
NewMenuEntry->DisplayStringToken,
NewMenuEntry->HelpStringToken,
0,
CheckFlags,
&gUpdateData
);
Index++;
} }
UpdatePageEnd (CallbackData); UpdatePageEnd (CallbackData);