]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdeModulePkg / Universal / Console / ConSplitterDxe / ConSplitter.h
index 5c5d691761ab68d523e277a5db31e6e9b4ada6e1..a1fe747260587f708ce5c3f6fa6747807273ed6e 100644 (file)
@@ -1,14 +1,8 @@
 /** @file\r
   Private data structures for the Console Splitter driver\r
 \r
-Copyright (c) 2006 - 2008 Intel Corporation. <BR>\r
-All rights reserved. This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution.  The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
@@ -16,11 +10,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #define _CON_SPLITTER_H_\r
 \r
 #include <Uefi.h>\r
+#include <PiDxe.h>\r
 \r
 #include <Protocol/DevicePath.h>\r
 #include <Protocol/ComponentName.h>\r
 #include <Protocol/DriverBinding.h>\r
-#include <Protocol/ConsoleControl.h>\r
 #include <Protocol/SimplePointer.h>\r
 #include <Protocol/AbsolutePointer.h>\r
 #include <Protocol/SimpleTextOut.h>\r
@@ -29,13 +23,10 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Protocol/GraphicsOutput.h>\r
 #include <Protocol/UgaDraw.h>\r
 \r
-#include <Guid/PrimaryStandardErrorDevice.h>\r
-#include <Guid/PrimaryConsoleOutDevice.h>\r
-#include <Guid/PrimaryConsoleInDevice.h>\r
-#include <Guid/GenericPlatformVariable.h>\r
 #include <Guid/ConsoleInDevice.h>\r
 #include <Guid/StandardErrorDevice.h>\r
 #include <Guid/ConsoleOutDevice.h>\r
+#include <Guid/ConnectConInEvent.h>\r
 \r
 #include <Library/PcdLib.h>\r
 #include <Library/DebugLib.h>\r
@@ -47,68 +38,60 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Library/UefiBootServicesTableLib.h>\r
 #include <Library/UefiRuntimeServicesTableLib.h>\r
 \r
-\r
 //\r
 // Driver Binding Externs\r
 //\r
-extern EFI_DRIVER_BINDING_PROTOCOL  gConSplitterConInDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL  gConSplitterConInComponentName;\r
-extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConInComponentName2;\r
-extern EFI_DRIVER_BINDING_PROTOCOL  gConSplitterSimplePointerDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL  gConSplitterSimplePointerComponentName;\r
-extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterSimplePointerComponentName2;\r
-extern EFI_DRIVER_BINDING_PROTOCOL  gConSplitterAbsolutePointerDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL  gConSplitterAbsolutePointerComponentName;\r
-extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterAbsolutePointerComponentName2;\r
-extern EFI_DRIVER_BINDING_PROTOCOL  gConSplitterConOutDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL  gConSplitterConOutComponentName;\r
-extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConOutComponentName2;\r
-extern EFI_DRIVER_BINDING_PROTOCOL  gConSplitterStdErrDriverBinding;\r
-extern EFI_COMPONENT_NAME_PROTOCOL  gConSplitterStdErrComponentName;\r
-extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterStdErrComponentName2;\r
-\r
-extern EFI_GUID                     gSimpleTextInExNotifyGuid;\r
+extern EFI_DRIVER_BINDING_PROTOCOL   gConSplitterConInDriverBinding;\r
+extern EFI_COMPONENT_NAME_PROTOCOL   gConSplitterConInComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL  gConSplitterConInComponentName2;\r
+extern EFI_DRIVER_BINDING_PROTOCOL   gConSplitterSimplePointerDriverBinding;\r
+extern EFI_COMPONENT_NAME_PROTOCOL   gConSplitterSimplePointerComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL  gConSplitterSimplePointerComponentName2;\r
+extern EFI_DRIVER_BINDING_PROTOCOL   gConSplitterAbsolutePointerDriverBinding;\r
+extern EFI_COMPONENT_NAME_PROTOCOL   gConSplitterAbsolutePointerComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL  gConSplitterAbsolutePointerComponentName2;\r
+extern EFI_DRIVER_BINDING_PROTOCOL   gConSplitterConOutDriverBinding;\r
+extern EFI_COMPONENT_NAME_PROTOCOL   gConSplitterConOutComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL  gConSplitterConOutComponentName2;\r
+extern EFI_DRIVER_BINDING_PROTOCOL   gConSplitterStdErrDriverBinding;\r
+extern EFI_COMPONENT_NAME_PROTOCOL   gConSplitterStdErrComponentName;\r
+extern EFI_COMPONENT_NAME2_PROTOCOL  gConSplitterStdErrComponentName2;\r
 \r
 //\r
 // These definitions were in the old Hii protocol, but are not in the new UEFI\r
 // version. So they are defined locally.\r
 //\r
-#define UNICODE_NARROW_CHAR   0xFFF0\r
-#define UNICODE_WIDE_CHAR     0xFFF1\r
-\r
+#define UNICODE_NARROW_CHAR  0xFFF0\r
+#define UNICODE_WIDE_CHAR    0xFFF1\r
 \r
 //\r
 // Private Data Structures\r
 //\r
-#define CONSOLE_SPLITTER_CONSOLES_ALLOC_UNIT  32\r
-#define CONSOLE_SPLITTER_MODES_ALLOC_UNIT     32\r
-#define MAX_STD_IN_PASSWORD                   80\r
-\r
-#define VARCONOUTMODE L"ConOutMode"\r
+#define CONSOLE_SPLITTER_ALLOC_UNIT  32\r
 \r
 typedef struct {\r
-  UINTN   Column;\r
-  UINTN   Row;\r
+  UINTN    Column;\r
+  UINTN    Row;\r
 } CONSOLE_OUT_MODE;\r
 \r
 typedef struct {\r
-  UINTN   Columns;\r
-  UINTN   Rows;\r
+  UINTN    Columns;\r
+  UINTN    Rows;\r
 } TEXT_OUT_SPLITTER_QUERY_DATA;\r
 \r
+#define KEY_STATE_VALID_EXPOSED  (EFI_TOGGLE_STATE_VALID | EFI_KEY_STATE_EXPOSED)\r
 \r
-#define TEXT_IN_EX_SPLITTER_NOTIFY_SIGNATURE    SIGNATURE_32 ('T', 'i', 'S', 'n')\r
+#define TEXT_IN_EX_SPLITTER_NOTIFY_SIGNATURE  SIGNATURE_32 ('T', 'i', 'S', 'n')\r
 \r
 //\r
 // Private data for Text In Ex Splitter Notify\r
 //\r
 typedef struct _TEXT_IN_EX_SPLITTER_NOTIFY {\r
-  UINTN                                 Signature;\r
-  EFI_HANDLE                            *NotifyHandleList;\r
-  EFI_HANDLE                            NotifyHandle;\r
-  EFI_KEY_DATA                          KeyData;\r
-  EFI_KEY_NOTIFY_FUNCTION               KeyNotificationFn;\r
-  LIST_ENTRY                            NotifyEntry;\r
+  UINTN                      Signature;\r
+  VOID                       **NotifyHandleList;\r
+  EFI_KEY_DATA               KeyData;\r
+  EFI_KEY_NOTIFY_FUNCTION    KeyNotificationFn;\r
+  LIST_ENTRY                 NotifyEntry;\r
 } TEXT_IN_EX_SPLITTER_NOTIFY;\r
 \r
 #define TEXT_IN_EX_SPLITTER_NOTIFY_FROM_THIS(a)  \\r
@@ -118,48 +101,54 @@ typedef struct _TEXT_IN_EX_SPLITTER_NOTIFY {
       TEXT_IN_EX_SPLITTER_NOTIFY_SIGNATURE       \\r
       )\r
 \r
-#define TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('T', 'i', 'S', 'p')\r
+#define TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE  SIGNATURE_32 ('T', 'i', 'S', 'p')\r
 \r
 //\r
 // Private data for the Console In splitter\r
 //\r
 typedef struct {\r
-  UINT64                             Signature;\r
-  EFI_HANDLE                         VirtualHandle;\r
-\r
-  EFI_SIMPLE_TEXT_INPUT_PROTOCOL     TextIn;\r
-  UINTN                              CurrentNumberOfConsoles;\r
-  EFI_SIMPLE_TEXT_INPUT_PROTOCOL     **TextInList;\r
-  UINTN                              TextInListCount;\r
-\r
-  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  TextInEx;\r
-  UINTN                              CurrentNumberOfExConsoles;\r
-  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  **TextInExList;\r
-  UINTN                              TextInExListCount;\r
-  LIST_ENTRY                         NotifyList;\r
-\r
-\r
-  EFI_SIMPLE_POINTER_PROTOCOL        SimplePointer;\r
-  EFI_SIMPLE_POINTER_MODE            SimplePointerMode;\r
-  UINTN                              CurrentNumberOfPointers;\r
-  EFI_SIMPLE_POINTER_PROTOCOL        **PointerList;\r
-  UINTN                              PointerListCount;\r
-\r
-  EFI_ABSOLUTE_POINTER_PROTOCOL      AbsolutePointer;\r
-  EFI_ABSOLUTE_POINTER_MODE          AbsolutePointerMode;\r
-  UINTN                              CurrentNumberOfAbsolutePointers;\r
-  EFI_ABSOLUTE_POINTER_PROTOCOL      **AbsolutePointerList;\r
-  UINTN                              AbsolutePointerListCount;\r
-  BOOLEAN                            AbsoluteInputEventSignalState;\r
-\r
-  BOOLEAN                            PasswordEnabled;\r
-  CHAR16                             Password[MAX_STD_IN_PASSWORD];\r
-  UINTN                              PwdIndex;\r
-  CHAR16                             PwdAttempt[MAX_STD_IN_PASSWORD];\r
-  EFI_EVENT                          LockEvent;\r
-\r
-  BOOLEAN                            KeyEventSignalState;\r
-  BOOLEAN                            InputEventSignalState;\r
+  UINT64                               Signature;\r
+  EFI_HANDLE                           VirtualHandle;\r
+\r
+  EFI_SIMPLE_TEXT_INPUT_PROTOCOL       TextIn;\r
+  UINTN                                CurrentNumberOfConsoles;\r
+  EFI_SIMPLE_TEXT_INPUT_PROTOCOL       **TextInList;\r
+  UINTN                                TextInListCount;\r
+\r
+  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL    TextInEx;\r
+  UINTN                                CurrentNumberOfExConsoles;\r
+  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL    **TextInExList;\r
+  UINTN                                TextInExListCount;\r
+  LIST_ENTRY                           NotifyList;\r
+  EFI_KEY_DATA                         *KeyQueue;\r
+  UINTN                                CurrentNumberOfKeys;\r
+  //\r
+  // It will be initialized and synced between console input devices\r
+  // for toggle state sync.\r
+  //\r
+  EFI_KEY_TOGGLE_STATE                 PhysicalKeyToggleState;\r
+  //\r
+  // It will be initialized and used to record if virtual KeyState\r
+  // has been required to be exposed.\r
+  //\r
+  BOOLEAN                              VirtualKeyStateExported;\r
+\r
+  EFI_SIMPLE_POINTER_PROTOCOL          SimplePointer;\r
+  EFI_SIMPLE_POINTER_MODE              SimplePointerMode;\r
+  UINTN                                CurrentNumberOfPointers;\r
+  EFI_SIMPLE_POINTER_PROTOCOL          **PointerList;\r
+  UINTN                                PointerListCount;\r
+\r
+  EFI_ABSOLUTE_POINTER_PROTOCOL        AbsolutePointer;\r
+  EFI_ABSOLUTE_POINTER_MODE            AbsolutePointerMode;\r
+  UINTN                                CurrentNumberOfAbsolutePointers;\r
+  EFI_ABSOLUTE_POINTER_PROTOCOL        **AbsolutePointerList;\r
+  UINTN                                AbsolutePointerListCount;\r
+  BOOLEAN                              AbsoluteInputEventSignalState;\r
+\r
+  BOOLEAN                              KeyEventSignalState;\r
+  BOOLEAN                              InputEventSignalState;\r
+  EFI_EVENT                            ConnectConInEvent;\r
 } TEXT_IN_SPLITTER_PRIVATE_DATA;\r
 \r
 #define TEXT_IN_SPLITTER_PRIVATE_DATA_FROM_THIS(a)  \\r
@@ -189,55 +178,42 @@ typedef struct {
       TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE                       \\r
       )\r
 \r
-\r
 #define TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE  SIGNATURE_32 ('T', 'o', 'S', 'p')\r
 \r
 typedef struct {\r
-  EFI_GRAPHICS_OUTPUT_PROTOCOL     *GraphicsOutput;\r
-  EFI_UGA_DRAW_PROTOCOL            *UgaDraw;\r
-  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *TextOut;\r
-  BOOLEAN                          TextOutEnabled;\r
+  EFI_GRAPHICS_OUTPUT_PROTOCOL       *GraphicsOutput;\r
+  EFI_UGA_DRAW_PROTOCOL              *UgaDraw;\r
+  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL    *TextOut;\r
 } TEXT_OUT_AND_GOP_DATA;\r
 \r
 //\r
 // Private data for the Console Out splitter\r
 //\r
 typedef struct {\r
-  UINT64                                Signature;\r
-  EFI_HANDLE                            VirtualHandle;\r
-  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL       TextOut;\r
-  EFI_SIMPLE_TEXT_OUTPUT_MODE           TextOutMode;\r
-\r
-  EFI_UGA_DRAW_PROTOCOL                 UgaDraw;\r
-  UINT32                                UgaHorizontalResolution;\r
-  UINT32                                UgaVerticalResolution;\r
-  UINT32                                UgaColorDepth;\r
-  UINT32                                UgaRefreshRate;\r
-  EFI_UGA_PIXEL                         *UgaBlt;\r
-\r
-  EFI_GRAPHICS_OUTPUT_PROTOCOL          GraphicsOutput;\r
-  EFI_GRAPHICS_OUTPUT_BLT_PIXEL         *GraphicsOutputBlt;\r
-  EFI_GRAPHICS_OUTPUT_MODE_INFORMATION  *GraphicsOutputModeBuffer;\r
-  UINTN                                 CurrentNumberOfGraphicsOutput;\r
-  UINTN                                 CurrentNumberOfUgaDraw;\r
-  BOOLEAN                               HardwareNeedsStarting;\r
-\r
-  EFI_CONSOLE_CONTROL_PROTOCOL          ConsoleControl;\r
-\r
-  UINTN                                 CurrentNumberOfConsoles;\r
-  TEXT_OUT_AND_GOP_DATA                 *TextOutList;\r
-  UINTN                                 TextOutListCount;\r
-  TEXT_OUT_SPLITTER_QUERY_DATA          *TextOutQueryData;\r
-  UINTN                                 TextOutQueryDataCount;\r
-  INT32                                 *TextOutModeMap;\r
-\r
-  EFI_CONSOLE_CONTROL_SCREEN_MODE       ConsoleOutputMode;\r
-\r
-  UINTN                                 DevNullColumns;\r
-  UINTN                                 DevNullRows;\r
-  CHAR16                                *DevNullScreen;\r
-  INT32                                 *DevNullAttributes;\r
-\r
+  UINT64                                  Signature;\r
+  EFI_HANDLE                              VirtualHandle;\r
+  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL         TextOut;\r
+  EFI_SIMPLE_TEXT_OUTPUT_MODE             TextOutMode;\r
+\r
+  EFI_UGA_DRAW_PROTOCOL                   UgaDraw;\r
+  UINT32                                  UgaHorizontalResolution;\r
+  UINT32                                  UgaVerticalResolution;\r
+  UINT32                                  UgaColorDepth;\r
+  UINT32                                  UgaRefreshRate;\r
+\r
+  EFI_GRAPHICS_OUTPUT_PROTOCOL            GraphicsOutput;\r
+  EFI_GRAPHICS_OUTPUT_MODE_INFORMATION    *GraphicsOutputModeBuffer;\r
+  UINTN                                   CurrentNumberOfGraphicsOutput;\r
+  UINTN                                   CurrentNumberOfUgaDraw;\r
+\r
+  UINTN                                   CurrentNumberOfConsoles;\r
+  TEXT_OUT_AND_GOP_DATA                   *TextOutList;\r
+  UINTN                                   TextOutListCount;\r
+  TEXT_OUT_SPLITTER_QUERY_DATA            *TextOutQueryData;\r
+  UINTN                                   TextOutQueryDataCount;\r
+  INT32                                   *TextOutModeMap;\r
+\r
+  BOOLEAN                                 AddingConOutDevice;\r
 } TEXT_OUT_SPLITTER_PRIVATE_DATA;\r
 \r
 #define TEXT_OUT_SPLITTER_PRIVATE_DATA_FROM_THIS(a) \\r
@@ -290,8 +266,8 @@ typedef struct {
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterDriverEntry (\r
-  IN EFI_HANDLE                       ImageHandle,\r
-  IN EFI_SYSTEM_TABLE                 *SystemTable\r
+  IN EFI_HANDLE        ImageHandle,\r
+  IN EFI_SYSTEM_TABLE  *SystemTable\r
   );\r
 \r
 /**\r
@@ -307,7 +283,7 @@ ConSplitterDriverEntry (
 **/\r
 EFI_STATUS\r
 ConSplitterTextInConstructor (\r
-  TEXT_IN_SPLITTER_PRIVATE_DATA       *ConInPrivate\r
+  TEXT_IN_SPLITTER_PRIVATE_DATA  *ConInPrivate\r
   );\r
 \r
 /**\r
@@ -322,10 +298,9 @@ ConSplitterTextInConstructor (
 **/\r
 EFI_STATUS\r
 ConSplitterTextOutConstructor (\r
-  TEXT_OUT_SPLITTER_PRIVATE_DATA      *ConOutPrivate\r
+  TEXT_OUT_SPLITTER_PRIVATE_DATA  *ConOutPrivate\r
   );\r
 \r
