&mStdErr.VirtualHandle,\r
&gEfiSimpleTextOutProtocolGuid,\r
&mStdErr.TextOut,\r
- &gEfiPrimaryStandardErrorDeviceGuid,\r
- NULL,\r
NULL\r
);\r
}\r
&mConIn.SimplePointer,\r
&gEfiAbsolutePointerProtocolGuid,\r
&mConIn.AbsolutePointer,\r
- &gEfiPrimaryConsoleInDeviceGuid,\r
- NULL,\r
NULL\r
);\r
if (!EFI_ERROR (Status)) {\r
&mConOut.UgaDraw,\r
&gEfiConsoleControlProtocolGuid,\r
&mConOut.ConsoleControl,\r
- &gEfiPrimaryConsoleOutDeviceGuid,\r
- NULL,\r
NULL\r
);\r
} else if (!FeaturePcdGet (PcdConOutUgaSupport)) {\r
&mConOut.GraphicsOutput,\r
&gEfiConsoleControlProtocolGuid,\r
&mConOut.ConsoleControl,\r
- &gEfiPrimaryConsoleOutDeviceGuid,\r
- NULL,\r
NULL\r
);\r
} else {\r
&mConOut.UgaDraw,\r
&gEfiConsoleControlProtocolGuid,\r
&mConOut.ConsoleControl,\r
- &gEfiPrimaryConsoleOutDeviceGuid,\r
- NULL,\r
NULL\r
);\r
}\r
UINTN MaxMode;\r
EFI_STATUS Status;\r
CONSOLE_OUT_MODE ModeInfo;\r
- UINTN ModeInfoSize;\r
EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut;\r
\r
PreferMode = 0xFF;\r
TextOut = &Private->TextOut;\r
MaxMode = (UINTN) (TextOut->Mode->MaxMode);\r
\r
- ModeInfoSize = sizeof (CONSOLE_OUT_MODE);\r
- Status = gRT->GetVariable (\r
- VARCONOUTMODE,\r
- &gEfiGenericPlatformVariableGuid,\r
- NULL,\r
- &ModeInfoSize,\r
- &ModeInfo\r
- );\r
-\r
- if (EFI_ERROR(Status)) {\r
- //\r
- // If fail to get variable, set variable to the default mode 80 x 25\r
- // required by UEFI spec;\r
- //\r
- ModeInfo.Column = 80;\r
- ModeInfo.Row = 25;\r
-\r
- gRT->SetVariable (\r
- VARCONOUTMODE,\r
- &gEfiGenericPlatformVariableGuid,\r
- EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE,\r
- sizeof (CONSOLE_OUT_MODE),\r
- &ModeInfo\r
- );\r
- }\r
+ ModeInfo.Column = PcdGet32 (PcdConOutColumn);\r
+ ModeInfo.Row = PcdGet32 (PcdConOutRow);\r
\r
//\r
// To find the prefer mode and basic mode from Text Out mode list\r
}\r
\r
//\r
- // Set perfer mode to Text Out devices.\r
+ // Set prefer mode to Text Out devices.\r
//\r
Status = TextOut->SetMode (TextOut, PreferMode);\r
if (EFI_ERROR(Status)) {\r
//\r
Status = TextOut->SetMode (TextOut, BaseMode);\r
ASSERT(!EFI_ERROR(Status));\r
-\r
- ModeInfo.Column = 80;\r
- ModeInfo.Row = 25;\r
-\r
- //\r
- // Update ConOutMode variable\r
- //\r
- gRT->SetVariable (\r
- VARCONOUTMODE,\r
- &gEfiGenericPlatformVariableGuid,\r
- EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_NON_VOLATILE,\r
- sizeof (CONSOLE_OUT_MODE),\r
- &ModeInfo\r
- );\r
+ \r
+ PcdSet32 (PcdConOutColumn, 80);\r
+ PcdSet32 (PcdConOutRow, 25);\r
}\r
\r
return ;\r
}\r
NewNotify->Signature = TEXT_IN_EX_SPLITTER_NOTIFY_SIGNATURE;\r
NewNotify->KeyNotificationFn = KeyNotificationFunction;\r
+ NewNotify->NotifyHandle = (EFI_HANDLE) NewNotify;\r
CopyMem (&NewNotify->KeyData, KeyData, sizeof (KeyData));\r
\r
//\r
}\r
}\r
\r
- //\r
- // Use gSimpleTextInExNotifyGuid to get a valid EFI_HANDLE\r
- //\r
- Status = gBS->InstallMultipleProtocolInterfaces (\r
- &NewNotify->NotifyHandle,\r
- &gSimpleTextInExNotifyGuid,\r
- NULL,\r
- NULL\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
-\r
InsertTailList (&mConIn.NotifyList, &NewNotify->NotifyEntry);\r
\r
*NotifyHandle = NewNotify->NotifyHandle;\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- Status = gBS->OpenProtocol (\r
- NotificationHandle,\r
- &gSimpleTextInExNotifyGuid,\r
- NULL,\r
- NULL,\r
- NULL,\r
- EFI_OPEN_PROTOCOL_TEST_PROTOCOL\r
- );\r
- if (EFI_ERROR (Status)) {\r
+ if (((TEXT_IN_EX_SPLITTER_NOTIFY *) NotificationHandle)->Signature != TEXT_IN_EX_SPLITTER_NOTIFY_SIGNATURE) {\r
return EFI_INVALID_PARAMETER;\r
- }\r
-\r
+ } \r
+ \r
Private = TEXT_IN_EX_SPLITTER_PRIVATE_DATA_FROM_THIS (This);\r
\r
//\r
}\r
}\r
RemoveEntryList (&CurrentNotify->NotifyEntry);\r
- Status = gBS->UninstallMultipleProtocolInterfaces (\r
- CurrentNotify->NotifyHandle,\r
- &gSimpleTextInExNotifyGuid,\r
- NULL,\r
- NULL\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
+\r
gBS->FreePool (CurrentNotify->NotifyHandleList);\r
gBS->FreePool (CurrentNotify);\r
return EFI_SUCCESS;\r