]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.h
Clean codes per ECC for ConSplitterDxe module.
[mirror_edk2.git] / MdeModulePkg / Universal / Console / ConSplitterDxe / ConSplitter.h
CommitLineData
a4d608d1 1/** @file\r
95276127 2 Private data structures for the Console Splitter driver\r
3\r
a4d608d1 4Copyright (c) 2006 - 2008 Intel Corporation. <BR>\r
95276127 5All rights reserved. This program and the accompanying materials\r
6are licensed and made available under the terms and conditions of the BSD License\r
7which accompanies this distribution. The full text of the license may be found at\r
8http://opensource.org/licenses/bsd-license.php\r
9\r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13**/\r
14\r
15#ifndef _CON_SPLITTER_H_\r
16#define _CON_SPLITTER_H_\r
17\r
97a079ed
A
18#include <PiDxe.h>\r
19#include <Guid/PrimaryStandardErrorDevice.h>\r
20#include <Guid/PrimaryConsoleOutDevice.h>\r
21#include <Protocol/GraphicsOutput.h>\r
22#include <Guid/PrimaryConsoleInDevice.h>\r
189eac21 23#include <Guid/GenericPlatformVariable.h>\r
97a079ed 24#include <Protocol/SimplePointer.h>\r
8ae0b360 25#include <Protocol/AbsolutePointer.h>\r
97a079ed
A
26#include <Protocol/SimpleTextOut.h>\r
27#include <Guid/ConsoleInDevice.h>\r
28#include <Protocol/SimpleTextIn.h>\r
66aa04e4 29#include <Protocol/SimpleTextInEx.h>\r
97a079ed
A
30#include <Protocol/ConsoleControl.h>\r
31#include <Guid/StandardErrorDevice.h>\r
32#include <Guid/ConsoleOutDevice.h>\r
33#include <Protocol/UgaDraw.h>\r
d0c64728 34#include <Library/PcdLib.h>\r
97a079ed
A
35#include <Library/DebugLib.h>\r
36#include <Library/UefiDriverEntryPoint.h>\r
37#include <Library/UefiLib.h>\r
38#include <Library/BaseLib.h>\r
39#include <Library/BaseMemoryLib.h>\r
40#include <Library/MemoryAllocationLib.h>\r
41#include <Library/UefiBootServicesTableLib.h>\r
189eac21 42#include <Library/UefiRuntimeServicesTableLib.h>\r
43\r
97a079ed 44\r
95276127 45//\r
97a079ed 46// Driver Binding Externs\r
95276127 47//\r
5bca971e 48extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterConInDriverBinding;\r
49extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterConInComponentName;\r
50extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConInComponentName2;\r
51extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterSimplePointerDriverBinding;\r
52extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterSimplePointerComponentName;\r
53extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterSimplePointerComponentName2;\r
b71f6b3c 54extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterAbsolutePointerDriverBinding;\r
8ae0b360 55extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterAbsolutePointerComponentName;\r
56extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterAbsolutePointerComponentName2;\r
5bca971e 57extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterConOutDriverBinding;\r
58extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterConOutComponentName;\r
59extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterConOutComponentName2;\r
60extern EFI_DRIVER_BINDING_PROTOCOL gConSplitterStdErrDriverBinding;\r
61extern EFI_COMPONENT_NAME_PROTOCOL gConSplitterStdErrComponentName;\r
62extern EFI_COMPONENT_NAME2_PROTOCOL gConSplitterStdErrComponentName2;\r
97a079ed 63\r
66aa04e4 64extern EFI_GUID gSimpleTextInExNotifyGuid;\r
65\r
97a079ed
A
66// These definitions were in the old Hii protocol, but are not in the new UEFI\r
67// version. So they are defined locally.\r
68#define UNICODE_NARROW_CHAR 0xFFF0\r
d0c64728 69#define UNICODE_WIDE_CHAR 0xFFF1\r
97a079ed 70\r
95276127 71\r
72//\r
73// Private Data Structures\r
74//\r
75#define CONSOLE_SPLITTER_CONSOLES_ALLOC_UNIT 32\r
76#define CONSOLE_SPLITTER_MODES_ALLOC_UNIT 32\r
77#define MAX_STD_IN_PASSWORD 80\r
78\r
a4d608d1 79#define VARCONOUTMODE L"ConOutMode"\r
189eac21 80\r
81typedef struct {\r
82 UINTN Column;\r
83 UINTN Row;\r
84} CONSOLE_OUT_MODE;\r
85\r
95276127 86typedef struct {\r
87 UINTN Columns;\r
88 UINTN Rows;\r
89} TEXT_OUT_SPLITTER_QUERY_DATA;\r
90\r
91//\r
92// Private data for the EFI_SIMPLE_TEXT_INPUT_PROTOCOL splitter\r
93//\r
94#define TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('T', 'i', 'S', 'p')\r
95\r
66aa04e4 96#define TEXT_IN_EX_SPLITTER_NOTIFY_SIGNATURE EFI_SIGNATURE_32 ('T', 'i', 'S', 'n')\r
97\r
98typedef struct _TEXT_IN_EX_SPLITTER_NOTIFY {\r
99 UINTN Signature;\r
100 EFI_HANDLE *NotifyHandleList;\r
101 EFI_HANDLE NotifyHandle;\r
102 EFI_KEY_DATA KeyData;\r
103 EFI_KEY_NOTIFY_FUNCTION KeyNotificationFn;\r
104 LIST_ENTRY NotifyEntry;\r
105} TEXT_IN_EX_SPLITTER_NOTIFY;\r
8ae0b360 106\r
95276127 107typedef struct {\r
db9d722d 108 UINT64 Signature;\r
109 EFI_HANDLE VirtualHandle;\r
110\r
111 EFI_SIMPLE_TEXT_INPUT_PROTOCOL TextIn;\r
112 UINTN CurrentNumberOfConsoles;\r
113 EFI_SIMPLE_TEXT_INPUT_PROTOCOL **TextInList;\r
114 UINTN TextInListCount;\r
115\r
116 EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL TextInEx;\r
117 UINTN CurrentNumberOfExConsoles;\r
118 EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL **TextInExList;\r
119 UINTN TextInExListCount;\r
aec072ad 120 LIST_ENTRY NotifyList;\r
db9d722d 121\r
122\r
123 EFI_SIMPLE_POINTER_PROTOCOL SimplePointer;\r
124 EFI_SIMPLE_POINTER_MODE SimplePointerMode;\r
125 UINTN CurrentNumberOfPointers;\r
126 EFI_SIMPLE_POINTER_PROTOCOL **PointerList;\r
127 UINTN PointerListCount;\r
128\r
129 EFI_ABSOLUTE_POINTER_PROTOCOL AbsolutePointer;\r
130 EFI_ABSOLUTE_POINTER_MODE AbsolutePointerMode;\r
131 UINTN CurrentNumberOfAbsolutePointers;\r
132 EFI_ABSOLUTE_POINTER_PROTOCOL **AbsolutePointerList;\r
133 UINTN AbsolutePointerListCount;\r
aec072ad 134 BOOLEAN AbsoluteInputEventSignalState;\r
db9d722d 135\r
136 BOOLEAN PasswordEnabled;\r
137 CHAR16 Password[MAX_STD_IN_PASSWORD];\r
138 UINTN PwdIndex;\r
139 CHAR16 PwdAttempt[MAX_STD_IN_PASSWORD];\r
140 EFI_EVENT LockEvent;\r
141\r
142 BOOLEAN KeyEventSignalState;\r
143 BOOLEAN InputEventSignalState;\r
95276127 144} TEXT_IN_SPLITTER_PRIVATE_DATA;\r
145\r
146#define TEXT_IN_SPLITTER_PRIVATE_DATA_FROM_THIS(a) \\r
147 CR ((a), \\r
148 TEXT_IN_SPLITTER_PRIVATE_DATA, \\r
149 TextIn, \\r
150 TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
151 )\r
152\r
153#define TEXT_IN_SPLITTER_PRIVATE_DATA_FROM_SIMPLE_POINTER_THIS(a) \\r
154 CR ((a), \\r
155 TEXT_IN_SPLITTER_PRIVATE_DATA, \\r
156 SimplePointer, \\r
157 TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
158 )\r
66aa04e4 159#define TEXT_IN_EX_SPLITTER_PRIVATE_DATA_FROM_THIS(a) \\r
160 CR (a, \\r
161 TEXT_IN_SPLITTER_PRIVATE_DATA, \\r
162 TextInEx, \\r
163 TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
164 )\r
165\r
166#define TEXT_IN_SPLITTER_PRIVATE_DATA_FROM_ABSOLUTE_POINTER_THIS(a) \\r
167 CR (a, \\r
168 TEXT_IN_SPLITTER_PRIVATE_DATA, \\r
169 AbsolutePointer, \\r
170 TEXT_IN_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
171 )\r
95276127 172\r
173//\r
174// Private data for the EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL splitter\r
175//\r
176#define TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('T', 'o', 'S', 'p')\r
177\r
178typedef struct {\r
179 EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
180 EFI_UGA_DRAW_PROTOCOL *UgaDraw;\r
181 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut;\r
182 BOOLEAN TextOutEnabled;\r
183} TEXT_OUT_AND_GOP_DATA;\r
184\r
95276127 185typedef struct {\r
186 UINT64 Signature;\r
187 EFI_HANDLE VirtualHandle;\r
188 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL TextOut;\r
189 EFI_SIMPLE_TEXT_OUTPUT_MODE TextOutMode;\r
190\r
d0c64728 191 EFI_UGA_DRAW_PROTOCOL UgaDraw;\r
192 UINT32 UgaHorizontalResolution;\r
193 UINT32 UgaVerticalResolution;\r
194 UINT32 UgaColorDepth;\r
195 UINT32 UgaRefreshRate;\r
196 EFI_UGA_PIXEL *UgaBlt;\r
197\r
95276127 198 EFI_GRAPHICS_OUTPUT_PROTOCOL GraphicsOutput;\r
199 EFI_GRAPHICS_OUTPUT_BLT_PIXEL *GraphicsOutputBlt;\r
aec072ad 200 EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *GraphicsOutputModeBuffer;\r
95276127 201 UINTN CurrentNumberOfGraphicsOutput;\r
aec072ad 202 UINTN CurrentNumberOfUgaDraw;\r
95276127 203 BOOLEAN HardwareNeedsStarting;\r
204\r
205 EFI_CONSOLE_CONTROL_PROTOCOL ConsoleControl;\r
206\r
207 UINTN CurrentNumberOfConsoles;\r
208 TEXT_OUT_AND_GOP_DATA *TextOutList;\r
209 UINTN TextOutListCount;\r
210 TEXT_OUT_SPLITTER_QUERY_DATA *TextOutQueryData;\r
211 UINTN TextOutQueryDataCount;\r
212 INT32 *TextOutModeMap;\r
213\r
d0c64728 214 EFI_CONSOLE_CONTROL_SCREEN_MODE ConsoleOutputMode;\r
95276127 215\r
d0c64728 216 UINTN DevNullColumns;\r
217 UINTN DevNullRows;\r
218 CHAR16 *DevNullScreen;\r
219 INT32 *DevNullAttributes;\r
95276127 220\r
221} TEXT_OUT_SPLITTER_PRIVATE_DATA;\r
222\r
223#define TEXT_OUT_SPLITTER_PRIVATE_DATA_FROM_THIS(a) \\r
224 CR ((a), \\r
225 TEXT_OUT_SPLITTER_PRIVATE_DATA, \\r
226 TextOut, \\r
227 TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
228 )\r
229\r
230#define GRAPHICS_OUTPUT_SPLITTER_PRIVATE_DATA_FROM_THIS(a) \\r
231 CR ((a), \\r
232 TEXT_OUT_SPLITTER_PRIVATE_DATA, \\r
233 GraphicsOutput, \\r
234 TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
235 )\r
236\r
237#define UGA_DRAW_SPLITTER_PRIVATE_DATA_FROM_THIS(a) \\r
238 CR ((a), \\r
239 TEXT_OUT_SPLITTER_PRIVATE_DATA, \\r
240 UgaDraw, \\r
241 TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
242 )\r
243\r
244#define CONSOLE_CONTROL_SPLITTER_PRIVATE_DATA_FROM_THIS(a) \\r
245 CR ((a), \\r
246 TEXT_OUT_SPLITTER_PRIVATE_DATA, \\r
247 ConsoleControl, \\r
248 TEXT_OUT_SPLITTER_PRIVATE_DATA_SIGNATURE \\r
249 )\r
250\r
251//\r
252// Function Prototypes\r
253//\r
254EFI_STATUS\r
255EFIAPI\r
256ConSplitterDriverEntry (\r
257 IN EFI_HANDLE ImageHandle,\r
258 IN EFI_SYSTEM_TABLE *SystemTable\r
259 )\r
260;\r
261\r
a4d608d1 262/**\r
263 Construct the ConSplitter.\r
264\r
265 @param ConInPrivate A pointer to the TEXT_IN_SPLITTER_PRIVATE_DATA\r
266 structure.\r
267\r
268 @retval EFI_OUT_OF_RESOURCES Out of resources.\r
269\r
270**/\r
95276127 271EFI_STATUS\r
272ConSplitterTextInConstructor (\r
273 TEXT_IN_SPLITTER_PRIVATE_DATA *Private\r
274 )\r
275;\r
276\r
277EFI_STATUS\r
278ConSplitterTextOutConstructor (\r
279 TEXT_OUT_SPLITTER_PRIVATE_DATA *Private\r
280 )\r
281;\r
282\r
283//\r
284// Driver Binding Functions\r
285//\r
a4d608d1 286\r
287/**\r
288 Console In Supported Check\r
289\r
290 @param This Pointer to protocol.\r
291 @param ControllerHandle Controller handle.\r
292 @param RemainingDevicePath Remaining device path.\r
293\r
294 @return EFI_STATUS\r
295\r
296**/\r
95276127 297EFI_STATUS\r
298EFIAPI\r
299ConSplitterConInDriverBindingSupported (\r
300 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
301 IN EFI_HANDLE ControllerHandle,\r
302 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
303 )\r
304;\r
305\r
a4d608d1 306/**\r
307 Standard Error Supported Check\r
308\r
309 @param This Pointer to protocol.\r
310 @param ControllerHandle Controller handle.\r
311 @param RemainingDevicePath Remaining device path.\r
312\r
313 @return EFI_STATUS\r
314\r
315**/\r
95276127 316EFI_STATUS\r
317EFIAPI\r
318ConSplitterSimplePointerDriverBindingSupported (\r
319 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
320 IN EFI_HANDLE ControllerHandle,\r
321 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
322 )\r
323;\r
324\r
a4d608d1 325/**\r
326 Console Out Supported Check\r
327\r
328 @param This Pointer to protocol.\r
329 @param ControllerHandle Controller handle.\r
330 @param RemainingDevicePath Remaining device path.\r
331\r
332 @return EFI_STATUS\r
333\r
334**/\r
95276127 335EFI_STATUS\r
336EFIAPI\r
337ConSplitterConOutDriverBindingSupported (\r
338 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
339 IN EFI_HANDLE ControllerHandle,\r
340 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
341 )\r
342;\r
343\r
a4d608d1 344/**\r
345 Standard Error Supported Check\r
346\r
347 @param This Pointer to protocol.\r
348 @param ControllerHandle Controller handle.\r
349 @param RemainingDevicePath Remaining device path.\r
350\r
351 @return EFI_STATUS\r
352\r
353**/\r
95276127 354EFI_STATUS\r
355EFIAPI\r
356ConSplitterStdErrDriverBindingSupported (\r
357 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
358 IN EFI_HANDLE ControllerHandle,\r
359 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
360 )\r
361;\r
362\r
363EFI_STATUS\r
364EFIAPI\r
365ConSplitterConInDriverBindingStart (\r
366 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
367 IN EFI_HANDLE ControllerHandle,\r
368 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
369 )\r
370;\r
371\r
372EFI_STATUS\r
373EFIAPI\r
374ConSplitterSimplePointerDriverBindingStart (\r
375 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
376 IN EFI_HANDLE ControllerHandle,\r
377 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
378 )\r
379;\r
380\r
381EFI_STATUS\r
382EFIAPI\r
383ConSplitterConOutDriverBindingStart (\r
384 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
385 IN EFI_HANDLE ControllerHandle,\r
386 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
387 )\r
388;\r
389\r
390EFI_STATUS\r
391EFIAPI\r
392ConSplitterStdErrDriverBindingStart (\r
393 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
394 IN EFI_HANDLE ControllerHandle,\r
395 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
396 )\r
397;\r
398\r
399EFI_STATUS\r
400EFIAPI\r
401ConSplitterConInDriverBindingStop (\r
402 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
403 IN EFI_HANDLE ControllerHandle,\r
404 IN UINTN NumberOfChildren,\r
405 IN EFI_HANDLE *ChildHandleBuffer\r
406 )\r
407;\r
408\r
409EFI_STATUS\r
410EFIAPI\r
411ConSplitterSimplePointerDriverBindingStop (\r
412 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
413 IN EFI_HANDLE ControllerHandle,\r
414 IN UINTN NumberOfChildren,\r
415 IN EFI_HANDLE *ChildHandleBuffer\r
416 )\r
417;\r
418\r
419EFI_STATUS\r
420EFIAPI\r
421ConSplitterConOutDriverBindingStop (\r
422 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
423 IN EFI_HANDLE ControllerHandle,\r
424 IN UINTN NumberOfChildren,\r
425 IN EFI_HANDLE *ChildHandleBuffer\r
426 )\r
427;\r
428\r
429EFI_STATUS\r
430EFIAPI\r
431ConSplitterStdErrDriverBindingStop (\r
432 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
433 IN EFI_HANDLE ControllerHandle,\r
434 IN UINTN NumberOfChildren,\r
435 IN EFI_HANDLE *ChildHandleBuffer\r
436 )\r
437;\r
438\r
8ae0b360 439//\r
440// Driver binding functions\r
441//\r
442\r
443EFI_STATUS\r
444EFIAPI\r
445ConSplitterAbsolutePointerDriverBindingSupported (\r
446 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
447 IN EFI_HANDLE ControllerHandle,\r
448 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
449 )\r
450;\r
451\r
452EFI_STATUS\r
453EFIAPI\r
454ConSplitterAbsolutePointerDriverBindingStart (\r
455 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
456 IN EFI_HANDLE ControllerHandle,\r
457 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
458 )\r
459;\r
460\r
461EFI_STATUS\r
462EFIAPI\r
463ConSplitterAbsolutePointerDriverBindingStop (\r
464 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
465 IN EFI_HANDLE ControllerHandle,\r
466 IN UINTN NumberOfChildren,\r
467 IN EFI_HANDLE *ChildHandleBuffer\r
468 )\r
469;\r
470\r
471EFI_STATUS\r
472ConSplitterAbsolutePointerAddDevice (\r
473 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
474 IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer\r
475 )\r
476;\r
477\r
478EFI_STATUS\r
479ConSplitterAbsolutePointerDeleteDevice (\r
480 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
481 IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer\r
482 )\r
483;\r
484\r
485//\r
486// Absolute Pointer protocol interfaces\r
487//\r
488\r
a4d608d1 489\r
490/**\r
491 Resets the pointer device hardware.\r
492\r
493 @param This Protocol instance pointer.\r
494 @param ExtendedVerification Driver may perform diagnostics on reset.\r
495\r
496 @retval EFI_SUCCESS The device was reset.\r
497 @retval EFI_DEVICE_ERROR The device is not functioning correctly and\r
498 could not be reset.\r
499\r
500**/\r
8ae0b360 501EFI_STATUS\r
502EFIAPI\r
503ConSplitterAbsolutePointerReset (\r
504 IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,\r
505 IN BOOLEAN ExtendedVerification\r
506 )\r
a4d608d1 507;\r
8ae0b360 508\r
8ae0b360 509\r
a4d608d1 510/**\r
511 Retrieves the current state of a pointer device.\r
8ae0b360 512\r
a4d608d1 513 @param This Protocol instance pointer.\r
514 @param State A pointer to the state information on the\r
515 pointer device.\r
aec072ad 516\r
a4d608d1 517 @retval EFI_SUCCESS The state of the pointer device was returned in\r
518 State..\r
519 @retval EFI_NOT_READY The state of the pointer device has not changed\r
520 since the last call to GetState().\r
521 @retval EFI_DEVICE_ERROR A device error occurred while attempting to\r
522 retrieve the pointer device's current state.\r
8ae0b360 523\r
a4d608d1 524**/\r
8ae0b360 525EFI_STATUS\r
aec072ad 526EFIAPI\r
8ae0b360 527ConSplitterAbsolutePointerGetState (\r
528 IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,\r
529 IN OUT EFI_ABSOLUTE_POINTER_STATE *State\r
530 )\r
8ae0b360 531;\r
532\r
533VOID\r
534EFIAPI\r
535ConSplitterAbsolutePointerWaitForInput (\r
536 IN EFI_EVENT Event,\r
537 IN VOID *Context\r
538 )\r
539;\r
540\r
5bca971e 541/**\r
542 Retrieves a Unicode string that is the user readable name of the driver.\r
543\r
544 This function retrieves the user readable name of a driver in the form of a\r
545 Unicode string. If the driver specified by This has a user readable name in\r
546 the language specified by Language, then a pointer to the driver name is\r
547 returned in DriverName, and EFI_SUCCESS is returned. If the driver specified\r
548 by This does not support the language specified by Language,\r
549 then EFI_UNSUPPORTED is returned.\r
550\r
551 @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or\r
552 EFI_COMPONENT_NAME_PROTOCOL instance.\r
553\r
554 @param Language[in] A pointer to a Null-terminated ASCII string\r
555 array indicating the language. This is the\r
556 language of the driver name that the caller is\r
557 requesting, and it must match one of the\r
558 languages specified in SupportedLanguages. The\r
559 number of languages supported by a driver is up\r
560 to the driver writer. Language is specified\r
561 in RFC 3066 or ISO 639-2 language code format.\r
562\r
563 @param DriverName[out] A pointer to the Unicode string to return.\r
564 This Unicode string is the name of the\r
565 driver specified by This in the language\r
566 specified by Language.\r
567\r
568 @retval EFI_SUCCESS The Unicode string for the Driver specified by\r
569 This and the language specified by Language was\r
570 returned in DriverName.\r
571\r
572 @retval EFI_INVALID_PARAMETER Language is NULL.\r
573\r
574 @retval EFI_INVALID_PARAMETER DriverName is NULL.\r
575\r
576 @retval EFI_UNSUPPORTED The driver specified by This does not support\r
577 the language specified by Language.\r
578\r
579**/\r
95276127 580EFI_STATUS\r
581EFIAPI\r
582ConSplitterComponentNameGetDriverName (\r
583 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
584 IN CHAR8 *Language,\r
585 OUT CHAR16 **DriverName\r
586 );\r
587\r
5bca971e 588\r
589/**\r
590 Retrieves a Unicode string that is the user readable name of the controller\r
591 that is being managed by a driver.\r
592\r
593 This function retrieves the user readable name of the controller specified by\r
594 ControllerHandle and ChildHandle in the form of a Unicode string. If the\r
595 driver specified by This has a user readable name in the language specified by\r
596 Language, then a pointer to the controller name is returned in ControllerName,\r
597 and EFI_SUCCESS is returned. If the driver specified by This is not currently\r
598 managing the controller specified by ControllerHandle and ChildHandle,\r
599 then EFI_UNSUPPORTED is returned. If the driver specified by This does not\r
600 support the language specified by Language, then EFI_UNSUPPORTED is returned.\r
601\r
602 @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or\r
603 EFI_COMPONENT_NAME_PROTOCOL instance.\r
604\r
605 @param ControllerHandle[in] The handle of a controller that the driver\r
606 specified by This is managing. This handle\r
607 specifies the controller whose name is to be\r
608 returned.\r
609\r
610 @param ChildHandle[in] The handle of the child controller to retrieve\r
611 the name of. This is an optional parameter that\r
612 may be NULL. It will be NULL for device\r
613 drivers. It will also be NULL for a bus drivers\r
614 that wish to retrieve the name of the bus\r
615 controller. It will not be NULL for a bus\r
616 driver that wishes to retrieve the name of a\r
617 child controller.\r
618\r
619 @param Language[in] A pointer to a Null-terminated ASCII string\r
620 array indicating the language. This is the\r
621 language of the driver name that the caller is\r
622 requesting, and it must match one of the\r
623 languages specified in SupportedLanguages. The\r
624 number of languages supported by a driver is up\r
625 to the driver writer. Language is specified in\r
626 RFC 3066 or ISO 639-2 language code format.\r
627\r
628 @param ControllerName[out] A pointer to the Unicode string to return.\r
629 This Unicode string is the name of the\r
630 controller specified by ControllerHandle and\r
631 ChildHandle in the language specified by\r
632 Language from the point of view of the driver\r
633 specified by This.\r
634\r
635 @retval EFI_SUCCESS The Unicode string for the user readable name in\r
636 the language specified by Language for the\r
637 driver specified by This was returned in\r
638 DriverName.\r
639\r
640 @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
641\r
642 @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid\r
643 EFI_HANDLE.\r
644\r
645 @retval EFI_INVALID_PARAMETER Language is NULL.\r
646\r
647 @retval EFI_INVALID_PARAMETER ControllerName is NULL.\r
648\r
649 @retval EFI_UNSUPPORTED The driver specified by This is not currently\r
650 managing the controller specified by\r
651 ControllerHandle and ChildHandle.\r
652\r
653 @retval EFI_UNSUPPORTED The driver specified by This does not support\r
654 the language specified by Language.\r
655\r
656**/\r
95276127 657EFI_STATUS\r
658EFIAPI\r
659ConSplitterConInComponentNameGetControllerName (\r
660 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
661 IN EFI_HANDLE ControllerHandle,\r
662 IN EFI_HANDLE ChildHandle OPTIONAL,\r
663 IN CHAR8 *Language,\r
664 OUT CHAR16 **ControllerName\r
665 );\r
666\r
5bca971e 667\r
668/**\r
669 Retrieves a Unicode string that is the user readable name of the controller\r
670 that is being managed by a driver.\r
671\r
672 This function retrieves the user readable name of the controller specified by\r
673 ControllerHandle and ChildHandle in the form of a Unicode string. If the\r
674 driver specified by This has a user readable name in the language specified by\r
675 Language, then a pointer to the controller name is returned in ControllerName,\r
676 and EFI_SUCCESS is returned. If the driver specified by This is not currently\r
677 managing the controller specified by ControllerHandle and ChildHandle,\r
678 then EFI_UNSUPPORTED is returned. If the driver specified by This does not\r
679 support the language specified by Language, then EFI_UNSUPPORTED is returned.\r
680\r
681 @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or\r
682 EFI_COMPONENT_NAME_PROTOCOL instance.\r
683\r
684 @param ControllerHandle[in] The handle of a controller that the driver\r
685 specified by This is managing. This handle\r
686 specifies the controller whose name is to be\r
687 returned.\r
688\r
689 @param ChildHandle[in] The handle of the child controller to retrieve\r
690 the name of. This is an optional parameter that\r
691 may be NULL. It will be NULL for device\r
692 drivers. It will also be NULL for a bus drivers\r
693 that wish to retrieve the name of the bus\r
694 controller. It will not be NULL for a bus\r
695 driver that wishes to retrieve the name of a\r
696 child controller.\r
697\r
698 @param Language[in] A pointer to a Null-terminated ASCII string\r
699 array indicating the language. This is the\r
700 language of the driver name that the caller is\r
701 requesting, and it must match one of the\r
702 languages specified in SupportedLanguages. The\r
703 number of languages supported by a driver is up\r
704 to the driver writer. Language is specified in\r
705 RFC 3066 or ISO 639-2 language code format.\r
706\r
707 @param ControllerName[out] A pointer to the Unicode string to return.\r
708 This Unicode string is the name of the\r
709 controller specified by ControllerHandle and\r
710 ChildHandle in the language specified by\r
711 Language from the point of view of the driver\r
712 specified by This.\r
713\r
714 @retval EFI_SUCCESS The Unicode string for the user readable name in\r
715 the language specified by Language for the\r
716 driver specified by This was returned in\r
717 DriverName.\r
718\r
719 @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
720\r
721 @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid\r
722 EFI_HANDLE.\r
723\r
724 @retval EFI_INVALID_PARAMETER Language is NULL.\r
725\r
726 @retval EFI_INVALID_PARAMETER ControllerName is NULL.\r
727\r
728 @retval EFI_UNSUPPORTED The driver specified by This is not currently\r
729 managing the controller specified by\r
730 ControllerHandle and ChildHandle.\r
731\r
732 @retval EFI_UNSUPPORTED The driver specified by This does not support\r
733 the language specified by Language.\r
734\r
735**/\r
95276127 736EFI_STATUS\r
737EFIAPI\r
738ConSplitterSimplePointerComponentNameGetControllerName (\r
739 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
740 IN EFI_HANDLE ControllerHandle,\r
741 IN EFI_HANDLE ChildHandle OPTIONAL,\r
742 IN CHAR8 *Language,\r
743 OUT CHAR16 **ControllerName\r
744 );\r
745\r
8ae0b360 746EFI_STATUS\r
747EFIAPI\r
748ConSplitterAbsolutePointerComponentNameGetControllerName (\r
749 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
750 IN EFI_HANDLE ControllerHandle,\r
751 IN EFI_HANDLE ChildHandle OPTIONAL,\r
752 IN CHAR8 *Language,\r
753 OUT CHAR16 **ControllerName\r
754 )\r
755;\r
5bca971e 756\r
757/**\r
758 Retrieves a Unicode string that is the user readable name of the controller\r
759 that is being managed by a driver.\r
760\r
761 This function retrieves the user readable name of the controller specified by\r
762 ControllerHandle and ChildHandle in the form of a Unicode string. If the\r
763 driver specified by This has a user readable name in the language specified by\r
764 Language, then a pointer to the controller name is returned in ControllerName,\r
765 and EFI_SUCCESS is returned. If the driver specified by This is not currently\r
766 managing the controller specified by ControllerHandle and ChildHandle,\r
767 then EFI_UNSUPPORTED is returned. If the driver specified by This does not\r
768 support the language specified by Language, then EFI_UNSUPPORTED is returned.\r
769\r
770 @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or\r
771 EFI_COMPONENT_NAME_PROTOCOL instance.\r
772\r
773 @param ControllerHandle[in] The handle of a controller that the driver\r
774 specified by This is managing. This handle\r
775 specifies the controller whose name is to be\r
776 returned.\r
777\r
778 @param ChildHandle[in] The handle of the child controller to retrieve\r
779 the name of. This is an optional parameter that\r
780 may be NULL. It will be NULL for device\r
781 drivers. It will also be NULL for a bus drivers\r
782 that wish to retrieve the name of the bus\r
783 controller. It will not be NULL for a bus\r
784 driver that wishes to retrieve the name of a\r
785 child controller.\r
786\r
787 @param Language[in] A pointer to a Null-terminated ASCII string\r
788 array indicating the language. This is the\r
789 language of the driver name that the caller is\r
790 requesting, and it must match one of the\r
791 languages specified in SupportedLanguages. The\r
792 number of languages supported by a driver is up\r
793 to the driver writer. Language is specified in\r
794 RFC 3066 or ISO 639-2 language code format.\r
795\r
796 @param ControllerName[out] A pointer to the Unicode string to return.\r
797 This Unicode string is the name of the\r
798 controller specified by ControllerHandle and\r
799 ChildHandle in the language specified by\r
800 Language from the point of view of the driver\r
801 specified by This.\r
802\r
803 @retval EFI_SUCCESS The Unicode string for the user readable name in\r
804 the language specified by Language for the\r
805 driver specified by This was returned in\r
806 DriverName.\r
807\r
808 @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
809\r
810 @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid\r
811 EFI_HANDLE.\r
812\r
813 @retval EFI_INVALID_PARAMETER Language is NULL.\r
814\r
815 @retval EFI_INVALID_PARAMETER ControllerName is NULL.\r
816\r
817 @retval EFI_UNSUPPORTED The driver specified by This is not currently\r
818 managing the controller specified by\r
819 ControllerHandle and ChildHandle.\r
820\r
821 @retval EFI_UNSUPPORTED The driver specified by This does not support\r
822 the language specified by Language.\r
823\r
824**/\r
95276127 825EFI_STATUS\r
826EFIAPI\r
827ConSplitterConOutComponentNameGetControllerName (\r
828 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
829 IN EFI_HANDLE ControllerHandle,\r
830 IN EFI_HANDLE ChildHandle OPTIONAL,\r
831 IN CHAR8 *Language,\r
832 OUT CHAR16 **ControllerName\r
833 );\r
834\r
5bca971e 835\r
836/**\r
837 Retrieves a Unicode string that is the user readable name of the controller\r
838 that is being managed by a driver.\r
839\r
840 This function retrieves the user readable name of the controller specified by\r
841 ControllerHandle and ChildHandle in the form of a Unicode string. If the\r
842 driver specified by This has a user readable name in the language specified by\r
843 Language, then a pointer to the controller name is returned in ControllerName,\r
844 and EFI_SUCCESS is returned. If the driver specified by This is not currently\r
845 managing the controller specified by ControllerHandle and ChildHandle,\r
846 then EFI_UNSUPPORTED is returned. If the driver specified by This does not\r
847 support the language specified by Language, then EFI_UNSUPPORTED is returned.\r
848\r
849 @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or\r
850 EFI_COMPONENT_NAME_PROTOCOL instance.\r
851\r
852 @param ControllerHandle[in] The handle of a controller that the driver\r
853 specified by This is managing. This handle\r
854 specifies the controller whose name is to be\r
855 returned.\r
856\r
857 @param ChildHandle[in] The handle of the child controller to retrieve\r
858 the name of. This is an optional parameter that\r
859 may be NULL. It will be NULL for device\r
860 drivers. It will also be NULL for a bus drivers\r
861 that wish to retrieve the name of the bus\r
862 controller. It will not be NULL for a bus\r
863 driver that wishes to retrieve the name of a\r
864 child controller.\r
865\r
866 @param Language[in] A pointer to a Null-terminated ASCII string\r
867 array indicating the language. This is the\r
868 language of the driver name that the caller is\r
869 requesting, and it must match one of the\r
870 languages specified in SupportedLanguages. The\r
871 number of languages supported by a driver is up\r
872 to the driver writer. Language is specified in\r
873 RFC 3066 or ISO 639-2 language code format.\r
874\r
875 @param ControllerName[out] A pointer to the Unicode string to return.\r
876 This Unicode string is the name of the\r
877 controller specified by ControllerHandle and\r
878 ChildHandle in the language specified by\r
879 Language from the point of view of the driver\r
880 specified by This.\r
881\r
882 @retval EFI_SUCCESS The Unicode string for the user readable name in\r
883 the language specified by Language for the\r
884 driver specified by This was returned in\r
885 DriverName.\r
886\r
887 @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
888\r
889 @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid\r
890 EFI_HANDLE.\r
891\r
892 @retval EFI_INVALID_PARAMETER Language is NULL.\r
893\r
894 @retval EFI_INVALID_PARAMETER ControllerName is NULL.\r
895\r
896 @retval EFI_UNSUPPORTED The driver specified by This is not currently\r
897 managing the controller specified by\r
898 ControllerHandle and ChildHandle.\r
899\r
900 @retval EFI_UNSUPPORTED The driver specified by This does not support\r
901 the language specified by Language.\r
902\r
903**/\r
95276127 904EFI_STATUS\r
905EFIAPI\r
906ConSplitterStdErrComponentNameGetControllerName (\r
907 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
908 IN EFI_HANDLE ControllerHandle,\r
909 IN EFI_HANDLE ChildHandle OPTIONAL,\r
910 IN CHAR8 *Language,\r
911 OUT CHAR16 **ControllerName\r
912 );\r
913\r
5bca971e 914\r
95276127 915//\r
916// TextIn Constructor/Destructor functions\r
917//\r
918EFI_STATUS\r
919ConSplitterTextInAddDevice (\r
920 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
921 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn\r
922 )\r
923;\r
924\r
925EFI_STATUS\r
926ConSplitterTextInDeleteDevice (\r
927 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
928 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn\r
929 )\r
930;\r
931\r
932//\r
933// SimplePointer Constuctor/Destructor functions\r
934//\r
935EFI_STATUS\r
936ConSplitterSimplePointerAddDevice (\r
937 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
938 IN EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer\r
939 )\r
940;\r
941\r
942EFI_STATUS\r
943ConSplitterSimplePointerDeleteDevice (\r
944 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
945 IN EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer\r
946 )\r
947;\r
948\r
949//\r
950// TextOut Constuctor/Destructor functions\r
951//\r
952EFI_STATUS\r
953ConSplitterTextOutAddDevice (\r
954 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
955 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut,\r
956 IN EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput,\r
957 IN EFI_UGA_DRAW_PROTOCOL *UgaDraw\r
958 )\r
959;\r
960\r
961EFI_STATUS\r
962ConSplitterTextOutDeleteDevice (\r
963 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
964 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut\r
965 )\r
966;\r
967\r
968//\r
969// TextIn I/O Functions\r
970//\r
971EFI_STATUS\r
972EFIAPI\r
973ConSplitterTextInReset (\r
974 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,\r
975 IN BOOLEAN ExtendedVerification\r
976 )\r
977;\r
978\r
979EFI_STATUS\r
980EFIAPI\r
981ConSplitterTextInReadKeyStroke (\r
982 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,\r
983 OUT EFI_INPUT_KEY *Key\r
984 )\r
985;\r
66aa04e4 986EFI_STATUS\r
987ConSplitterTextInExAddDevice (\r
988 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
989 IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx\r
990 )\r
991;\r
992\r
993EFI_STATUS\r
994ConSplitterTextInExDeleteDevice (\r
995 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
996 IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx\r
997 )\r
998;\r
999\r
1000//\r
1001// Simple Text Input Ex protocol function prototypes\r
1002//\r
1003\r
a4d608d1 1004\r
1005/**\r
1006 Reset the input device and optionaly run diagnostics\r
1007\r
1008 @param This Protocol instance pointer.\r
1009 @param ExtendedVerification Driver may perform diagnostics on reset.\r
1010\r
1011 @retval EFI_SUCCESS The device was reset.\r
1012 @retval EFI_DEVICE_ERROR The device is not functioning properly and could\r
1013 not be reset.\r
1014\r
1015**/\r
66aa04e4 1016EFI_STATUS\r
1017EFIAPI\r
1018ConSplitterTextInResetEx (\r
1019 IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
1020 IN BOOLEAN ExtendedVerification\r
1021 )\r
a4d608d1 1022;\r
66aa04e4 1023\r
66aa04e4 1024\r
a4d608d1 1025/**\r
1026 Reads the next keystroke from the input device. The WaitForKey Event can\r
1027 be used to test for existance of a keystroke via WaitForEvent () call.\r
66aa04e4 1028\r
a4d608d1 1029 @param This Protocol instance pointer.\r
1030 @param KeyData A pointer to a buffer that is filled in with the\r
1031 keystroke state data for the key that was\r
1032 pressed.\r
66aa04e4 1033\r
a4d608d1 1034 @retval EFI_SUCCESS The keystroke information was returned.\r
1035 @retval EFI_NOT_READY There was no keystroke data availiable.\r
1036 @retval EFI_DEVICE_ERROR The keystroke information was not returned due\r
1037 to hardware errors.\r
1038 @retval EFI_INVALID_PARAMETER KeyData is NULL.\r
66aa04e4 1039\r
a4d608d1 1040**/\r
66aa04e4 1041EFI_STATUS\r
1042EFIAPI\r
1043ConSplitterTextInReadKeyStrokeEx (\r
1044 IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
1045 OUT EFI_KEY_DATA *KeyData\r
1046 )\r
a4d608d1 1047;\r
66aa04e4 1048\r
66aa04e4 1049\r
a4d608d1 1050/**\r
1051 Set certain state for the input device.\r
66aa04e4 1052\r
a4d608d1 1053 @param This Protocol instance pointer.\r
1054 @param KeyToggleState A pointer to the EFI_KEY_TOGGLE_STATE to set the\r
1055 state for the input device.\r
66aa04e4 1056\r
a4d608d1 1057 @retval EFI_SUCCESS The device state was set successfully.\r
1058 @retval EFI_DEVICE_ERROR The device is not functioning correctly and\r
1059 could not have the setting adjusted.\r
1060 @retval EFI_UNSUPPORTED The device does not have the ability to set its\r
1061 state.\r
1062 @retval EFI_INVALID_PARAMETER KeyToggleState is NULL.\r
66aa04e4 1063\r
a4d608d1 1064**/\r
66aa04e4 1065EFI_STATUS\r
1066EFIAPI\r
1067ConSplitterTextInSetState (\r
1068 IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
1069 IN EFI_KEY_TOGGLE_STATE *KeyToggleState\r
1070 )\r
a4d608d1 1071;\r
aec072ad 1072\r
66aa04e4 1073\r
a4d608d1 1074/**\r
1075 Register a notification function for a particular keystroke for the input device.\r
1076\r
1077 @param This Protocol instance pointer.\r
1078 @param KeyData A pointer to a buffer that is filled in with the\r
1079 keystroke information data for the key that was\r
1080 pressed.\r
1081 @param KeyNotificationFunction Points to the function to be called when the key\r
1082 sequence is typed specified by KeyData.\r
1083 @param NotifyHandle Points to the unique handle assigned to the\r
1084 registered notification.\r
1085\r
1086 @retval EFI_SUCCESS The notification function was registered\r
1087 successfully.\r
1088 @retval EFI_OUT_OF_RESOURCES Unable to allocate resources for necesssary data\r
1089 structures.\r
1090 @retval EFI_INVALID_PARAMETER KeyData or NotifyHandle is NULL.\r
95276127 1091\r
a4d608d1 1092**/\r
66aa04e4 1093EFI_STATUS\r
1094EFIAPI\r
1095ConSplitterTextInRegisterKeyNotify (\r
1096 IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
1097 IN EFI_KEY_DATA *KeyData,\r
1098 IN EFI_KEY_NOTIFY_FUNCTION KeyNotificationFunction,\r
1099 OUT EFI_HANDLE *NotifyHandle\r
1100 )\r
a4d608d1 1101;\r
66aa04e4 1102\r
66aa04e4 1103\r
a4d608d1 1104/**\r
1105 Remove a registered notification function from a particular keystroke.\r
66aa04e4 1106\r
a4d608d1 1107 @param This Protocol instance pointer.\r
1108 @param NotificationHandle The handle of the notification function being\r
1109 unregistered.\r
aec072ad 1110\r
a4d608d1 1111 @retval EFI_SUCCESS The notification function was unregistered\r
1112 successfully.\r
1113 @retval EFI_INVALID_PARAMETER The NotificationHandle is invalid.\r
1114 @retval EFI_NOT_FOUND Can not find the matching entry in database.\r
66aa04e4 1115\r
a4d608d1 1116**/\r
66aa04e4 1117EFI_STATUS\r
1118EFIAPI\r
1119ConSplitterTextInUnregisterKeyNotify (\r
1120 IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
1121 IN EFI_HANDLE NotificationHandle\r
1122 )\r
66aa04e4 1123;\r
95276127 1124VOID\r
1125EFIAPI\r
1126ConSplitterTextInWaitForKey (\r
1127 IN EFI_EVENT Event,\r
1128 IN VOID *Context\r
1129 )\r
1130;\r
1131\r
1132BOOLEAN\r
1133ConSpliterConssoleControlStdInLocked (\r
1134 VOID\r
1135 )\r
1136;\r
1137\r
1138VOID\r
1139EFIAPI\r
1140ConSpliterConsoleControlLockStdInEvent (\r
1141 IN EFI_EVENT Event,\r
1142 IN VOID *Context\r
1143 )\r
1144;\r
1145\r
1146EFI_STATUS\r
1147EFIAPI\r
1148ConSpliterConsoleControlLockStdIn (\r
1149 IN EFI_CONSOLE_CONTROL_PROTOCOL *This,\r
1150 IN CHAR16 *Password\r
1151 )\r
1152;\r
1153\r
1154EFI_STATUS\r
1155EFIAPI\r
1156ConSplitterTextInPrivateReadKeyStroke (\r
1157 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
1158 OUT EFI_INPUT_KEY *Key\r
1159 )\r
1160;\r
1161\r
1162EFI_STATUS\r
1163EFIAPI\r
1164ConSplitterSimplePointerReset (\r
1165 IN EFI_SIMPLE_POINTER_PROTOCOL *This,\r
1166 IN BOOLEAN ExtendedVerification\r
1167 )\r
1168;\r
1169\r
1170EFI_STATUS\r
1171EFIAPI\r
1172ConSplitterSimplePointerGetState (\r
1173 IN EFI_SIMPLE_POINTER_PROTOCOL *This,\r
1174 IN OUT EFI_SIMPLE_POINTER_STATE *State\r
1175 )\r
1176;\r
1177\r
a4d608d1 1178/**\r
1179 This event agregates all the events of the ConIn devices in the spliter.\r
1180 If the ConIn is password locked then return.\r
1181 If any events of physical ConIn devices are signaled, signal the ConIn\r
1182 spliter event. This will cause the calling code to call\r
1183 ConSplitterTextInReadKeyStroke ().\r
1184\r
1185 @param Event The Event assoicated with callback.\r
1186 @param Context Context registered when Event was created.\r
1187\r
1188 @return None\r
1189\r
1190**/\r
95276127 1191VOID\r
1192EFIAPI\r
1193ConSplitterSimplePointerWaitForInput (\r
1194 IN EFI_EVENT Event,\r
1195 IN VOID *Context\r
1196 )\r
1197;\r
1198\r
1199//\r
1200// TextOut I/O Functions\r
1201//\r
1202VOID\r
1203ConSplitterSynchronizeModeData (\r
1204 TEXT_OUT_SPLITTER_PRIVATE_DATA *Private\r
1205 )\r
1206;\r
1207\r
1208EFI_STATUS\r
1209EFIAPI\r
1210ConSplitterTextOutReset (\r
1211 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
1212 IN BOOLEAN ExtendedVerification\r
1213 )\r
1214;\r
1215\r
1216EFI_STATUS\r
1217EFIAPI\r
1218ConSplitterTextOutOutputString (\r
1219 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
1220 IN CHAR16 *WString\r
1221 )\r
1222;\r
1223\r
1224EFI_STATUS\r
1225EFIAPI\r
1226ConSplitterTextOutTestString (\r
1227 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
1228 IN CHAR16 *WString\r
1229 )\r
1230;\r
1231\r
1232EFI_STATUS\r
1233EFIAPI\r
1234ConSplitterTextOutQueryMode (\r
1235 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
1236 IN UINTN ModeNumber,\r
1237 OUT UINTN *Columns,\r
1238 OUT UINTN *Rows\r
1239 )\r
1240;\r
1241\r
1242EFI_STATUS\r
1243EFIAPI\r
1244ConSplitterTextOutSetMode (\r
1245 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
1246 IN UINTN ModeNumber\r
1247 )\r
1248;\r
1249\r
1250EFI_STATUS\r
1251EFIAPI\r
1252ConSplitterTextOutSetAttribute (\r
1253 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
1254 IN UINTN Attribute\r
1255 )\r
1256;\r
1257\r
1258EFI_STATUS\r
1259EFIAPI\r
1260ConSplitterTextOutClearScreen (\r
1261 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This\r
1262 )\r
1263;\r
1264\r
1265EFI_STATUS\r
1266EFIAPI\r
1267ConSplitterTextOutSetCursorPosition (\r
1268 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
1269 IN UINTN Column,\r
1270 IN UINTN Row\r
1271 )\r
1272;\r
1273\r
1274EFI_STATUS\r
1275EFIAPI\r
1276ConSplitterTextOutEnableCursor (\r
1277 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
1278 IN BOOLEAN Visible\r
1279 )\r
1280;\r
1281\r
1282EFI_STATUS\r
1283ConSplitterGrowBuffer (\r
1284 IN UINTN SizeOfCount,\r
1285 IN UINTN *Count,\r
1286 IN OUT VOID **Buffer\r
1287 )\r
1288;\r
1289\r
1290EFI_STATUS\r
1291EFIAPI\r
1292ConSpliterConsoleControlGetMode (\r
1293 IN EFI_CONSOLE_CONTROL_PROTOCOL *This,\r
1294 OUT EFI_CONSOLE_CONTROL_SCREEN_MODE *Mode,\r
1295 OUT BOOLEAN *GopExists,\r
1296 OUT BOOLEAN *StdInLocked\r
1297 )\r
1298;\r
1299\r
1300EFI_STATUS\r
1301EFIAPI\r
1302ConSpliterConsoleControlSetMode (\r
1303 IN EFI_CONSOLE_CONTROL_PROTOCOL *This,\r
1304 IN EFI_CONSOLE_CONTROL_SCREEN_MODE Mode\r
1305 )\r
1306;\r
1307\r
1308EFI_STATUS\r
1309EFIAPI\r
1310ConSpliterGraphicsOutputQueryMode (\r
66aa04e4 1311 IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,\r
1312 IN UINT32 ModeNumber,\r
1313 OUT UINTN *SizeOfInfo,\r
1314 OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION **Info\r
95276127 1315 )\r
1316;\r
1317\r
1318EFI_STATUS\r
1319EFIAPI\r
1320ConSpliterGraphicsOutputSetMode (\r
1321 IN EFI_GRAPHICS_OUTPUT_PROTOCOL * This,\r
1322 IN UINT32 ModeNumber\r
1323 )\r
1324;\r
1325\r
1326EFI_STATUS\r
1327EFIAPI\r
1328ConSpliterGraphicsOutputBlt (\r
1329 IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,\r
1330 IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer, OPTIONAL\r
1331 IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,\r
1332 IN UINTN SourceX,\r
1333 IN UINTN SourceY,\r
1334 IN UINTN DestinationX,\r
1335 IN UINTN DestinationY,\r
1336 IN UINTN Width,\r
1337 IN UINTN Height,\r
1338 IN UINTN Delta OPTIONAL\r
1339 )\r
1340;\r
1341\r
1342EFI_STATUS\r
1343DevNullGopSync (\r
1344 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
1345 IN EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput,\r
1346 IN EFI_UGA_DRAW_PROTOCOL *UgaDraw\r
1347 )\r
1348;\r
1349\r
d0c64728 1350EFI_STATUS\r
1351EFIAPI\r
1352ConSpliterUgaDrawGetMode (\r
1353 IN EFI_UGA_DRAW_PROTOCOL *This,\r
1354 OUT UINT32 *HorizontalResolution,\r
1355 OUT UINT32 *VerticalResolution,\r
1356 OUT UINT32 *ColorDepth,\r
1357 OUT UINT32 *RefreshRate\r
1358 )\r
1359;\r
1360\r
1361EFI_STATUS\r
1362EFIAPI\r
1363ConSpliterUgaDrawSetMode (\r
1364 IN EFI_UGA_DRAW_PROTOCOL *This,\r
1365 IN UINT32 HorizontalResolution,\r
1366 IN UINT32 VerticalResolution,\r
1367 IN UINT32 ColorDepth,\r
1368 IN UINT32 RefreshRate\r
1369 )\r
1370;\r
1371\r
1372EFI_STATUS\r
1373EFIAPI\r
1374ConSpliterUgaDrawBlt (\r
1375 IN EFI_UGA_DRAW_PROTOCOL *This,\r
1376 IN EFI_UGA_PIXEL *BltBuffer, OPTIONAL\r
1377 IN EFI_UGA_BLT_OPERATION BltOperation,\r
1378 IN UINTN SourceX,\r
1379 IN UINTN SourceY,\r
1380 IN UINTN DestinationX,\r
1381 IN UINTN DestinationY,\r
1382 IN UINTN Width,\r
1383 IN UINTN Height,\r
1384 IN UINTN Delta OPTIONAL\r
1385 )\r
1386;\r
1387\r
1388EFI_STATUS\r
1389DevNullUgaSync (\r
1390 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
1391 IN EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput,\r
1392 IN EFI_UGA_DRAW_PROTOCOL *UgaDraw\r
1393 )\r
1394;\r
95276127 1395\r
1396EFI_STATUS\r
1397DevNullTextOutOutputString (\r
1398 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
1399 IN CHAR16 *WString\r
1400 )\r
1401;\r
1402\r
1403EFI_STATUS\r
1404DevNullTextOutSetMode (\r
1405 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
1406 IN UINTN ModeNumber\r
1407 )\r
1408;\r
1409\r
1410EFI_STATUS\r
1411DevNullTextOutClearScreen (\r
1412 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private\r
1413 )\r
1414;\r
1415\r
1416EFI_STATUS\r
1417DevNullTextOutSetCursorPosition (\r
1418 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
1419 IN UINTN Column,\r
1420 IN UINTN Row\r
1421 )\r
1422;\r
1423\r
1424EFI_STATUS\r
1425DevNullTextOutEnableCursor (\r
1426 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
1427 IN BOOLEAN Visible\r
1428 )\r
1429;\r
1430\r
1431EFI_STATUS\r
aec072ad 1432DevNullSyncStdOut (\r
95276127 1433 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private\r
1434 )\r
1435;\r
1436\r
1437#endif\r