-\r
 /**\r
   Test to see if Console In Device could be supported on the Controller.\r
 \r
@@ -341,9 +316,9 @@ ConSplitterTextOutConstructor (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterConInDriverBindingSupported (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN  EFI_HANDLE                      ControllerHandle,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
   );\r
 \r
 /**\r
@@ -361,9 +336,9 @@ ConSplitterConInDriverBindingSupported (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterSimplePointerDriverBindingSupported (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN  EFI_HANDLE                      ControllerHandle,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
   );\r
 \r
 /**\r
@@ -381,9 +356,9 @@ ConSplitterSimplePointerDriverBindingSupported (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterConOutDriverBindingSupported (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN  EFI_HANDLE                      ControllerHandle,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
   );\r
 \r
 /**\r
@@ -401,9 +376,9 @@ ConSplitterConOutDriverBindingSupported (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterStdErrDriverBindingSupported (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN  EFI_HANDLE                      ControllerHandle,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
   );\r
 \r
 /**\r
@@ -421,9 +396,9 @@ ConSplitterStdErrDriverBindingSupported (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterConInDriverBindingStart (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN  EFI_HANDLE                      ControllerHandle,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
   );\r
 \r
 /**\r
@@ -441,9 +416,9 @@ ConSplitterConInDriverBindingStart (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterSimplePointerDriverBindingStart (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN  EFI_HANDLE                      ControllerHandle,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
   );\r
 \r
 /**\r
@@ -461,9 +436,9 @@ ConSplitterSimplePointerDriverBindingStart (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterConOutDriverBindingStart (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN  EFI_HANDLE                      ControllerHandle,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
   );\r
 \r
 /**\r
@@ -481,9 +456,9 @@ ConSplitterConOutDriverBindingStart (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterStdErrDriverBindingStart (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN  EFI_HANDLE                      ControllerHandle,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
   );\r
 \r
 /**\r
@@ -502,10 +477,10 @@ ConSplitterStdErrDriverBindingStart (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterConInDriverBindingStop (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN  EFI_HANDLE                      ControllerHandle,\r
-  IN  UINTN                           NumberOfChildren,\r
-  IN  EFI_HANDLE                      *ChildHandleBuffer\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  UINTN                        NumberOfChildren,\r
+  IN  EFI_HANDLE                   *ChildHandleBuffer\r
   );\r
 \r
 /**\r
@@ -525,10 +500,10 @@ ConSplitterConInDriverBindingStop (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterSimplePointerDriverBindingStop (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN  EFI_HANDLE                      ControllerHandle,\r
-  IN  UINTN                           NumberOfChildren,\r
-  IN  EFI_HANDLE                      *ChildHandleBuffer\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  UINTN                        NumberOfChildren,\r
+  IN  EFI_HANDLE                   *ChildHandleBuffer\r
   );\r
 \r
 /**\r
@@ -547,10 +522,10 @@ ConSplitterSimplePointerDriverBindingStop (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterConOutDriverBindingStop (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN  EFI_HANDLE                      ControllerHandle,\r
-  IN  UINTN                           NumberOfChildren,\r
-  IN  EFI_HANDLE                      *ChildHandleBuffer\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  UINTN                        NumberOfChildren,\r
+  IN  EFI_HANDLE                   *ChildHandleBuffer\r
   );\r
 \r
 /**\r
@@ -569,13 +544,12 @@ ConSplitterConOutDriverBindingStop (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterStdErrDriverBindingStop (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN  EFI_HANDLE                      ControllerHandle,\r
-  IN  UINTN                           NumberOfChildren,\r
-  IN  EFI_HANDLE                      *ChildHandleBuffer\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  UINTN                        NumberOfChildren,\r
+  IN  EFI_HANDLE                   *ChildHandleBuffer\r
   );\r
 \r
-\r
 /**\r
   Test to see if Absolute Pointer protocol could be supported on the Controller.\r
 \r
@@ -591,9 +565,9 @@ ConSplitterStdErrDriverBindingStop (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterAbsolutePointerDriverBindingSupported (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN  EFI_HANDLE                      ControllerHandle,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
   );\r
 \r
 /**\r
@@ -611,9 +585,9 @@ ConSplitterAbsolutePointerDriverBindingSupported (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterAbsolutePointerDriverBindingStart (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN  EFI_HANDLE                      ControllerHandle,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL        *RemainingDevicePath\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL     *RemainingDevicePath\r
   );\r
 \r
 /**\r
@@ -633,10 +607,10 @@ ConSplitterAbsolutePointerDriverBindingStart (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterAbsolutePointerDriverBindingStop (\r
-  IN  EFI_DRIVER_BINDING_PROTOCOL     *This,\r
-  IN  EFI_HANDLE                      ControllerHandle,\r
-  IN  UINTN                           NumberOfChildren,\r
-  IN  EFI_HANDLE                      *ChildHandleBuffer\r
+  IN  EFI_DRIVER_BINDING_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  UINTN                        NumberOfChildren,\r
+  IN  EFI_HANDLE                   *ChildHandleBuffer\r
   );\r
 \r
 /**\r
@@ -651,8 +625,8 @@ ConSplitterAbsolutePointerDriverBindingStop (
 **/\r
 EFI_STATUS\r
 ConSplitterAbsolutePointerAddDevice (\r
-  IN  TEXT_IN_SPLITTER_PRIVATE_DATA     *Private,\r
-  IN  EFI_ABSOLUTE_POINTER_PROTOCOL     *AbsolutePointer\r
+  IN  TEXT_IN_SPLITTER_PRIVATE_DATA  *Private,\r
+  IN  EFI_ABSOLUTE_POINTER_PROTOCOL  *AbsolutePointer\r
   );\r
 \r
 /**\r
@@ -667,15 +641,14 @@ ConSplitterAbsolutePointerAddDevice (
 **/\r
 EFI_STATUS\r
 ConSplitterAbsolutePointerDeleteDevice (\r
-  IN  TEXT_IN_SPLITTER_PRIVATE_DATA     *Private,\r
-  IN  EFI_ABSOLUTE_POINTER_PROTOCOL     *AbsolutePointer\r
+  IN  TEXT_IN_SPLITTER_PRIVATE_DATA  *Private,\r
+  IN  EFI_ABSOLUTE_POINTER_PROTOCOL  *AbsolutePointer\r
   );\r
 \r
 //\r
 // Absolute Pointer protocol interfaces\r
 //\r
 \r
