/** @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
#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
#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
#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
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
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
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
**/\r
EFI_STATUS\r
ConSplitterTextInConstructor (\r
- TEXT_IN_SPLITTER_PRIVATE_DATA *ConInPrivate\r
+ TEXT_IN_SPLITTER_PRIVATE_DATA *ConInPrivate\r
);\r
\r
/**\r
**/\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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
**/\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
**/\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
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
\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
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
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
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
@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
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
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
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
**/\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
**/\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
**/\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
/**\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
**/\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
**/\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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
**/\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
@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
**/\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
\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
**/\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
**/\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
\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
@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