-/**@file\r
+/** @file\r
Private data structures for the Console Splitter driver\r
\r
-Copyright (c) 2006 - 2007 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
#ifndef _CON_SPLITTER_H_\r
#define _CON_SPLITTER_H_\r
\r
+#include <Uefi.h>\r
#include <PiDxe.h>\r
-#include <Guid/PrimaryStandardErrorDevice.h>\r
-#include <Guid/PrimaryConsoleOutDevice.h>\r
-#include <Protocol/GraphicsOutput.h>\r
-#include <Guid/PrimaryConsoleInDevice.h>\r
+\r
+#include <Protocol/DevicePath.h>\r
+#include <Protocol/ComponentName.h>\r
+#include <Protocol/DriverBinding.h>\r
#include <Protocol/SimplePointer.h>\r
#include <Protocol/AbsolutePointer.h>\r
#include <Protocol/SimpleTextOut.h>\r
-#include <Guid/ConsoleInDevice.h>\r
#include <Protocol/SimpleTextIn.h>\r
#include <Protocol/SimpleTextInEx.h>\r
-#include <Protocol/ConsoleControl.h>\r
+#include <Protocol/GraphicsOutput.h>\r
+#include <Protocol/UgaDraw.h>\r
+\r
+#include <Guid/ConsoleInDevice.h>\r
#include <Guid/StandardErrorDevice.h>\r
#include <Guid/ConsoleOutDevice.h>\r
-#include <Protocol/UgaDraw.h>\r
+#include <Guid/ConnectConInEvent.h>\r
+\r
#include <Library/PcdLib.h>\r
#include <Library/DebugLib.h>\r
#include <Library/UefiDriverEntryPoint.h>\r
#include <Library/BaseMemoryLib.h>\r
#include <Library/MemoryAllocationLib.h>\r
#include <Library/UefiBootServicesTableLib.h>\r
+#include <Library/UefiRuntimeServicesTableLib.h>\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_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
-#define UNICODE_NARROW_CHAR 0xFFF0\r
-#define UNICODE_WIDE_CHAR 0xFFF1\r
-\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
+#define CONSOLE_SPLITTER_ALLOC_UNIT 32\r
+\r
+typedef struct {\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
-//\r
-// Private data for the EFI_SIMPLE_TEXT_INPUT_PROTOCOL splitter\r
-//\r
-#define TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('T', 'i', 'S', 'p')\r
+#define KEY_STATE_VALID_EXPOSED (EFI_TOGGLE_STATE_VALID | EFI_KEY_STATE_EXPOSED)\r
\r
-#define TEXT_IN_EX_SPLITTER_NOTIFY_SIGNATURE EFI_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
+ CR ((a), \\r
+ TEXT_IN_EX_SPLITTER_NOTIFY, \\r
+ NotifyEntry, \\r
+ TEXT_IN_EX_SPLITTER_NOTIFY_SIGNATURE \\r
+ )\r
+\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
- CR ((a), \\r
+ CR ((a), \\r
TEXT_IN_SPLITTER_PRIVATE_DATA, \\r
TextIn, \\r
TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
)\r
\r
#define TEXT_IN_SPLITTER_PRIVATE_DATA_FROM_SIMPLE_POINTER_THIS(a) \\r
- CR ((a), \\r
+ CR ((a), \\r
TEXT_IN_SPLITTER_PRIVATE_DATA, \\r
SimplePointer, \\r
TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
)\r
#define TEXT_IN_EX_SPLITTER_PRIVATE_DATA_FROM_THIS(a) \\r
- CR (a, \\r
- TEXT_IN_SPLITTER_PRIVATE_DATA, \\r
- TextInEx, \\r
- TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
+ CR (a, \\r
+ TEXT_IN_SPLITTER_PRIVATE_DATA, \\r
+ TextInEx, \\r
+ TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
)\r
\r
#define TEXT_IN_SPLITTER_PRIVATE_DATA_FROM_ABSOLUTE_POINTER_THIS(a) \\r
- CR (a, \\r
- TEXT_IN_SPLITTER_PRIVATE_DATA, \\r
- AbsolutePointer, \\r
- TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
+ CR (a, \\r
+ TEXT_IN_SPLITTER_PRIVATE_DATA, \\r
+ AbsolutePointer, \\r
+ TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
)\r
\r
-//\r
-// Private data for the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL splitter\r
-//\r
-#define TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('T', 'o', 'S', 'p')\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
- UINT32 HorizontalResolution;\r
- UINT32 VerticalResolution;\r
-} TEXT_OUT_GOP_MODE;\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
- TEXT_OUT_GOP_MODE *GraphicsOutputModeBuffer;\r
- UINTN CurrentNumberOfGraphicsOutput;\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
- CR ((a), \\r
+ CR ((a), \\r
TEXT_OUT_SPLITTER_PRIVATE_DATA, \\r
TextOut, \\r
TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
)\r
\r
#define GRAPHICS_OUTPUT_SPLITTER_PRIVATE_DATA_FROM_THIS(a) \\r
- CR ((a), \\r
+ CR ((a), \\r
TEXT_OUT_SPLITTER_PRIVATE_DATA, \\r
GraphicsOutput, \\r
TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
)\r
\r
#define UGA_DRAW_SPLITTER_PRIVATE_DATA_FROM_THIS(a) \\r
- CR ((a), \\r
+ CR ((a), \\r
TEXT_OUT_SPLITTER_PRIVATE_DATA, \\r
UgaDraw, \\r
TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
)\r
\r
#define CONSOLE_CONTROL_SPLITTER_PRIVATE_DATA_FROM_THIS(a) \\r
- CR ((a), \\r
+ CR ((a), \\r
TEXT_OUT_SPLITTER_PRIVATE_DATA, \\r
ConsoleControl, \\r
TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
//\r
// Function Prototypes\r
//\r
+\r
+/**\r
+ The user Entry Point for module ConSplitter. The user code starts with this function.\r
+\r
+ Installs driver module protocols and. Creates virtual device handles for ConIn,\r
+ ConOut, and StdErr. Installs Simple Text In protocol, Simple Text In Ex protocol,\r
+ Simple Pointer protocol, Absolute Pointer protocol on those virtual handlers.\r
+ Installs Graphics Output protocol and/or UGA Draw protocol if needed.\r
+\r
+ @param[in] ImageHandle The firmware allocated handle for the EFI image.\r
+ @param[in] SystemTable A pointer to the EFI System Table.\r
+\r
+ @retval EFI_SUCCESS The entry point is executed successfully.\r
+ @retval other Some error occurs when executing this entry point.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterDriverEntry (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- )\r
-;\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
+ );\r
+\r
+/**\r
+ Construct console input devices' private data.\r
+\r
+ @param ConInPrivate A pointer to the TEXT_IN_SPLITTER_PRIVATE_DATA\r
+ structure.\r
\r
+ @retval EFI_OUT_OF_RESOURCES Out of resources.\r
+ @retval EFI_SUCCESS Text Input Devcie's private data has been constructed.\r
+ @retval other Failed to construct private data.\r
+\r
+**/\r
EFI_STATUS\r
ConSplitterTextInConstructor (\r
- TEXT_IN_SPLITTER_PRIVATE_DATA *Private\r
- )\r
-;\r
+ TEXT_IN_SPLITTER_PRIVATE_DATA *ConInPrivate\r
+ );\r
+\r
+/**\r
+ Construct console output devices' private data.\r
+\r
+ @param ConOutPrivate A pointer to the TEXT_OUT_SPLITTER_PRIVATE_DATA\r
+ structure.\r
+\r
+ @retval EFI_OUT_OF_RESOURCES Out of resources.\r
+ @retval EFI_SUCCESS Text Input Devcie's private data has been constructed.\r
\r
+**/\r
EFI_STATUS\r
ConSplitterTextOutConstructor (\r
- TEXT_OUT_SPLITTER_PRIVATE_DATA *Private\r
- )\r
-;\r
+ TEXT_OUT_SPLITTER_PRIVATE_DATA *ConOutPrivate\r
+ );\r
\r
-//\r
-// Driver Binding Functions\r
-//\r
+/**\r
+ Test to see if Console In Device could be supported on the Controller.\r
+\r
+ @param This Driver Binding protocol instance pointer.\r
+ @param ControllerHandle Handle of device to test.\r
+ @param RemainingDevicePath Optional parameter use to pick a specific child\r
+ device to start.\r
+\r
+ @retval EFI_SUCCESS This driver supports this device.\r
+ @retval other This driver does not support this device.\r
+\r
+**/\r
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
- )\r
-;\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ );\r
+\r
+/**\r
+ Test to see if Simple Pointer protocol could be supported on the Controller.\r
+\r
+ @param This Driver Binding protocol instance pointer.\r
+ @param ControllerHandle Handle of device to test.\r
+ @param RemainingDevicePath Optional parameter use to pick a specific child\r
+ device to start.\r
\r
+ @retval EFI_SUCCESS This driver supports this device.\r
+ @retval other This driver does not support this device.\r
+\r
+**/\r
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
- )\r
-;\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ );\r
+\r
+/**\r
+ Test to see if Console Out Device could be supported on the Controller.\r
+\r
+ @param This Driver Binding protocol instance pointer.\r
+ @param ControllerHandle Handle of device to test.\r
+ @param RemainingDevicePath Optional parameter use to pick a specific child\r
+ device to start.\r
+\r
+ @retval EFI_SUCCESS This driver supports this device.\r
+ @retval other This driver does not support this device.\r
\r
+**/\r
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
- )\r
-;\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ );\r
+\r
+/**\r
+ Test to see if Standard Error Device could be supported on the Controller.\r
\r
+ @param This Driver Binding protocol instance pointer.\r
+ @param ControllerHandle Handle of device to test.\r
+ @param RemainingDevicePath Optional parameter use to pick a specific child\r
+ device to start.\r
+\r
+ @retval EFI_SUCCESS This driver supports this device.\r
+ @retval other This driver does not support this device.\r
+\r
+**/\r
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
- )\r
-;\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ );\r
+\r
+/**\r
+ Start Console In Consplitter on device handle.\r
\r
+ @param This Driver Binding protocol instance pointer.\r
+ @param ControllerHandle Handle of device to bind driver to.\r
+ @param RemainingDevicePath Optional parameter use to pick a specific child\r
+ device to start.\r
+\r
+ @retval EFI_SUCCESS Console In Consplitter is added to ControllerHandle.\r
+ @retval other Console In Consplitter does not support this device.\r
+\r
+**/\r
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
- )\r
-;\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ );\r
+\r
+/**\r
+ Start Simple Pointer Consplitter on device handle.\r
+\r
+ @param This Driver Binding protocol instance pointer.\r
+ @param ControllerHandle Handle of device to bind driver to.\r
+ @param RemainingDevicePath Optional parameter use to pick a specific child\r
+ device to start.\r
\r
+ @retval EFI_SUCCESS Simple Pointer Consplitter is added to ControllerHandle.\r
+ @retval other Simple Pointer Consplitter does not support this device.\r
+\r
+**/\r
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
- )\r
-;\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ );\r
\r
+/**\r
+ Start Console Out Consplitter on device handle.\r
+\r
+ @param This Driver Binding protocol instance pointer.\r
+ @param ControllerHandle Handle of device to bind driver to.\r
+ @param RemainingDevicePath Optional parameter use to pick a specific child\r
+ device to start.\r
+\r
+ @retval EFI_SUCCESS Console Out Consplitter is added to ControllerHandle.\r
+ @retval other Console Out Consplitter does not support this device.\r
+\r
+**/\r
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
- )\r
-;\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ );\r
\r
+/**\r
+ Start Standard Error Consplitter on device handle.\r
+\r
+ @param This Driver Binding protocol instance pointer.\r
+ @param ControllerHandle Handle of device to bind driver to.\r
+ @param RemainingDevicePath Optional parameter use to pick a specific child\r
+ device to start.\r
+\r
+ @retval EFI_SUCCESS Standard Error Consplitter is added to ControllerHandle.\r
+ @retval other Standard Error Consplitter does not support this device.\r
+\r
+**/\r
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
- )\r
-;\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ );\r
+\r
+/**\r
+ Stop Console In ConSplitter on ControllerHandle by closing Console In Devcice GUID.\r
\r
+ @param This Driver Binding protocol instance pointer.\r
+ @param ControllerHandle Handle of device to stop driver on\r
+ @param NumberOfChildren Number of Handles in ChildHandleBuffer. If number of\r
+ children is zero stop the entire bus driver.\r
+ @param ChildHandleBuffer List of Child Handles to Stop.\r
+\r
+ @retval EFI_SUCCESS This driver is removed ControllerHandle\r
+ @retval other This driver was not removed from this device\r
+\r
+**/\r
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
- )\r
-;\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
+ Stop Simple Pointer protocol ConSplitter on ControllerHandle by closing\r
+ Simple Pointer protocol.\r
\r
+ @param This Driver Binding protocol instance pointer.\r
+ @param ControllerHandle Handle of device to stop driver on\r
+ @param NumberOfChildren Number of Handles in ChildHandleBuffer. If number of\r
+ children is zero stop the entire bus driver.\r
+ @param ChildHandleBuffer List of Child Handles to Stop.\r
+\r
+ @retval EFI_SUCCESS This driver is removed ControllerHandle\r
+ @retval other This driver was not removed from this device\r
+\r
+**/\r
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
- )\r
-;\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
+ Stop Console Out ConSplitter on device handle by closing Console Out Devcice GUID.\r
+\r
+ @param This Driver Binding protocol instance pointer.\r
+ @param ControllerHandle Handle of device to stop driver on\r
+ @param NumberOfChildren Number of Handles in ChildHandleBuffer. If number of\r
+ children is zero stop the entire bus driver.\r
+ @param ChildHandleBuffer List of Child Handles to Stop.\r
\r
+ @retval EFI_SUCCESS This driver is removed ControllerHandle\r
+ @retval other This driver was not removed from this device\r
+\r
+**/\r
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
- )\r
-;\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
+ Stop Standard Error ConSplitter on ControllerHandle by closing Standard Error GUID.\r
+\r
+ @param This Driver Binding protocol instance pointer.\r
+ @param ControllerHandle Handle of device to stop driver on\r
+ @param NumberOfChildren Number of Handles in ChildHandleBuffer. If number of\r
+ children is zero stop the entire bus driver.\r
+ @param ChildHandleBuffer List of Child Handles to Stop.\r
+\r
+ @retval EFI_SUCCESS This driver is removed ControllerHandle\r
+ @retval other This driver was not removed from this device\r
\r
+**/\r
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
- )\r
-;\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
-// Driver binding functions\r
-//\r
+/**\r
+ Test to see if Absolute Pointer protocol could be supported on the Controller.\r
+\r
+ @param This Driver Binding protocol instance pointer.\r
+ @param ControllerHandle Handle of device to test.\r
+ @param RemainingDevicePath Optional parameter use to pick a specific child\r
+ device to start.\r
+\r
+ @retval EFI_SUCCESS This driver supports this device.\r
+ @retval other This driver does not support this device.\r
\r
+**/\r
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
- )\r
-;\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ );\r
+\r
+/**\r
+ Start Absolute Pointer Consplitter on device handle.\r
\r
+ @param This Driver Binding protocol instance pointer.\r
+ @param ControllerHandle Handle of device to bind driver to.\r
+ @param RemainingDevicePath Optional parameter use to pick a specific child\r
+ device to start.\r
+\r
+ @retval EFI_SUCCESS Absolute Pointer Consplitter is added to ControllerHandle.\r
+ @retval other Absolute Pointer Consplitter does not support this device.\r
+\r
+**/\r
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
- )\r
-;\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
+ );\r
+\r
+/**\r
+ Stop Absolute Pointer protocol ConSplitter on ControllerHandle by closing\r
+ Absolute Pointer protocol.\r
+\r
+ @param This Driver Binding protocol instance pointer.\r
+ @param ControllerHandle Handle of device to stop driver on\r
+ @param NumberOfChildren Number of Handles in ChildHandleBuffer. If number of\r
+ children is zero stop the entire bus driver.\r
+ @param ChildHandleBuffer List of Child Handles to Stop.\r
\r
+ @retval EFI_SUCCESS This driver is removed ControllerHandle\r
+ @retval other This driver was not removed from this device\r
+\r
+**/\r
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
- )\r
-;\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
+ Add Absolute Pointer Device in Consplitter Absolute Pointer list.\r
+\r
+ @param Private Text In Splitter pointer.\r
+ @param AbsolutePointer Absolute Pointer protocol pointer.\r
+\r
+ @retval EFI_SUCCESS Absolute Pointer Device added successfully.\r
+ @retval EFI_OUT_OF_RESOURCES Could not grow the buffer size.\r
+\r
+**/\r
EFI_STATUS\r
ConSplitterAbsolutePointerAddDevice (\r
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
- IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer\r
- )\r
-;\r
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
+ IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer\r
+ );\r
\r
+/**\r
+ Remove Absolute Pointer Device from Consplitter Absolute Pointer list.\r
+\r
+ @param Private Text In Splitter pointer.\r
+ @param AbsolutePointer Absolute Pointer protocol pointer.\r
+\r
+ @retval EFI_SUCCESS Absolute Pointer Device removed successfully.\r
+ @retval EFI_NOT_FOUND No Absolute Pointer Device found.\r
+\r
+**/\r
EFI_STATUS\r
ConSplitterAbsolutePointerDeleteDevice (\r
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
- IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer\r
- )\r
-;\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
+ Resets the pointer device hardware.\r
+\r
+ @param This Protocol instance pointer.\r
+ @param ExtendedVerification Driver may perform diagnostics on reset.\r
+\r
+ @retval EFI_SUCCESS The device was reset.\r
+ @retval EFI_DEVICE_ERROR The device is not functioning correctly and\r
+ could not be reset.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterAbsolutePointerReset (\r
- IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,\r
- IN BOOLEAN ExtendedVerification\r
- )\r
-/*++\r
+ IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,\r
+ IN BOOLEAN ExtendedVerification\r
+ );\r
\r
- Routine Description:\r
- Resets the pointer device hardware.\r
+/**\r
+ Retrieves the current state of a pointer device.\r
\r
- Arguments:\r
- This - Protocol instance pointer.\r
- ExtendedVerification - Driver may perform diagnostics on reset.\r
+ @param This Protocol instance pointer.\r
+ @param State A pointer to the state information on the\r
+ pointer device.\r
\r
- Returns:\r
- EFI_SUCCESS - The device was reset.\r
- EFI_DEVICE_ERROR - The device is not functioning correctly and could \r
- not be reset.\r
- \r
---*/\r
-;\r
+ @retval EFI_SUCCESS The state of the pointer device was returned in\r
+ State..\r
+ @retval EFI_NOT_READY The state of the pointer device has not changed\r
+ since the last call to GetState().\r
+ @retval EFI_DEVICE_ERROR A device error occurred while attempting to\r
+ retrieve the pointer device's current state.\r
\r
+**/\r
EFI_STATUS\r
-EFIAPI \r
+EFIAPI\r
ConSplitterAbsolutePointerGetState (\r
IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,\r
IN OUT EFI_ABSOLUTE_POINTER_STATE *State\r
- )\r
-/*++\r
+ );\r
\r
- Routine Description:\r
- Retrieves the current state of a pointer device.\r
+/**\r
+ This event agregates all the events of the pointer devices in the splitter.\r
\r
- Arguments:\r
- This - Protocol instance pointer.\r
- State - A pointer to the state information on the pointer device.\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
\r
- Returns:\r
- EFI_SUCCESS - The state of the pointer device was returned in State..\r
- EFI_NOT_READY - The state of the pointer device has not changed since the last call to\r
- GetState(). \r
- EFI_DEVICE_ERROR - A device error occurred while attempting to retrieve the pointer\r
- device's current state. \r
---*/\r
-;\r
+ @param Event The Event assoicated with callback.\r
+ @param Context Context registered when Event was created.\r
\r
+**/\r
VOID\r
EFIAPI\r
ConSplitterAbsolutePointerWaitForInput (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
- )\r
-;\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
+ );\r
\r
/**\r
Retrieves a Unicode string that is the user readable name of the driver.\r
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
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
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
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
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
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
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
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
+ Retrieves a Unicode string that is the user readable name of the controller\r
+ that is being managed by an EFI Driver.\r
+\r
+ @param This A pointer to the EFI_COMPONENT_NAME_PROTOCOL\r
+ instance.\r
+ @param ControllerHandle The handle of a controller that the driver\r
+ specified by This is managing. This handle\r
+ specifies the controller whose name is to be\r
+ returned.\r
+ @param ChildHandle The handle of the child controller to retrieve the\r
+ name of. This is an optional parameter that may\r
+ be NULL. It will be NULL for device drivers. It\r
+ will also be NULL for a bus drivers that wish to\r
+ 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 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
+ number of languages supported by a driver is up to\r
+ the driver writer.\r
+ @param ControllerName A pointer to the Unicode string to return. This\r
+ Unicode string is the name of the controller\r
+ specified by ControllerHandle and ChildHandle in\r
+ the language specified by Language from the point\r
+ of view of the driver specified by This.\r
+\r
+ @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 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
+ @retval EFI_INVALID_PARAMETER ControllerName is NULL.\r
+ @retval EFI_UNSUPPORTED The driver specified by This is not currently\r
+ managing the controller specified by\r
+ ControllerHandle and ChildHandle.\r
+ @retval EFI_UNSUPPORTED The driver specified by This does not support the\r
+ language specified by Language.\r
+\r
+**/\r
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
- )\r
-;\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
Retrieves a Unicode string that is the user readable name of the controller\r
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
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
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
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
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
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
+\r
+/**\r
+ Add Text Input Device in Consplitter Text Input list.\r
+\r
+ @param Private Text In Splitter pointer.\r
+ @param TextIn Simple Text Input protocol pointer.\r
+\r
+ @retval EFI_SUCCESS Text Input Device added successfully.\r
+ @retval EFI_OUT_OF_RESOURCES Could not grow the buffer size.\r
+\r
+**/\r
EFI_STATUS\r
ConSplitterTextInAddDevice (\r
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
- IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn\r
- )\r
-;\r
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
+ IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn\r
+ );\r
\r
+/**\r
+ Remove Text Input Device from Consplitter Text Input list.\r
+\r
+ @param Private Text In Splitter pointer.\r
+ @param TextIn Simple Text protocol pointer.\r
+\r
+ @retval EFI_SUCCESS Simple Text Device removed successfully.\r
+ @retval EFI_NOT_FOUND No Simple Text Device found.\r
+\r
+**/\r
EFI_STATUS\r
ConSplitterTextInDeleteDevice (\r
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
- IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn\r
- )\r
-;\r
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
+ IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn\r
+ );\r
\r
//\r
// SimplePointer Constuctor/Destructor functions\r
//\r
+\r
+/**\r
+ Add Simple Pointer Device in Consplitter Simple Pointer list.\r
+\r
+ @param Private Text In Splitter pointer.\r
+ @param SimplePointer Simple Pointer protocol pointer.\r
+\r
+ @retval EFI_SUCCESS Simple Pointer Device added successfully.\r
+ @retval EFI_OUT_OF_RESOURCES Could not grow the buffer size.\r
+\r
+**/\r
EFI_STATUS\r
ConSplitterSimplePointerAddDevice (\r
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
- IN EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer\r
- )\r
-;\r
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
+ IN EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer\r
+ );\r
+\r
+/**\r
+ Remove Simple Pointer Device from Consplitter Simple Pointer list.\r
+\r
+ @param Private Text In Splitter pointer.\r
+ @param SimplePointer Simple Pointer protocol pointer.\r
+\r
+ @retval EFI_SUCCESS Simple Pointer Device removed successfully.\r
+ @retval EFI_NOT_FOUND No Simple Pointer Device found.\r
\r
+**/\r
EFI_STATUS\r
ConSplitterSimplePointerDeleteDevice (\r
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
- IN EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer\r
- )\r
-;\r
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
+ IN EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer\r
+ );\r
\r
//\r
// TextOut Constuctor/Destructor functions\r
//\r
+\r
+/**\r
+ Add Text Output Device in Consplitter Text Output list.\r
+\r
+ @param Private Text Out Splitter pointer.\r
+ @param TextOut Simple Text Output protocol pointer.\r
+ @param GraphicsOutput Graphics Output protocol pointer.\r
+ @param UgaDraw UGA Draw protocol pointer.\r
+\r
+ @retval EFI_SUCCESS Text Output Device added successfully.\r
+ @retval EFI_OUT_OF_RESOURCES Could not grow the buffer size.\r
+\r
+**/\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
- )\r
-;\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
+ Remove Text Out Device in Consplitter Text Out list.\r
+\r
+ @param Private Text Out Splitter pointer.\r
+ @param TextOut Simple Text Output Pointer protocol pointer.\r
+\r
+ @retval EFI_SUCCESS Text Out Device removed successfully.\r
+ @retval EFI_NOT_FOUND No Text Out Device found.\r
\r
+**/\r
EFI_STATUS\r
ConSplitterTextOutDeleteDevice (\r
- IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut\r
- )\r
-;\r
+ IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut\r
+ );\r
\r
//\r
// TextIn I/O Functions\r
//\r
+\r
+/**\r
+ Reset the input device and optionaly run diagnostics\r
+\r
+ @param This Protocol instance pointer.\r
+ @param ExtendedVerification Driver may perform diagnostics on reset.\r
+\r
+ @retval EFI_SUCCESS The device was reset.\r
+ @retval EFI_DEVICE_ERROR The device is not functioning properly and could\r
+ not be reset.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterTextInReset (\r
- IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,\r
- IN BOOLEAN ExtendedVerification\r
- )\r
-;\r
+ IN EFI_SIMPLE_TEXT_INPUT_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
+\r
+ @param This Protocol instance pointer.\r
+ @param Key Driver may perform diagnostics on reset.\r
+\r
+ @retval EFI_SUCCESS The keystroke information was returned.\r
+ @retval EFI_NOT_READY There was no keystroke data availiable.\r
+ @retval EFI_DEVICE_ERROR The keydtroke information was not returned due\r
+ to hardware errors.\r
\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterTextInReadKeyStroke (\r
- IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,\r
- OUT EFI_INPUT_KEY *Key\r
- )\r
-;\r
+ IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,\r
+ OUT EFI_INPUT_KEY *Key\r
+ );\r
+\r
+/**\r
+ Add Text Input Ex Device in Consplitter Text Input Ex list.\r
+\r
+ @param Private Text In Splitter pointer.\r
+ @param TextInEx Simple Text Input Ex Input protocol pointer.\r
+\r
+ @retval EFI_SUCCESS Text Input Ex Device added successfully.\r
+ @retval EFI_OUT_OF_RESOURCES Could not grow the buffer size.\r
+\r
+**/\r
EFI_STATUS\r
ConSplitterTextInExAddDevice (\r
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
- IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx\r
- )\r
-;\r
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
+ IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx\r
+ );\r
+\r
+/**\r
+ Remove Text Ex Device from Consplitter Text Input Ex list.\r
+\r
+ @param Private Text In Splitter pointer.\r
+ @param TextInEx Simple Text Ex protocol pointer.\r
\r
+ @retval EFI_SUCCESS Simple Text Input Ex Device removed successfully.\r
+ @retval EFI_NOT_FOUND No Simple Text Input Ex Device found.\r
+\r
+**/\r
EFI_STATUS\r
ConSplitterTextInExDeleteDevice (\r
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
- IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx\r
- )\r
-;\r
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
+ IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx\r
+ );\r
\r
//\r
// Simple Text Input Ex protocol function prototypes\r
//\r
\r
+/**\r
+ Reset the input device and optionaly run diagnostics\r
+\r
+ @param This Protocol instance pointer.\r
+ @param ExtendedVerification Driver may perform diagnostics on reset.\r
+\r
+ @retval EFI_SUCCESS The device was reset.\r
+ @retval EFI_DEVICE_ERROR The device is not functioning properly and could\r
+ not be reset.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterTextInResetEx (\r
IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
IN BOOLEAN ExtendedVerification\r
- )\r
-/*++\r
-\r
- Routine Description:\r
- Reset the input device and optionaly run diagnostics\r
+ );\r
\r
- Arguments:\r
- This - Protocol instance pointer.\r
- ExtendedVerification - Driver may perform diagnostics on reset.\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
\r
- Returns:\r
- EFI_SUCCESS - The device was reset.\r
- EFI_DEVICE_ERROR - The device is not functioning properly and could \r
- not be reset.\r
+ @param This Protocol instance pointer.\r
+ @param KeyData A pointer to a buffer that is filled in with the\r
+ keystroke state data for the key that was\r
+ pressed.\r
\r
---*/\r
-;\r
+ @retval EFI_SUCCESS The keystroke information was returned.\r
+ @retval EFI_NOT_READY There was no keystroke data availiable.\r
+ @retval EFI_DEVICE_ERROR The keystroke information was not returned due\r
+ to hardware errors.\r
+ @retval EFI_INVALID_PARAMETER KeyData is NULL.\r
\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterTextInReadKeyStrokeEx (\r
- IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
- OUT EFI_KEY_DATA *KeyData\r
- )\r
-/*++\r
-\r
- Routine Description:\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
-\r
- Arguments:\r
- This - Protocol instance pointer.\r
- KeyData - A pointer to a buffer that is filled in with the keystroke \r
- state data for the key that was pressed.\r
-\r
- Returns:\r
- EFI_SUCCESS - The keystroke information was returned.\r
- EFI_NOT_READY - There was no keystroke data availiable.\r
- EFI_DEVICE_ERROR - The keystroke information was not returned due to \r
- hardware errors.\r
- EFI_INVALID_PARAMETER - KeyData is NULL. \r
-\r
---*/\r
-;\r
+ IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
+ OUT EFI_KEY_DATA *KeyData\r
+ );\r
+\r
+/**\r
+ Set certain state for the input device.\r
+\r
+ @param This Protocol instance pointer.\r
+ @param KeyToggleState A pointer to the EFI_KEY_TOGGLE_STATE to set the\r
+ state for the input device.\r
\r
+ @retval EFI_SUCCESS The device state was set successfully.\r
+ @retval EFI_DEVICE_ERROR The device is not functioning correctly and\r
+ could not have the setting adjusted.\r
+ @retval EFI_UNSUPPORTED The device does not have the ability to set its\r
+ state.\r
+ @retval EFI_INVALID_PARAMETER KeyToggleState is NULL.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterTextInSetState (\r
IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
IN EFI_KEY_TOGGLE_STATE *KeyToggleState\r
- )\r
-/*++\r
-\r
- Routine Description:\r
- Set certain state for the input device.\r
-\r
- Arguments:\r
- This - Protocol instance pointer.\r
- KeyToggleState - A pointer to the EFI_KEY_TOGGLE_STATE to set the \r
- state for the input device.\r
- \r
- Returns: \r
- EFI_SUCCESS - The device state was set successfully.\r
- EFI_DEVICE_ERROR - The device is not functioning correctly and could \r
- not have the setting adjusted.\r
- EFI_UNSUPPORTED - The device does not have the ability to set its state.\r
- EFI_INVALID_PARAMETER - KeyToggleState is NULL. \r
-\r
---*/ \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\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. 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
+ @retval EFI_SUCCESS The notification function was registered\r
+ successfully.\r
+ @retval EFI_OUT_OF_RESOURCES Unable to allocate resources for necesssary data\r
+ structures.\r
+ @retval EFI_INVALID_PARAMETER KeyData or KeyNotificationFunction or NotifyHandle is NULL.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterTextInRegisterKeyNotify (\r
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
- )\r
-/*++\r
-\r
- Routine Description:\r
- Register a notification function for a particular keystroke for the input device.\r
-\r
- Arguments:\r
- This - Protocol instance pointer.\r
- KeyData - A pointer to a buffer that is filled in with the keystroke \r
- information data for the key that was pressed.\r
- KeyNotificationFunction - Points to the function to be called when the key \r
- sequence is typed specified by KeyData. \r
- NotifyHandle - Points to the unique handle assigned to the registered notification. \r
-\r
- Returns:\r
- EFI_SUCCESS - The notification function was registered successfully.\r
- EFI_OUT_OF_RESOURCES - Unable to allocate resources for necesssary data structures.\r
- EFI_INVALID_PARAMETER - KeyData or NotifyHandle is NULL. \r
- \r
---*/ \r
-;\r
+ OUT VOID **NotifyHandle\r
+ );\r
+\r
+/**\r
+ Remove a registered notification function from a particular keystroke.\r
+\r
+ @param This Protocol instance pointer.\r
+ @param NotificationHandle The handle of the notification function being\r
+ unregistered.\r
\r
+ @retval EFI_SUCCESS The notification function was unregistered\r
+ successfully.\r
+ @retval EFI_INVALID_PARAMETER The NotificationHandle is invalid.\r
+ @retval EFI_NOT_FOUND Can not find the matching entry in database.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterTextInUnregisterKeyNotify (\r
IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
- IN EFI_HANDLE NotificationHandle\r
- )\r
-/*++\r
-\r
- Routine Description:\r
- Remove a registered notification function from a particular keystroke.\r
-\r
- Arguments:\r
- This - Protocol instance pointer. \r
- NotificationHandle - The handle of the notification function being unregistered.\r
-\r
- Returns:\r
- EFI_SUCCESS - The notification function was unregistered successfully.\r
- EFI_INVALID_PARAMETER - The NotificationHandle is invalid.\r
- EFI_NOT_FOUND - Can not find the matching entry in database. \r
- \r
---*/ \r
-;\r
+ IN VOID *NotificationHandle\r
+ );\r
+\r
+/**\r
+ This event aggregates all the events of the ConIn devices in the spliter.\r
+\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
+\r
+ @param Event The Event assoicated with callback.\r
+ @param Context Context registered when Event was created.\r
+\r
+**/\r
VOID\r
EFIAPI\r
ConSplitterTextInWaitForKey (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
- )\r
-;\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
+ );\r
\r
-BOOLEAN\r
-ConSpliterConssoleControlStdInLocked (\r
- VOID\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
\r
-VOID\r
-EFIAPI\r
-ConSpliterConsoleControlLockStdInEvent (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
- )\r
-;\r
+ @param Private Protocol instance pointer.\r
+ @param Key Driver may perform diagnostics on reset.\r
\r
-EFI_STATUS\r
-EFIAPI\r
-ConSpliterConsoleControlLockStdIn (\r
- IN EFI_CONSOLE_CONTROL_PROTOCOL *This,\r
- IN CHAR16 *Password\r
- )\r
-;\r
+ @retval EFI_SUCCESS The keystroke information was returned.\r
+ @retval EFI_NOT_READY There was no keystroke data availiable.\r
+ @retval EFI_DEVICE_ERROR The keydtroke information was not returned due\r
+ to hardware errors.\r
\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterTextInPrivateReadKeyStroke (\r
- IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
- OUT EFI_INPUT_KEY *Key\r
- )\r
-;\r
+ IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
+ OUT EFI_INPUT_KEY *Key\r
+ );\r
+\r
+/**\r
+ Reset the input device and optionaly run diagnostics\r
+\r
+ @param This Protocol instance pointer.\r
+ @param ExtendedVerification Driver may perform diagnostics on reset.\r
\r
+ @retval EFI_SUCCESS The device was reset.\r
+ @retval EFI_DEVICE_ERROR The device is not functioning properly and could\r
+ not be reset.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterSimplePointerReset (\r
- IN EFI_SIMPLE_POINTER_PROTOCOL *This,\r
- IN BOOLEAN ExtendedVerification\r
- )\r
-;\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
+\r
+ @param This A pointer to protocol instance.\r
+ @param State A pointer to state information on the pointer device\r
+\r
+ @retval EFI_SUCCESS The keystroke information was returned in State.\r
+ @retval EFI_NOT_READY There was no keystroke data availiable.\r
+ @retval EFI_DEVICE_ERROR The keydtroke information was not returned due\r
+ to hardware errors.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterSimplePointerGetState (\r
- IN EFI_SIMPLE_POINTER_PROTOCOL *This,\r
- IN OUT EFI_SIMPLE_POINTER_STATE *State\r
- )\r
-;\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 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
\r
+ @param Event The Event assoicated with callback.\r
+ @param Context Context registered when Event was created.\r
+\r
+**/\r
VOID\r
EFIAPI\r
ConSplitterSimplePointerWaitForInput (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
- )\r
-;\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
+ );\r
\r
//\r
// TextOut I/O Functions\r
//\r
-VOID\r
-ConSplitterSynchronizeModeData (\r
- TEXT_OUT_SPLITTER_PRIVATE_DATA *Private\r
- )\r
-;\r
\r
+/**\r
+ Reset the text output device hardware and optionaly run diagnostics\r
+\r
+ @param This Protocol instance pointer.\r
+ @param ExtendedVerification Driver may perform more exhaustive verfication\r
+ operation of the device during reset.\r
+\r
+ @retval EFI_SUCCESS The text output device was reset.\r
+ @retval EFI_DEVICE_ERROR The text output device is not functioning\r
+ correctly and could not be reset.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterTextOutReset (\r
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
- IN BOOLEAN ExtendedVerification\r
- )\r
-;\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
+ IN BOOLEAN ExtendedVerification\r
+ );\r
\r
+/**\r
+ Write a Unicode string to the output device.\r
+\r
+ @param This Protocol instance pointer.\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
EFIAPI\r
ConSplitterTextOutOutputString (\r
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
- IN CHAR16 *WString\r
- )\r
-;\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
+ IN CHAR16 *WString\r
+ );\r
+\r
+/**\r
+ Verifies that all characters in a Unicode string can be output to the\r
+ target device.\r
+\r
+ @param This Protocol instance pointer.\r
+ @param WString The NULL-terminated Unicode string to be\r
+ examined for the output device(s).\r
\r
+ @retval EFI_SUCCESS The device(s) are capable of rendering the\r
+ output string.\r
+ @retval EFI_UNSUPPORTED Some of the characters in the Unicode string\r
+ cannot be rendered by one or more of the output\r
+ devices mapped by the EFI handle.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterTextOutTestString (\r
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
- IN CHAR16 *WString\r
- )\r
-;\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
+ IN CHAR16 *WString\r
+ );\r
\r
+/**\r
+ Returns information for an available text mode that the output device(s)\r
+ supports.\r
+\r
+ @param This Protocol instance pointer.\r
+ @param ModeNumber The mode number to return information on.\r
+ @param Columns Returns the columns of the text output device\r
+ for the requested ModeNumber.\r
+ @param Rows Returns the rows of the text output device\r
+ for the requested ModeNumber.\r
+\r
+ @retval EFI_SUCCESS The requested mode information was returned.\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
+\r
+**/\r
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
- )\r
-;\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
+ IN UINTN ModeNumber,\r
+ OUT UINTN *Columns,\r
+ OUT UINTN *Rows\r
+ );\r
\r
+/**\r
+ Sets the output device(s) to a specified mode.\r
+\r
+ @param This Protocol instance 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
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterTextOutSetMode (\r
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
- IN UINTN ModeNumber\r
- )\r
-;\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
+ IN UINTN ModeNumber\r
+ );\r
+\r
+/**\r
+ Sets the background and foreground colors for the OutputString () and\r
+ ClearScreen () functions.\r
+\r
+ @param This Protocol instance pointer.\r
+ @param Attribute The attribute to set. Bits 0..3 are the\r
+ foreground color, and bits 4..6 are the\r
+ background color. All other bits are undefined\r
+ and must be zero. The valid Attributes are\r
+ defined in this file.\r
\r
+ @retval EFI_SUCCESS The attribute was set.\r
+ @retval EFI_DEVICE_ERROR The device had an error and could not complete\r
+ the request.\r
+ @retval EFI_UNSUPPORTED The attribute requested is not defined.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterTextOutSetAttribute (\r
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
- IN UINTN Attribute\r
- )\r
-;\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
+ IN UINTN Attribute\r
+ );\r
+\r
+/**\r
+ Clears the output device(s) display to the currently selected background\r
+ color.\r
\r
+ @param This Protocol instance 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
EFIAPI\r
ConSplitterTextOutClearScreen (\r
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This\r
- )\r
-;\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This\r
+ );\r
\r
+/**\r
+ Sets the current coordinates of the cursor position\r
+\r
+ @param This Protocol instance 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 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
+ or the cursor position is invalid for the\r
+ current mode.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterTextOutSetCursorPosition (\r
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
- IN UINTN Column,\r
- IN UINTN Row\r
- )\r
-;\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
+ IN UINTN Column,\r
+ IN UINTN Row\r
+ );\r
+\r
+/**\r
+ Makes the cursor visible or invisible\r
+\r
+ @param This Protocol instance 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 The operation completed successfully.\r
+ @retval EFI_DEVICE_ERROR The device had an error and could not complete\r
+ the request, or the device does not support\r
+ changing the cursor mode.\r
+ @retval EFI_UNSUPPORTED The output device is not in a valid text mode.\r
+\r
+**/\r
EFI_STATUS\r
EFIAPI\r
ConSplitterTextOutEnableCursor (\r
- IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
- IN BOOLEAN Visible\r
- )\r
-;\r
+ IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
+ IN BOOLEAN Visible\r
+ );\r
\r
+/**\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 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
+\r
+ @retval EFI_SUCCESS Buffer size has grown.\r
+ @retval EFI_OUT_OF_RESOURCES Could not grow the buffer size.\r
+\r
+**/\r
EFI_STATUS\r
ConSplitterGrowBuffer (\r
- IN UINTN SizeOfCount,\r
- IN UINTN *Count,\r
- IN OUT VOID **Buffer\r
- )\r
-;\r
+ IN UINTN ElementSize,\r
+ IN OUT UINTN *Count,\r
+ IN OUT VOID **Buffer\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 *GopExists,\r
- OUT BOOLEAN *StdInLocked\r
- )\r
-;\r
+/**\r
+ Returns information for an available graphics mode that the graphics device\r
+ and the set of active video output devices supports.\r
\r
-EFI_STATUS\r
-EFIAPI\r
-ConSpliterConsoleControlSetMode (\r
- IN EFI_CONSOLE_CONTROL_PROTOCOL *This,\r
- IN EFI_CONSOLE_CONTROL_SCREEN_MODE Mode\r
- )\r
-;\r
+ @param This The EFI_GRAPHICS_OUTPUT_PROTOCOL instance.\r
+ @param ModeNumber The mode number to return information on.\r
+ @param SizeOfInfo A pointer to the size, in bytes, of the Info buffer.\r
+ @param Info A pointer to callee allocated buffer that returns information about ModeNumber.\r
+\r
+ @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_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
- IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,\r
- IN UINT32 ModeNumber,\r
- OUT UINTN *SizeOfInfo,\r
+ConSplitterGraphicsOutputQueryMode (\r
+ IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,\r
+ IN UINT32 ModeNumber,\r
+ OUT UINTN *SizeOfInfo,\r
OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION **Info\r
- )\r
-;\r
+ );\r
\r
-EFI_STATUS\r
-EFIAPI\r
-ConSpliterGraphicsOutputSetMode (\r
- IN EFI_GRAPHICS_OUTPUT_PROTOCOL * This,\r
- IN UINT32 ModeNumber\r
- )\r
-;\r
+/**\r
+ Set the video device into the specified mode and clears the visible portions of\r
+ the output display to black.\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
+ @param This The EFI_GRAPHICS_OUTPUT_PROTOCOL instance.\r
+ @param ModeNumber Abstraction that defines the current video mode.\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
- )\r
-;\r
+ @retval EFI_SUCCESS The graphics mode specified by ModeNumber was selected.\r
+ @retval EFI_DEVICE_ERROR The device had an error and could not complete the request.\r
+ @retval EFI_UNSUPPORTED ModeNumber is not supported by this device.\r
+ @retval EFI_OUT_OF_RESOURCES No resource available.\r
\r
+**/\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
- )\r
-;\r
+ConSplitterGraphicsOutputSetMode (\r
+ IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,\r
+ IN UINT32 ModeNumber\r
+ );\r
\r
+/**\r
+ The following table defines actions for BltOperations.\r
+\r
+ EfiBltVideoFill - Write data from the BltBuffer pixel (SourceX, SourceY)\r
+ directly to every pixel of the video display rectangle\r
+ (DestinationX, DestinationY)\r
+ (DestinationX + Width, DestinationY + Height).\r
+ Only one pixel will be used from the BltBuffer. Delta is NOT used.\r
+ EfiBltVideoToBltBuffer - Read data from the video display rectangle\r
+ (SourceX, SourceY) (SourceX + Width, SourceY + Height) and place it in\r
+ the BltBuffer rectangle (DestinationX, DestinationY )\r
+ (DestinationX + Width, DestinationY + Height). If DestinationX or\r
+ DestinationY is not zero then Delta must be set to the length in bytes\r
+ of a row in the BltBuffer.\r
+ EfiBltBufferToVideo - Write data from the BltBuffer rectangle\r
+ (SourceX, SourceY) (SourceX + Width, SourceY + Height) directly to the\r
+ video display rectangle (DestinationX, DestinationY)\r
+ (DestinationX + Width, DestinationY + Height). If SourceX or SourceY is\r
+ not zero then Delta must be set to the length in bytes of a row in the\r
+ BltBuffer.\r
+ EfiBltVideoToVideo - Copy from the video display rectangle\r
+ (SourceX, SourceY) (SourceX + Width, SourceY + Height) .\r
+ to the video display rectangle (DestinationX, DestinationY)\r
+ (DestinationX + Width, DestinationY + Height).\r
+ The BltBuffer and Delta are not used in this mode.\r
+\r
+ @param This Protocol instance pointer.\r
+ @param BltBuffer Buffer containing data to blit into video buffer.\r
+ This buffer has a size of\r
+ Width*Height*sizeof(EFI_GRAPHICS_OUTPUT_BLT_PIXEL)\r
+ @param BltOperation Operation to perform on BlitBuffer and video\r
+ memory\r
+ @param SourceX X coordinate of source for the BltBuffer.\r
+ @param SourceY Y coordinate of source for the BltBuffer.\r
+ @param DestinationX X coordinate of destination for the BltBuffer.\r
+ @param DestinationY Y coordinate of destination for the BltBuffer.\r
+ @param Width Width of rectangle in BltBuffer in pixels.\r
+ @param Height Hight of rectangle in BltBuffer in pixels.\r
+ @param Delta OPTIONAL.\r
+\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 occurred writting to the video\r
+ buffer.\r
+\r
+**/\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
- )\r
-;\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
+ Return the current video mode information.\r
+\r
+ @param This The EFI_UGA_DRAW_PROTOCOL instance.\r
+ @param HorizontalResolution The size of video screen in pixels in the X dimension.\r
+ @param VerticalResolution The size of video screen in pixels in the Y dimension.\r
+ @param ColorDepth Number of bits per pixel, currently defined to be 32.\r
+ @param RefreshRate The refresh rate of the monitor in Hertz.\r
+\r
+ @retval EFI_SUCCESS Mode information returned.\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
+\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
+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
-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
+ Set the current video mode information.\r
\r
-EFI_STATUS\r
-DevNullTextOutOutputString (\r
- IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
- IN CHAR16 *WString\r
- )\r
-;\r
+ @param This The EFI_UGA_DRAW_PROTOCOL instance.\r
+ @param HorizontalResolution The size of video screen in pixels in the X dimension.\r
+ @param VerticalResolution The size of video screen in pixels in the Y dimension.\r
+ @param ColorDepth Number of bits per pixel, currently defined to be 32.\r
+ @param RefreshRate The refresh rate of the monitor in Hertz.\r
\r
-EFI_STATUS\r
-DevNullTextOutSetMode (\r
- IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
- IN UINTN ModeNumber\r
- )\r
-;\r
+ @retval EFI_SUCCESS Mode information returned.\r
+ @retval EFI_NOT_STARTED Video display is not initialized. Call SetMode ()\r
+ @retval EFI_OUT_OF_RESOURCES Out of resources.\r
\r
+**/\r
EFI_STATUS\r
-DevNullTextOutClearScreen (\r
- IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private\r
- )\r
-;\r
+EFIAPI\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
-EFI_STATUS\r
-DevNullTextOutSetCursorPosition (\r
- IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
- IN UINTN Column,\r
- IN UINTN Row\r
- )\r
-;\r
+/**\r
+ Blt a rectangle of pixels on the graphics screen.\r
+\r
+ The following table defines actions for BltOperations.\r
+\r
+ EfiUgaVideoFill:\r
+ Write data from the BltBuffer pixel (SourceX, SourceY)\r
+ directly to every pixel of the video display rectangle\r
+ (DestinationX, DestinationY)\r
+ (DestinationX + Width, DestinationY + Height).\r
+ Only one pixel will be used from the BltBuffer. Delta is NOT used.\r
+ EfiUgaVideoToBltBuffer:\r
+ Read data from the video display rectangle\r
+ (SourceX, SourceY) (SourceX + Width, SourceY + Height) and place it in\r
+ the BltBuffer rectangle (DestinationX, DestinationY )\r
+ (DestinationX + Width, DestinationY + Height). If DestinationX or\r
+ DestinationY is not zero then Delta must be set to the length in bytes\r
+ of a row in the BltBuffer.\r
+ EfiUgaBltBufferToVideo:\r
+ Write data from the BltBuffer rectangle\r
+ (SourceX, SourceY) (SourceX + Width, SourceY + Height) directly to the\r
+ video display rectangle (DestinationX, DestinationY)\r
+ (DestinationX + Width, DestinationY + Height). If SourceX or SourceY is\r
+ not zero then Delta must be set to the length in bytes of a row in the\r
+ BltBuffer.\r
+ EfiUgaVideoToVideo:\r
+ Copy from the video display rectangle\r
+ (SourceX, SourceY) (SourceX + Width, SourceY + Height) .\r
+ to the video display rectangle (DestinationX, DestinationY)\r
+ (DestinationX + Width, DestinationY + Height).\r
+ The BltBuffer and Delta are not used in this mode.\r
+\r
+ @param This Protocol instance pointer.\r
+ @param BltBuffer Buffer containing data to blit into video buffer. This\r
+ buffer has a size of Width*Height*sizeof(EFI_UGA_PIXEL)\r
+ @param BltOperation Operation to perform on BlitBuffer and video memory\r
+ @param SourceX X coordinate of source for the BltBuffer.\r
+ @param SourceY Y coordinate of source for the BltBuffer.\r
+ @param DestinationX X coordinate of destination for the BltBuffer.\r
+ @param DestinationY Y coordinate of destination for the BltBuffer.\r
+ @param Width Width of rectangle in BltBuffer in pixels.\r
+ @param Height Hight of rectangle in BltBuffer in pixels.\r
+ @param Delta OPTIONAL\r
+\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 occurred writting to the video buffer.\r
\r
+**/\r
EFI_STATUS\r
-DevNullTextOutEnableCursor (\r
- IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
- IN BOOLEAN Visible\r
- )\r
-;\r
+EFIAPI\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
-EFI_STATUS\r
-DevNullSyncGopStdOut (\r
- IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private\r
- )\r
-;\r
+/**\r
+ Sets the output device(s) to a specified mode.\r
+\r
+ @param Private Text Out Splitter pointer.\r
+ @param ModeNumber The mode number to set.\r
+\r
+**/\r
+VOID\r
+TextOutSetMode (\r
+ IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
+ IN UINTN ModeNumber\r
+ );\r
\r
#endif\r