-\r
 /**\r
   Resets the pointer device hardware.\r
 \r
@@ -690,11 +663,10 @@ ConSplitterAbsolutePointerDeleteDevice (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterAbsolutePointerReset (\r
-  IN EFI_ABSOLUTE_POINTER_PROTOCOL   *This,\r
-  IN BOOLEAN                         ExtendedVerification\r
+  IN EFI_ABSOLUTE_POINTER_PROTOCOL  *This,\r
+  IN BOOLEAN                        ExtendedVerification\r
   );\r
 \r
-\r
 /**\r
   Retrieves the current state of a pointer device.\r
 \r
@@ -719,7 +691,7 @@ ConSplitterAbsolutePointerGetState (
 \r
 /**\r
   This event agregates all the events of the pointer devices in the splitter.\r
-  If the ConIn is password locked then return.\r
+\r
   If any events of physical pointer devices are signaled, signal the pointer\r
   splitter event. This will cause the calling code to call\r
   ConSplitterAbsolutePointerGetState ().\r
@@ -731,8 +703,8 @@ ConSplitterAbsolutePointerGetState (
 VOID\r
 EFIAPI\r
 ConSplitterAbsolutePointerWaitForInput (\r
-  IN  EFI_EVENT                       Event,\r
-  IN  VOID                            *Context\r
+  IN  EFI_EVENT  Event,\r
+  IN  VOID       *Context\r
   );\r
 \r
 /**\r
@@ -755,7 +727,7 @@ ConSplitterAbsolutePointerWaitForInput (
                                 languages specified in SupportedLanguages. The\r
                                 number of languages supported by a driver is up\r
                                 to the driver writer. Language is specified\r
-                                in RFC 3066 or ISO 639-2 language code format.\r
+                                in RFC 4646 or ISO 639-2 language code format.\r
 \r
   @param  DriverName[out]       A pointer to the Unicode string to return.\r
                                 This Unicode string is the name of the\r
@@ -782,7 +754,6 @@ ConSplitterComponentNameGetDriverName (
   OUT CHAR16                       **DriverName\r
   );\r
 \r
-\r
 /**\r
   Retrieves a Unicode string that is the user readable name of the controller\r
   that is being managed by a driver.\r
@@ -820,7 +791,7 @@ ConSplitterComponentNameGetDriverName (
                                 languages specified in SupportedLanguages. The\r
                                 number of languages supported by a driver is up\r
                                 to the driver writer. Language is specified in\r
-                                RFC 3066 or ISO 639-2 language code format.\r
+                                RFC 4646 or ISO 639-2 language code format.\r
 \r
   @param  ControllerName[out]   A pointer to the Unicode string to return.\r
                                 This Unicode string is the name of the\r
@@ -834,7 +805,7 @@ ConSplitterComponentNameGetDriverName (
                                 driver specified by This was returned in\r
                                 DriverName.\r
 \r
-  @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
+  @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.\r
 \r
   @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid\r
                                 EFI_HANDLE.\r
@@ -854,14 +825,13 @@ ConSplitterComponentNameGetDriverName (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterConInComponentNameGetControllerName (\r
-  IN  EFI_COMPONENT_NAME_PROTOCOL                     *This,\r
-  IN  EFI_HANDLE                                      ControllerHandle,\r
-  IN  EFI_HANDLE                                      ChildHandle        OPTIONAL,\r
-  IN  CHAR8                                           *Language,\r
-  OUT CHAR16                                          **ControllerName\r
+  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  EFI_HANDLE                   ChildHandle        OPTIONAL,\r
+  IN  CHAR8                        *Language,\r
+  OUT CHAR16                       **ControllerName\r
   );\r
 \r
-\r
 /**\r
   Retrieves a Unicode string that is the user readable name of the controller\r
   that is being managed by a driver.\r
@@ -899,7 +869,7 @@ ConSplitterConInComponentNameGetControllerName (
                                 languages specified in SupportedLanguages. The\r
                                 number of languages supported by a driver is up\r
                                 to the driver writer. Language is specified in\r
-                                RFC 3066 or ISO 639-2 language code format.\r
+                                RFC 4646 or ISO 639-2 language code format.\r
 \r
   @param  ControllerName[out]   A pointer to the Unicode string to return.\r
                                 This Unicode string is the name of the\r
@@ -913,7 +883,7 @@ ConSplitterConInComponentNameGetControllerName (
                                 driver specified by This was returned in\r
                                 DriverName.\r
 \r
-  @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
+  @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.\r
 \r
   @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid\r
                                 EFI_HANDLE.\r
@@ -933,11 +903,11 @@ ConSplitterConInComponentNameGetControllerName (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterSimplePointerComponentNameGetControllerName (\r
-  IN  EFI_COMPONENT_NAME_PROTOCOL                     *This,\r
-  IN  EFI_HANDLE                                      ControllerHandle,\r
-  IN  EFI_HANDLE                                      ChildHandle        OPTIONAL,\r
-  IN  CHAR8                                           *Language,\r
-  OUT CHAR16                                          **ControllerName\r
+  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  EFI_HANDLE                   ChildHandle        OPTIONAL,\r
+  IN  CHAR8                        *Language,\r
+  OUT CHAR16                       **ControllerName\r
   );\r
 \r
 /**\r
@@ -957,7 +927,7 @@ ConSplitterSimplePointerComponentNameGetControllerName (
                                  retrieve the name of the bus controller.  It will\r
                                  not be NULL for a bus driver that wishes to\r
                                  retrieve the name of a child controller.\r
-  @param  Language               A pointer to RFC3066 language identifier. This is\r
+  @param  Language               A pointer to RFC4646 language identifier. This is\r
                                  the language of the controller name that that the\r
                                  caller is requesting, and it must match one of the\r
                                  languages specified in SupportedLanguages.  The\r
@@ -972,7 +942,7 @@ ConSplitterSimplePointerComponentNameGetControllerName (
   @retval EFI_SUCCESS            The Unicode string for the user readable name in\r
                                  the language specified by Language for the driver\r
                                  specified by This was returned in DriverName.\r
-  @retval EFI_INVALID_PARAMETER  ControllerHandle is not a valid EFI_HANDLE.\r
+  @retval EFI_INVALID_PARAMETER  ControllerHandle is NULL.\r
   @retval EFI_INVALID_PARAMETER  ChildHandle is not NULL and it is not a valid\r
                                  EFI_HANDLE.\r
   @retval EFI_INVALID_PARAMETER  Language is NULL.\r
@@ -987,11 +957,11 @@ ConSplitterSimplePointerComponentNameGetControllerName (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterAbsolutePointerComponentNameGetControllerName (\r
-  IN  EFI_COMPONENT_NAME_PROTOCOL                    *This,\r
-  IN  EFI_HANDLE                                      ControllerHandle,\r
-  IN  EFI_HANDLE                                      ChildHandle        OPTIONAL,\r
-  IN  CHAR8                                           *Language,\r
-  OUT CHAR16                                          **ControllerName\r
+  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  EFI_HANDLE                   ChildHandle        OPTIONAL,\r
+  IN  CHAR8                        *Language,\r
+  OUT CHAR16                       **ControllerName\r
   );\r
 \r
 /**\r
@@ -1031,7 +1001,7 @@ ConSplitterAbsolutePointerComponentNameGetControllerName (
                                 languages specified in SupportedLanguages. The\r
                                 number of languages supported by a driver is up\r
                                 to the driver writer. Language is specified in\r
-                                RFC 3066 or ISO 639-2 language code format.\r
+                                RFC 4646 or ISO 639-2 language code format.\r
 \r
   @param  ControllerName[out]   A pointer to the Unicode string to return.\r
                                 This Unicode string is the name of the\r
@@ -1045,7 +1015,7 @@ ConSplitterAbsolutePointerComponentNameGetControllerName (
                                 driver specified by This was returned in\r
                                 DriverName.\r
 \r
-  @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
+  @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.\r
 \r
   @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid\r
                                 EFI_HANDLE.\r
@@ -1065,14 +1035,13 @@ ConSplitterAbsolutePointerComponentNameGetControllerName (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterConOutComponentNameGetControllerName (\r
-  IN  EFI_COMPONENT_NAME_PROTOCOL                     *This,\r
-  IN  EFI_HANDLE                                      ControllerHandle,\r
-  IN  EFI_HANDLE                                      ChildHandle        OPTIONAL,\r
-  IN  CHAR8                                           *Language,\r
-  OUT CHAR16                                          **ControllerName\r
+  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  EFI_HANDLE                   ChildHandle        OPTIONAL,\r
+  IN  CHAR8                        *Language,\r
+  OUT CHAR16                       **ControllerName\r
   );\r
 \r
-\r
 /**\r
   Retrieves a Unicode string that is the user readable name of the controller\r
   that is being managed by a driver.\r
@@ -1110,7 +1079,7 @@ ConSplitterConOutComponentNameGetControllerName (
                                 languages specified in SupportedLanguages. The\r
                                 number of languages supported by a driver is up\r
                                 to the driver writer. Language is specified in\r
-                                RFC 3066 or ISO 639-2 language code format.\r
+                                RFC 4646 or ISO 639-2 language code format.\r
 \r
   @param  ControllerName[out]   A pointer to the Unicode string to return.\r
                                 This Unicode string is the name of the\r
@@ -1124,7 +1093,7 @@ ConSplitterConOutComponentNameGetControllerName (
                                 driver specified by This was returned in\r
                                 DriverName.\r
 \r
-  @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
+  @retval EFI_INVALID_PARAMETER ControllerHandle is NULL.\r
 \r
   @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid\r
                                 EFI_HANDLE.\r
@@ -1144,14 +1113,13 @@ ConSplitterConOutComponentNameGetControllerName (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterStdErrComponentNameGetControllerName (\r
-  IN  EFI_COMPONENT_NAME_PROTOCOL                     *This,\r
-  IN  EFI_HANDLE                                      ControllerHandle,\r
-  IN  EFI_HANDLE                                      ChildHandle        OPTIONAL,\r
-  IN  CHAR8                                           *Language,\r
-  OUT CHAR16                                          **ControllerName\r
+  IN  EFI_COMPONENT_NAME_PROTOCOL  *This,\r
+  IN  EFI_HANDLE                   ControllerHandle,\r
+  IN  EFI_HANDLE                   ChildHandle        OPTIONAL,\r
+  IN  CHAR8                        *Language,\r
+  OUT CHAR16                       **ControllerName\r
   );\r
 \r
-\r
 //\r
 // TextIn Constructor/Destructor functions\r
 //\r
@@ -1204,8 +1172,8 @@ ConSplitterTextInDeleteDevice (
 **/\r
 EFI_STATUS\r
 ConSplitterSimplePointerAddDevice (\r
-  IN  TEXT_IN_SPLITTER_PRIVATE_DATA   *Private,\r
-  IN  EFI_SIMPLE_POINTER_PROTOCOL     *SimplePointer\r
+  IN  TEXT_IN_SPLITTER_PRIVATE_DATA  *Private,\r
+  IN  EFI_SIMPLE_POINTER_PROTOCOL    *SimplePointer\r
   );\r
 \r
 /**\r
@@ -1220,8 +1188,8 @@ ConSplitterSimplePointerAddDevice (
 **/\r
 EFI_STATUS\r
 ConSplitterSimplePointerDeleteDevice (\r
-  IN  TEXT_IN_SPLITTER_PRIVATE_DATA   *Private,\r
-  IN  EFI_SIMPLE_POINTER_PROTOCOL     *SimplePointer\r
+  IN  TEXT_IN_SPLITTER_PRIVATE_DATA  *Private,\r
+  IN  EFI_SIMPLE_POINTER_PROTOCOL    *SimplePointer\r
   );\r
 \r
 //\r
@@ -1242,10 +1210,10 @@ ConSplitterSimplePointerDeleteDevice (
 **/\r
 EFI_STATUS\r
 ConSplitterTextOutAddDevice (\r
-  IN  TEXT_OUT_SPLITTER_PRIVATE_DATA     *Private,\r
-  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL    *TextOut,\r
-  IN  EFI_GRAPHICS_OUTPUT_PROTOCOL       *GraphicsOutput,\r
-  IN  EFI_UGA_DRAW_PROTOCOL              *UgaDraw\r
+  IN  TEXT_OUT_SPLITTER_PRIVATE_DATA   *Private,\r
+  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *TextOut,\r
+  IN  EFI_GRAPHICS_OUTPUT_PROTOCOL     *GraphicsOutput,\r
+  IN  EFI_UGA_DRAW_PROTOCOL            *UgaDraw\r
   );\r
 \r
 /**\r
@@ -1260,8 +1228,8 @@ ConSplitterTextOutAddDevice (
 **/\r
 EFI_STATUS\r
 ConSplitterTextOutDeleteDevice (\r
-  IN  TEXT_OUT_SPLITTER_PRIVATE_DATA     *Private,\r
-  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL    *TextOut\r
+  IN  TEXT_OUT_SPLITTER_PRIVATE_DATA   *Private,\r
+  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *TextOut\r
   );\r
 \r
 //\r
@@ -1289,7 +1257,6 @@ ConSplitterTextInReset (
 /**\r
   Reads the next keystroke from the input device. The WaitForKey Event can\r
   be used to test for existance of a keystroke via WaitForEvent () call.\r
-  If the ConIn is password locked make it look like no keystroke is availible\r
 \r
   @param  This                     Protocol instance pointer.\r
   @param  Key                      Driver may perform diagnostics on reset.\r
@@ -1319,8 +1286,8 @@ ConSplitterTextInReadKeyStroke (
 **/\r
 EFI_STATUS\r
 ConSplitterTextInExAddDevice (\r
-  IN  TEXT_IN_SPLITTER_PRIVATE_DATA         *Private,\r
-  IN  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL     *TextInEx\r
+  IN  TEXT_IN_SPLITTER_PRIVATE_DATA      *Private,\r
+  IN  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *TextInEx\r
   );\r
 \r
 /**\r
@@ -1335,8 +1302,8 @@ ConSplitterTextInExAddDevice (
 **/\r
 EFI_STATUS\r
 ConSplitterTextInExDeleteDevice (\r
-  IN  TEXT_IN_SPLITTER_PRIVATE_DATA         *Private,\r
-  IN  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL     *TextInEx\r
+  IN  TEXT_IN_SPLITTER_PRIVATE_DATA      *Private,\r
+  IN  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *TextInEx\r
   );\r
 \r
 //\r
@@ -1361,7 +1328,6 @@ ConSplitterTextInResetEx (
   IN BOOLEAN                            ExtendedVerification\r
   );\r
 \r
-\r
 /**\r
   Reads the next keystroke from the input device. The WaitForKey Event can\r
   be used to test for existance of a keystroke via WaitForEvent () call.\r
@@ -1381,11 +1347,10 @@ ConSplitterTextInResetEx (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterTextInReadKeyStrokeEx (\r
-  IN  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
-  OUT EFI_KEY_DATA                      *KeyData\r
+  IN  EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *This,\r
+  OUT EFI_KEY_DATA                       *KeyData\r
   );\r
 \r
-\r
 /**\r
   Set certain state for the input device.\r
 \r
@@ -1408,16 +1373,18 @@ ConSplitterTextInSetState (
   IN EFI_KEY_TOGGLE_STATE               *KeyToggleState\r
   );\r
 \r
-\r
 /**\r
   Register a notification function for a particular keystroke for the input device.\r
 \r
   @param  This                     Protocol instance pointer.\r
-  @param  KeyData                  A pointer to a buffer that is filled in with the\r
-                                   keystroke information data for the key that was\r
-                                   pressed.\r
+  @param  KeyData                  A pointer to a buffer that is filled in with\r
+                                   the keystroke information for the key that was\r
+                                   pressed. If KeyData.Key, KeyData.KeyState.KeyToggleState\r
+                                   and KeyData.KeyState.KeyShiftState are 0, then any incomplete\r
+                                   keystroke will trigger a notification of the KeyNotificationFunction.\r
   @param  KeyNotificationFunction  Points to the function to be called when the key\r
-                                   sequence is typed specified by KeyData.\r
+                                   sequence is typed specified by KeyData. This notification function\r
+                                   should be called at <=TPL_CALLBACK.\r
   @param  NotifyHandle             Points to the unique handle assigned to the\r
                                    registered notification.\r
 \r
@@ -1434,10 +1401,9 @@ ConSplitterTextInRegisterKeyNotify (
   IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *This,\r
   IN EFI_KEY_DATA                       *KeyData,\r
   IN EFI_KEY_NOTIFY_FUNCTION            KeyNotificationFunction,\r
-  OUT EFI_HANDLE                        *NotifyHandle\r
+  OUT VOID                              **NotifyHandle\r
   );\r
 \r
-\r
 /**\r
   Remove a registered notification function from a particular keystroke.\r
 \r
@@ -1455,13 +1421,12 @@ EFI_STATUS
 EFIAPI\r
 ConSplitterTextInUnregisterKeyNotify (\r
   IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL  *This,\r
-  IN EFI_HANDLE                         NotificationHandle\r
+  IN VOID                               *NotificationHandle\r
   );\r
 \r
 /**\r
   This event aggregates all the events of the ConIn devices in the spliter.\r
 \r
-  If the ConIn is password locked then return.\r
   If any events of physical ConIn devices are signaled, signal the ConIn\r
   spliter event. This will cause the calling code to call\r
   ConSplitterTextInReadKeyStroke ().\r
@@ -1473,60 +1438,8 @@ ConSplitterTextInUnregisterKeyNotify (
 VOID\r
 EFIAPI\r
 ConSplitterTextInWaitForKey (\r
-  IN  EFI_EVENT                       Event,\r
-  IN  VOID                            *Context\r
-  );\r
-\r
-/**\r
-  Return TRUE if StdIn is locked. The ConIn device on the virtual handle is\r
-  the only device locked.\r
-\r
-  @retval TRUE                     StdIn locked\r
-  @retval FALSE                    StdIn working normally\r
-\r
-**/\r
-BOOLEAN\r
-ConSpliterConssoleControlStdInLocked (\r
-  VOID\r
-  );\r
-\r
-/**\r
-  Record and check key sequence on StdIn.\r
-\r
-  This timer event will fire when StdIn is locked. It will record the key sequence\r
-  on StdIn and also check to see if it matches the password. Any error in the\r
-  password will cause the check to reset. As long as a mConIn.PasswordEnabled is\r
-  TRUE, the StdIn splitter will not report any input.\r
-\r
-  @param  Event                  The Event this notify function registered to.\r
-  @param  Context                Pointer to the context data registerd to the\r
-                                 Event.\r
-**/\r
-VOID\r
-EFIAPI\r
-ConSpliterConsoleControlLockStdInEvent (\r
-  IN  EFI_EVENT                       Event,\r
-  IN  VOID                            *Context\r
-  );\r
-\r
-/**\r
-  If Password is NULL unlock the password state variable and set the event\r
-  timer. If the Password is too big return an error. If the Password is valid\r
-  Copy the Password and enable state variable and then arm the periodic timer\r
-\r
-  @param  This                     Console Control protocol pointer.\r
-  @param  Password                 The password input.\r
-\r
-  @retval EFI_SUCCESS              Lock the StdIn device\r
-  @retval EFI_INVALID_PARAMETER    Password is NULL\r
-  @retval EFI_OUT_OF_RESOURCES     Buffer allocation to store the password fails\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-ConSpliterConsoleControlLockStdIn (\r
-  IN  EFI_CONSOLE_CONTROL_PROTOCOL    *This,\r
-  IN  CHAR16                          *Password\r
+  IN  EFI_EVENT  Event,\r
+  IN  VOID       *Context\r
   );\r
 \r
 /**\r
@@ -1545,8 +1458,8 @@ ConSpliterConsoleControlLockStdIn (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterTextInPrivateReadKeyStroke (\r
-  IN  TEXT_IN_SPLITTER_PRIVATE_DATA   *Private,\r
-  OUT EFI_INPUT_KEY                   *Key\r
+  IN  TEXT_IN_SPLITTER_PRIVATE_DATA  *Private,\r
+  OUT EFI_INPUT_KEY                  *Key\r
   );\r
 \r
 /**\r
@@ -1563,14 +1476,13 @@ ConSplitterTextInPrivateReadKeyStroke (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterSimplePointerReset (\r
-  IN  EFI_SIMPLE_POINTER_PROTOCOL     *This,\r
-  IN  BOOLEAN                         ExtendedVerification\r
+  IN  EFI_SIMPLE_POINTER_PROTOCOL  *This,\r
+  IN  BOOLEAN                      ExtendedVerification\r
   );\r
 \r
 /**\r
   Reads the next keystroke from the input device. The WaitForKey Event can\r
   be used to test for existance of a keystroke via WaitForEvent () call.\r
-  If the ConIn is password locked make it look like no keystroke is availible\r
 \r
   @param  This                     A pointer to protocol instance.\r
   @param  State                    A pointer to state information on the pointer device\r
@@ -1584,13 +1496,12 @@ ConSplitterSimplePointerReset (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterSimplePointerGetState (\r
-  IN  EFI_SIMPLE_POINTER_PROTOCOL     *This,\r
-  IN OUT EFI_SIMPLE_POINTER_STATE     *State\r
+  IN  EFI_SIMPLE_POINTER_PROTOCOL  *This,\r
+  IN OUT EFI_SIMPLE_POINTER_STATE  *State\r
   );\r
 \r
 /**\r
   This event agregates all the events of the ConIn devices in the spliter.\r
-  If the ConIn is password locked then return.\r
   If any events of physical ConIn devices are signaled, signal the ConIn\r
   spliter event. This will cause the calling code to call\r
   ConSplitterTextInReadKeyStroke ().\r
@@ -1602,8 +1513,8 @@ ConSplitterSimplePointerGetState (
 VOID\r
 EFIAPI\r
 ConSplitterSimplePointerWaitForInput (\r
-  IN  EFI_EVENT                       Event,\r
-  IN  VOID                            *Context\r
+  IN  EFI_EVENT  Event,\r
+  IN  VOID       *Context\r
   );\r
 \r
 //\r
@@ -1625,8 +1536,8 @@ ConSplitterSimplePointerWaitForInput (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterTextOutReset (\r
-  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL    *This,\r
-  IN  BOOLEAN                            ExtendedVerification\r
+  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,\r
+  IN  BOOLEAN                          ExtendedVerification\r
   );\r
 \r
 /**\r
@@ -1651,8 +1562,8 @@ ConSplitterTextOutReset (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterTextOutOutputString (\r
-  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL    *This,\r
-  IN  CHAR16                             *WString\r
+  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,\r
+  IN  CHAR16                           *WString\r
   );\r
 \r
 /**\r
@@ -1673,8 +1584,8 @@ ConSplitterTextOutOutputString (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterTextOutTestString (\r
-  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL    *This,\r
-  IN  CHAR16                             *WString\r
+  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,\r
+  IN  CHAR16                           *WString\r
   );\r
 \r
 /**\r
@@ -1697,10 +1608,10 @@ ConSplitterTextOutTestString (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterTextOutQueryMode (\r
-  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL    *This,\r
-  IN  UINTN                              ModeNumber,\r
-  OUT UINTN                              *Columns,\r
-  OUT UINTN                              *Rows\r
+  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,\r
+  IN  UINTN                            ModeNumber,\r
+  OUT UINTN                            *Columns,\r
+  OUT UINTN                            *Rows\r
   );\r
 \r
 /**\r
@@ -1718,8 +1629,8 @@ ConSplitterTextOutQueryMode (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterTextOutSetMode (\r
-  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL    *This,\r
-  IN  UINTN                              ModeNumber\r
+  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,\r
+  IN  UINTN                            ModeNumber\r
   );\r
 \r
 /**\r
@@ -1742,8 +1653,8 @@ ConSplitterTextOutSetMode (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterTextOutSetAttribute (\r
-  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL    *This,\r
-  IN  UINTN                              Attribute\r
+  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,\r
+  IN  UINTN                            Attribute\r
   );\r
 \r
 /**\r
@@ -1761,7 +1672,7 @@ ConSplitterTextOutSetAttribute (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterTextOutClearScreen (\r
-  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL    *This\r
+  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This\r
   );\r
 \r
 /**\r
@@ -1786,12 +1697,11 @@ ConSplitterTextOutClearScreen (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterTextOutSetCursorPosition (\r
-  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL    *This,\r
-  IN  UINTN                              Column,\r
-  IN  UINTN                              Row\r
+  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,\r
+  IN  UINTN                            Column,\r
+  IN  UINTN                            Row\r
   );\r
 \r
-\r
 /**\r
   Makes the cursor visible or invisible\r
 \r
@@ -1809,17 +1719,17 @@ ConSplitterTextOutSetCursorPosition (
 EFI_STATUS\r
 EFIAPI\r
 ConSplitterTextOutEnableCursor (\r
-  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL    *This,\r
-  IN  BOOLEAN                            Visible\r
+  IN  EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL  *This,\r
+  IN  BOOLEAN                          Visible\r
   );\r
 \r
 /**\r
-  Take the passed in Buffer of size SizeOfCount and grow the buffer\r
-  by MAX (CONSOLE_SPLITTER_CONSOLES_ALLOC_UNIT, MaxGrow) * SizeOfCount\r
-  bytes. Copy the current data in Buffer to the new version of Buffer\r
-  and free the old version of buffer.\r
+  Take the passed in Buffer of size ElementSize and grow the buffer\r
+  by CONSOLE_SPLITTER_ALLOC_UNIT * ElementSize bytes.\r
+  Copy the current data in Buffer to the new version of Buffer and\r
+  free the old version of buffer.\r
 \r
-  @param  SizeOfCount              Size of element in array.\r
+  @param  ElementSize              Size of element in array.\r
   @param  Count                    Current number of elements in array.\r
   @param  Buffer                   Bigger version of passed in Buffer with all the\r
                                    data.\r
@@ -1830,51 +1740,9 @@ ConSplitterTextOutEnableCursor (
 **/\r
 EFI_STATUS\r
 ConSplitterGrowBuffer (\r
-  IN  UINTN                           SizeOfCount,\r
-  IN  UINTN                           *Count,\r
-  IN OUT  VOID                        **Buffer\r
-  );\r
-\r
-/**\r
-  Return the current video mode information. Also returns info about existence\r
-  of Graphics Output devices or UGA Draw devices in system, and if the Std In device is locked. All the\r
-  arguments are optional and only returned if a non NULL pointer is passed in.\r
-\r
-  @param  This                    Protocol instance pointer.\r
-  @param  Mode                    Are we in text of grahics mode.\r
-  @param  GopUgaExists            TRUE if Console Spliter has found a GOP or UGA device\r
-  @param  StdInLocked             TRUE if StdIn device is keyboard locked\r
-\r
-  @retval EFI_SUCCESS             Mode information returned.\r
-  @retval EFI_INVALID_PARAMETER   Invalid parameters.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-ConSpliterConsoleControlGetMode (\r
-  IN  EFI_CONSOLE_CONTROL_PROTOCOL    *This,\r
-  OUT EFI_CONSOLE_CONTROL_SCREEN_MODE *Mode,\r
-  OUT BOOLEAN                         *GopUgaExists,\r
-  OUT BOOLEAN                         *StdInLocked\r
-  );\r
-\r
-/**\r
-  Set the current mode to either text or graphics. Graphics is\r
-  for Quiet Boot.\r
-\r
-  @param  This                    Console Control Protocol instance pointer.\r
-  @param  Mode                    Mode to set.\r
-\r
-  @retval EFI_SUCCESS             Mode information returned.\r
-  @retval EFI_INVALID_PARAMETER   Invalid parameter.\r
-  @retval EFI_UNSUPPORTED         Operation unsupported.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-ConSpliterConsoleControlSetMode (\r
-  IN  EFI_CONSOLE_CONTROL_PROTOCOL    *This,\r
-  IN  EFI_CONSOLE_CONTROL_SCREEN_MODE Mode\r
+  IN      UINTN  ElementSize,\r
+  IN OUT  UINTN  *Count,\r
+  IN OUT  VOID   **Buffer\r
   );\r
 \r
 /**\r
@@ -1889,14 +1757,13 @@ ConSpliterConsoleControlSetMode (
   @retval EFI_SUCCESS           Mode information returned.\r
   @retval EFI_BUFFER_TOO_SMALL  The Info buffer was too small.\r
   @retval EFI_DEVICE_ERROR      A hardware error occurred trying to retrieve the video mode.\r
-  @retval EFI_NOT_STARTED       Video display is not initialized. Call SetMode ()\r
   @retval EFI_INVALID_PARAMETER One of the input args was NULL.\r
   @retval EFI_OUT_OF_RESOURCES  No resource available.\r
 \r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
-ConSpliterGraphicsOutputQueryMode (\r
+ConSplitterGraphicsOutputQueryMode (\r
   IN  EFI_GRAPHICS_OUTPUT_PROTOCOL          *This,\r
   IN  UINT32                                ModeNumber,\r
   OUT UINTN                                 *SizeOfInfo,\r
@@ -1918,9 +1785,9 @@ ConSpliterGraphicsOutputQueryMode (
 **/\r
 EFI_STATUS\r
 EFIAPI\r
-ConSpliterGraphicsOutputSetMode (\r
-  IN  EFI_GRAPHICS_OUTPUT_PROTOCOL This,\r
-  IN  UINT32                       ModeNumber\r
+ConSplitterGraphicsOutputSetMode (\r
+  IN  EFI_GRAPHICS_OUTPUT_PROTOCOL  *This,\r
+  IN  UINT32                        ModeNumber\r
   );\r
 \r
 /**\r
@@ -1965,44 +1832,23 @@ ConSpliterGraphicsOutputSetMode (
 \r
   @retval EFI_SUCCESS             The Blt operation completed.\r
   @retval EFI_INVALID_PARAMETER   BltOperation is not valid.\r
-  @retval EFI_DEVICE_ERROR        A hardware error occured writting to the video\r
+  @retval EFI_DEVICE_ERROR        A hardware error occurred writting to the video\r
                                   buffer.\r
 \r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
-ConSpliterGraphicsOutputBlt (\r
-  IN  EFI_GRAPHICS_OUTPUT_PROTOCOL                  *This,\r
-  IN  EFI_GRAPHICS_OUTPUT_BLT_PIXEL                 *BltBuffer, OPTIONAL\r
-  IN  EFI_GRAPHICS_OUTPUT_BLT_OPERATION             BltOperation,\r
-  IN  UINTN                                         SourceX,\r
-  IN  UINTN                                         SourceY,\r
-  IN  UINTN                                         DestinationX,\r
-  IN  UINTN                                         DestinationY,\r
-  IN  UINTN                                         Width,\r
-  IN  UINTN                                         Height,\r
-  IN  UINTN                                         Delta         OPTIONAL\r
-  );\r
-\r
-/**\r
-  Write data from the buffer to video display based on Graphics Output setting.\r
-\r
-  @param  Private                 Consplitter Text Out pointer.\r
-  @param  GraphicsOutput          Graphics Output protocol pointer.\r
-  @param  UgaDraw                 UGA Draw protocol pointer.\r
-\r
-  @retval EFI_UNSUPPORTED         No graphics devcie available .\r
-  @retval EFI_SUCCESS             The Blt operation completed.\r
-  @retval EFI_INVALID_PARAMETER   BltOperation is not valid.\r
-  @retval EFI_DEVICE_ERROR        A hardware error occured writting to the video buffer.\r
-\r
-\r
-**/\r
-EFI_STATUS\r
-DevNullGopSync (\r
-  IN  TEXT_OUT_SPLITTER_PRIVATE_DATA  *Private,\r
-  IN  EFI_GRAPHICS_OUTPUT_PROTOCOL    *GraphicsOutput,\r
-  IN  EFI_UGA_DRAW_PROTOCOL           *UgaDraw\r
+ConSplitterGraphicsOutputBlt (\r
+  IN  EFI_GRAPHICS_OUTPUT_PROTOCOL       *This,\r
+  IN  EFI_GRAPHICS_OUTPUT_BLT_PIXEL      *BltBuffer  OPTIONAL,\r
+  IN  EFI_GRAPHICS_OUTPUT_BLT_OPERATION  BltOperation,\r
+  IN  UINTN                              SourceX,\r
+  IN  UINTN                              SourceY,\r
+  IN  UINTN                              DestinationX,\r
+  IN  UINTN                              DestinationY,\r
+  IN  UINTN                              Width,\r
+  IN  UINTN                              Height,\r
+  IN  UINTN                              Delta         OPTIONAL\r
   );\r
 \r
 /**\r
@@ -2021,12 +1867,12 @@ DevNullGopSync (
 **/\r
 EFI_STATUS\r
 EFIAPI\r
-ConSpliterUgaDrawGetMode (\r
-  IN  EFI_UGA_DRAW_PROTOCOL           *This,\r
-  OUT UINT32                          *HorizontalResolution,\r
-  OUT UINT32                          *VerticalResolution,\r
-  OUT UINT32                          *ColorDepth,\r
-  OUT UINT32                          *RefreshRate\r
+ConSplitterUgaDrawGetMode (\r
+  IN  EFI_UGA_DRAW_PROTOCOL  *This,\r
+  OUT UINT32                 *HorizontalResolution,\r
+  OUT UINT32                 *VerticalResolution,\r
+  OUT UINT32                 *ColorDepth,\r
+  OUT UINT32                 *RefreshRate\r
   );\r
 \r
 /**\r
@@ -2045,12 +1891,12 @@ ConSpliterUgaDrawGetMode (
 **/\r
 EFI_STATUS\r
 EFIAPI\r
-ConSpliterUgaDrawSetMode (\r
-  IN  EFI_UGA_DRAW_PROTOCOL           *This,\r
-  IN UINT32                           HorizontalResolution,\r
-  IN UINT32                           VerticalResolution,\r
-  IN UINT32                           ColorDepth,\r
-  IN UINT32                           RefreshRate\r
+ConSplitterUgaDrawSetMode (\r
+  IN  EFI_UGA_DRAW_PROTOCOL  *This,\r
+  IN UINT32                  HorizontalResolution,\r
+  IN UINT32                  VerticalResolution,\r
+  IN UINT32                  ColorDepth,\r
+  IN UINT32                  RefreshRate\r
   );\r
 \r
 /**\r
@@ -2099,68 +1945,22 @@ ConSpliterUgaDrawSetMode (
 \r
   @retval EFI_SUCCESS            The Blt operation completed.\r
   @retval EFI_INVALID_PARAMETER  BltOperation is not valid.\r
-  @retval EFI_DEVICE_ERROR       A hardware error occured writting to the video buffer.\r
+  @retval EFI_DEVICE_ERROR       A hardware error occurred writting to the video buffer.\r
 \r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
-ConSpliterUgaDrawBlt (\r
-  IN  EFI_UGA_DRAW_PROTOCOL                         *This,\r
-  IN  EFI_UGA_PIXEL                                 *BltBuffer, OPTIONAL\r
-  IN  EFI_UGA_BLT_OPERATION                         BltOperation,\r
-  IN  UINTN                                         SourceX,\r
-  IN  UINTN                                         SourceY,\r
-  IN  UINTN                                         DestinationX,\r
-  IN  UINTN                                         DestinationY,\r
-  IN  UINTN                                         Width,\r
-  IN  UINTN                                         Height,\r
-  IN  UINTN                                         Delta         OPTIONAL\r
-  );\r
-\r
-/**\r
-  Write data from the buffer to video display based on UGA Draw setting.\r
-\r
-  @param  Private                 Consplitter Text Out pointer.\r
-  @param  GraphicsOutput          Graphics Output protocol pointer.\r
-  @param  UgaDraw                 UGA Draw protocol pointer.\r
-\r
-  @retval EFI_UNSUPPORTED         No graphics devcie available .\r
-  @retval EFI_SUCCESS             The Blt operation completed.\r
-  @retval EFI_INVALID_PARAMETER   BltOperation is not valid.\r
-  @retval EFI_DEVICE_ERROR        A hardware error occured writting to the video buffer.\r
-\r
-**/\r
-EFI_STATUS\r
-DevNullUgaSync (\r
-  IN  TEXT_OUT_SPLITTER_PRIVATE_DATA  *Private,\r
-  IN  EFI_GRAPHICS_OUTPUT_PROTOCOL    *GraphicsOutput,\r
-  IN  EFI_UGA_DRAW_PROTOCOL           *UgaDraw\r
-  );\r
-\r
-/**\r
-  Write a Unicode string to the output device.\r
-\r
-  @param  Private                 Pointer to the console output splitter's private\r
-                                  data. It indicates the calling context.\r
-  @param  WString                 The NULL-terminated Unicode string to be\r
-                                  displayed on the output device(s). All output\r
-                                  devices must also support the Unicode drawing\r
-                                  defined in this file.\r
-\r
-  @retval EFI_SUCCESS             The string was output to the device.\r
-  @retval EFI_DEVICE_ERROR        The device reported an error while attempting to\r
-                                  output the text.\r
-  @retval EFI_UNSUPPORTED         The output device's mode is not currently in a\r
-                                  defined text mode.\r
-  @retval EFI_WARN_UNKNOWN_GLYPH  This warning code indicates that some of the\r
-                                  characters in the Unicode string could not be\r
-                                  rendered and were skipped.\r
-\r
-**/\r
-EFI_STATUS\r
-DevNullTextOutOutputString (\r
-  IN  TEXT_OUT_SPLITTER_PRIVATE_DATA  *Private,\r
-  IN  CHAR16                          *WString\r
+ConSplitterUgaDrawBlt (\r
+  IN  EFI_UGA_DRAW_PROTOCOL  *This,\r
+  IN  EFI_UGA_PIXEL          *BltBuffer  OPTIONAL,\r
+  IN  EFI_UGA_BLT_OPERATION  BltOperation,\r
+  IN  UINTN                  SourceX,\r
+  IN  UINTN                  SourceY,\r
+  IN  UINTN                  DestinationX,\r
+  IN  UINTN                  DestinationY,\r
+  IN  UINTN                  Width,\r
+  IN  UINTN                  Height,\r
+  IN  UINTN                  Delta         OPTIONAL\r
   );\r
 \r
 /**\r
@@ -2169,86 +1969,11 @@ DevNullTextOutOutputString (
   @param  Private                 Text Out Splitter pointer.\r
   @param  ModeNumber              The mode number to set.\r
 \r
-  @retval EFI_SUCCESS             The requested text mode was set.\r
-  @retval EFI_DEVICE_ERROR        The device had an error and could not complete\r
-                                  the request.\r
-  @retval EFI_UNSUPPORTED         The mode number was not valid.\r
-  @retval EFI_OUT_OF_RESOURCES    Out of resources.\r
-\r
 **/\r
-EFI_STATUS\r
-DevNullTextOutSetMode (\r
+VOID\r
+TextOutSetMode (\r
   IN  TEXT_OUT_SPLITTER_PRIVATE_DATA  *Private,\r
   IN  UINTN                           ModeNumber\r
   );\r
 \r
-/**\r
-  Clears the output device(s) display to the currently selected background\r
-  color.\r
-\r
-  @param  Private                 Text Out Splitter pointer.\r
-\r
-  @retval EFI_SUCCESS             The operation completed successfully.\r
-  @retval EFI_DEVICE_ERROR        The device had an error and could not complete\r
-                                  the request.\r
-  @retval EFI_UNSUPPORTED         The output device is not in a valid text mode.\r
-\r
-**/\r
-EFI_STATUS\r
-DevNullTextOutClearScreen (\r
-  IN  TEXT_OUT_SPLITTER_PRIVATE_DATA  *Private\r
-  );\r
-\r
-/**\r
-  Sets the current coordinates of the cursor position on NULL device.\r
-\r
-  @param  Private                  Text Out Splitter pointer.\r
-  @param  Column                   The column position to set the cursor to. Must be\r
-                                   greater than or equal to zero and less than the\r
-                                   number of columns by QueryMode ().\r
-  @param  Row                      The row position to set the cursor to. Must be\r
-                                   greater than or equal to zero and less than the\r
-                                   number of rows by QueryMode ().\r
-\r
-  @retval EFI_SUCCESS              Always returned.\r
-\r
-**/\r
-EFI_STATUS\r
-DevNullTextOutSetCursorPosition (\r
-  IN  TEXT_OUT_SPLITTER_PRIVATE_DATA  *Private,\r
-  IN  UINTN                           Column,\r
-  IN  UINTN                           Row\r
-  );\r
-\r
-/**\r
-  Set cursor visibility property on NULL device.\r
-\r
-  @param  Private                 Text Out Splitter pointer.\r
-  @param  Visible                 If TRUE, the cursor is set to be visible, If\r
-                                  FALSE, the cursor is set to be invisible.\r
-\r
-  @retval EFI_SUCCESS             Always returned.\r
-\r
-**/\r
-EFI_STATUS\r
-DevNullTextOutEnableCursor (\r
-  IN  TEXT_OUT_SPLITTER_PRIVATE_DATA  *Private,\r
-  IN  BOOLEAN                         Visible\r
-  );\r
-\r
-/**\r
-  Take the DevNull TextOut device and update the Simple Text Out on every\r
-  UGA device.\r
-\r
-  @param  Private                 Text Out Splitter pointer.\r
-\r
-  @retval EFI_SUCCESS             The request is valid.\r
-  @retval other                   Return status of TextOut->OutputString ()\r
-\r
-**/\r
-EFI_STATUS\r
-DevNullSyncStdOut (\r
-  IN  TEXT_OUT_SPLITTER_PRIVATE_DATA  *Private\r
-  );\r
-\r
 #endif\r