]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitter.h
Sync in patch for EDK 945
[mirror_edk2.git] / MdeModulePkg / Universal / Console / ConSplitterDxe / ConSplitter.h
CommitLineData
95276127 1/**@file\r
2 Private data structures for the Console Splitter driver\r
3\r
4Copyright (c) 2006 - 2007 Intel Corporation. <BR>\r
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
189eac21 79#define VarConOutMode L"ConOutMode"\r
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
262EFI_STATUS\r
263ConSplitterTextInConstructor (\r
264 TEXT_IN_SPLITTER_PRIVATE_DATA *Private\r
265 )\r
266;\r
267\r
268EFI_STATUS\r
269ConSplitterTextOutConstructor (\r
270 TEXT_OUT_SPLITTER_PRIVATE_DATA *Private\r
271 )\r
272;\r
273\r
274//\r
275// Driver Binding Functions\r
276//\r
277EFI_STATUS\r
278EFIAPI\r
279ConSplitterConInDriverBindingSupported (\r
280 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
281 IN EFI_HANDLE ControllerHandle,\r
282 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
283 )\r
284;\r
285\r
286EFI_STATUS\r
287EFIAPI\r
288ConSplitterSimplePointerDriverBindingSupported (\r
289 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
290 IN EFI_HANDLE ControllerHandle,\r
291 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
292 )\r
293;\r
294\r
295EFI_STATUS\r
296EFIAPI\r
297ConSplitterConOutDriverBindingSupported (\r
298 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
299 IN EFI_HANDLE ControllerHandle,\r
300 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
301 )\r
302;\r
303\r
304EFI_STATUS\r
305EFIAPI\r
306ConSplitterStdErrDriverBindingSupported (\r
307 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
308 IN EFI_HANDLE ControllerHandle,\r
309 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
310 )\r
311;\r
312\r
313EFI_STATUS\r
314EFIAPI\r
315ConSplitterConInDriverBindingStart (\r
316 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
317 IN EFI_HANDLE ControllerHandle,\r
318 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
319 )\r
320;\r
321\r
322EFI_STATUS\r
323EFIAPI\r
324ConSplitterSimplePointerDriverBindingStart (\r
325 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
326 IN EFI_HANDLE ControllerHandle,\r
327 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
328 )\r
329;\r
330\r
331EFI_STATUS\r
332EFIAPI\r
333ConSplitterConOutDriverBindingStart (\r
334 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
335 IN EFI_HANDLE ControllerHandle,\r
336 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
337 )\r
338;\r
339\r
340EFI_STATUS\r
341EFIAPI\r
342ConSplitterStdErrDriverBindingStart (\r
343 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
344 IN EFI_HANDLE ControllerHandle,\r
345 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
346 )\r
347;\r
348\r
349EFI_STATUS\r
350EFIAPI\r
351ConSplitterConInDriverBindingStop (\r
352 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
353 IN EFI_HANDLE ControllerHandle,\r
354 IN UINTN NumberOfChildren,\r
355 IN EFI_HANDLE *ChildHandleBuffer\r
356 )\r
357;\r
358\r
359EFI_STATUS\r
360EFIAPI\r
361ConSplitterSimplePointerDriverBindingStop (\r
362 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
363 IN EFI_HANDLE ControllerHandle,\r
364 IN UINTN NumberOfChildren,\r
365 IN EFI_HANDLE *ChildHandleBuffer\r
366 )\r
367;\r
368\r
369EFI_STATUS\r
370EFIAPI\r
371ConSplitterConOutDriverBindingStop (\r
372 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
373 IN EFI_HANDLE ControllerHandle,\r
374 IN UINTN NumberOfChildren,\r
375 IN EFI_HANDLE *ChildHandleBuffer\r
376 )\r
377;\r
378\r
379EFI_STATUS\r
380EFIAPI\r
381ConSplitterStdErrDriverBindingStop (\r
382 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
383 IN EFI_HANDLE ControllerHandle,\r
384 IN UINTN NumberOfChildren,\r
385 IN EFI_HANDLE *ChildHandleBuffer\r
386 )\r
387;\r
388\r
8ae0b360 389//\r
390// Driver binding functions\r
391//\r
392\r
393EFI_STATUS\r
394EFIAPI\r
395ConSplitterAbsolutePointerDriverBindingSupported (\r
396 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
397 IN EFI_HANDLE ControllerHandle,\r
398 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
399 )\r
400;\r
401\r
402EFI_STATUS\r
403EFIAPI\r
404ConSplitterAbsolutePointerDriverBindingStart (\r
405 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
406 IN EFI_HANDLE ControllerHandle,\r
407 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
408 )\r
409;\r
410\r
411EFI_STATUS\r
412EFIAPI\r
413ConSplitterAbsolutePointerDriverBindingStop (\r
414 IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
415 IN EFI_HANDLE ControllerHandle,\r
416 IN UINTN NumberOfChildren,\r
417 IN EFI_HANDLE *ChildHandleBuffer\r
418 )\r
419;\r
420\r
421EFI_STATUS\r
422ConSplitterAbsolutePointerAddDevice (\r
423 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
424 IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer\r
425 )\r
426;\r
427\r
428EFI_STATUS\r
429ConSplitterAbsolutePointerDeleteDevice (\r
430 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
431 IN EFI_ABSOLUTE_POINTER_PROTOCOL *AbsolutePointer\r
432 )\r
433;\r
434\r
435//\r
436// Absolute Pointer protocol interfaces\r
437//\r
438\r
439EFI_STATUS\r
440EFIAPI\r
441ConSplitterAbsolutePointerReset (\r
442 IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,\r
443 IN BOOLEAN ExtendedVerification\r
444 )\r
445/*++\r
446\r
447 Routine Description:\r
448 Resets the pointer device hardware.\r
449\r
450 Arguments:\r
451 This - Protocol instance pointer.\r
452 ExtendedVerification - Driver may perform diagnostics on reset.\r
453\r
454 Returns:\r
455 EFI_SUCCESS - The device was reset.\r
aec072ad 456 EFI_DEVICE_ERROR - The device is not functioning correctly and could\r
8ae0b360 457 not be reset.\r
aec072ad 458\r
8ae0b360 459--*/\r
460;\r
461\r
462EFI_STATUS\r
aec072ad 463EFIAPI\r
8ae0b360 464ConSplitterAbsolutePointerGetState (\r
465 IN EFI_ABSOLUTE_POINTER_PROTOCOL *This,\r
466 IN OUT EFI_ABSOLUTE_POINTER_STATE *State\r
467 )\r
468/*++\r
469\r
470 Routine Description:\r
471 Retrieves the current state of a pointer device.\r
472\r
473 Arguments:\r
474 This - Protocol instance pointer.\r
475 State - A pointer to the state information on the pointer device.\r
476\r
477 Returns:\r
478 EFI_SUCCESS - The state of the pointer device was returned in State..\r
479 EFI_NOT_READY - The state of the pointer device has not changed since the last call to\r
aec072ad 480 GetState().\r
8ae0b360 481 EFI_DEVICE_ERROR - A device error occurred while attempting to retrieve the pointer\r
aec072ad 482 device's current state.\r
8ae0b360 483--*/\r
484;\r
485\r
486VOID\r
487EFIAPI\r
488ConSplitterAbsolutePointerWaitForInput (\r
489 IN EFI_EVENT Event,\r
490 IN VOID *Context\r
491 )\r
492;\r
493\r
5bca971e 494/**\r
495 Retrieves a Unicode string that is the user readable name of the driver.\r
496\r
497 This function retrieves the user readable name of a driver in the form of a\r
498 Unicode string. If the driver specified by This has a user readable name in\r
499 the language specified by Language, then a pointer to the driver name is\r
500 returned in DriverName, and EFI_SUCCESS is returned. If the driver specified\r
501 by This does not support the language specified by Language,\r
502 then EFI_UNSUPPORTED is returned.\r
503\r
504 @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or\r
505 EFI_COMPONENT_NAME_PROTOCOL instance.\r
506\r
507 @param Language[in] A pointer to a Null-terminated ASCII string\r
508 array indicating the language. This is the\r
509 language of the driver name that the caller is\r
510 requesting, and it must match one of the\r
511 languages specified in SupportedLanguages. The\r
512 number of languages supported by a driver is up\r
513 to the driver writer. Language is specified\r
514 in RFC 3066 or ISO 639-2 language code format.\r
515\r
516 @param DriverName[out] A pointer to the Unicode string to return.\r
517 This Unicode string is the name of the\r
518 driver specified by This in the language\r
519 specified by Language.\r
520\r
521 @retval EFI_SUCCESS The Unicode string for the Driver specified by\r
522 This and the language specified by Language was\r
523 returned in DriverName.\r
524\r
525 @retval EFI_INVALID_PARAMETER Language is NULL.\r
526\r
527 @retval EFI_INVALID_PARAMETER DriverName is NULL.\r
528\r
529 @retval EFI_UNSUPPORTED The driver specified by This does not support\r
530 the language specified by Language.\r
531\r
532**/\r
95276127 533EFI_STATUS\r
534EFIAPI\r
535ConSplitterComponentNameGetDriverName (\r
536 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
537 IN CHAR8 *Language,\r
538 OUT CHAR16 **DriverName\r
539 );\r
540\r
5bca971e 541\r
542/**\r
543 Retrieves a Unicode string that is the user readable name of the controller\r
544 that is being managed by a driver.\r
545\r
546 This function retrieves the user readable name of the controller specified by\r
547 ControllerHandle and ChildHandle in the form of a Unicode string. If the\r
548 driver specified by This has a user readable name in the language specified by\r
549 Language, then a pointer to the controller name is returned in ControllerName,\r
550 and EFI_SUCCESS is returned. If the driver specified by This is not currently\r
551 managing the controller specified by ControllerHandle and ChildHandle,\r
552 then EFI_UNSUPPORTED is returned. If the driver specified by This does not\r
553 support the language specified by Language, then EFI_UNSUPPORTED is returned.\r
554\r
555 @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or\r
556 EFI_COMPONENT_NAME_PROTOCOL instance.\r
557\r
558 @param ControllerHandle[in] The handle of a controller that the driver\r
559 specified by This is managing. This handle\r
560 specifies the controller whose name is to be\r
561 returned.\r
562\r
563 @param ChildHandle[in] The handle of the child controller to retrieve\r
564 the name of. This is an optional parameter that\r
565 may be NULL. It will be NULL for device\r
566 drivers. It will also be NULL for a bus drivers\r
567 that wish to retrieve the name of the bus\r
568 controller. It will not be NULL for a bus\r
569 driver that wishes to retrieve the name of a\r
570 child controller.\r
571\r
572 @param Language[in] A pointer to a Null-terminated ASCII string\r
573 array indicating the language. This is the\r
574 language of the driver name that the caller is\r
575 requesting, and it must match one of the\r
576 languages specified in SupportedLanguages. The\r
577 number of languages supported by a driver is up\r
578 to the driver writer. Language is specified in\r
579 RFC 3066 or ISO 639-2 language code format.\r
580\r
581 @param ControllerName[out] A pointer to the Unicode string to return.\r
582 This Unicode string is the name of the\r
583 controller specified by ControllerHandle and\r
584 ChildHandle in the language specified by\r
585 Language from the point of view of the driver\r
586 specified by This.\r
587\r
588 @retval EFI_SUCCESS The Unicode string for the user readable name in\r
589 the language specified by Language for the\r
590 driver specified by This was returned in\r
591 DriverName.\r
592\r
593 @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
594\r
595 @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid\r
596 EFI_HANDLE.\r
597\r
598 @retval EFI_INVALID_PARAMETER Language is NULL.\r
599\r
600 @retval EFI_INVALID_PARAMETER ControllerName is NULL.\r
601\r
602 @retval EFI_UNSUPPORTED The driver specified by This is not currently\r
603 managing the controller specified by\r
604 ControllerHandle and ChildHandle.\r
605\r
606 @retval EFI_UNSUPPORTED The driver specified by This does not support\r
607 the language specified by Language.\r
608\r
609**/\r
95276127 610EFI_STATUS\r
611EFIAPI\r
612ConSplitterConInComponentNameGetControllerName (\r
613 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
614 IN EFI_HANDLE ControllerHandle,\r
615 IN EFI_HANDLE ChildHandle OPTIONAL,\r
616 IN CHAR8 *Language,\r
617 OUT CHAR16 **ControllerName\r
618 );\r
619\r
5bca971e 620\r
621/**\r
622 Retrieves a Unicode string that is the user readable name of the controller\r
623 that is being managed by a driver.\r
624\r
625 This function retrieves the user readable name of the controller specified by\r
626 ControllerHandle and ChildHandle in the form of a Unicode string. If the\r
627 driver specified by This has a user readable name in the language specified by\r
628 Language, then a pointer to the controller name is returned in ControllerName,\r
629 and EFI_SUCCESS is returned. If the driver specified by This is not currently\r
630 managing the controller specified by ControllerHandle and ChildHandle,\r
631 then EFI_UNSUPPORTED is returned. If the driver specified by This does not\r
632 support the language specified by Language, then EFI_UNSUPPORTED is returned.\r
633\r
634 @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or\r
635 EFI_COMPONENT_NAME_PROTOCOL instance.\r
636\r
637 @param ControllerHandle[in] The handle of a controller that the driver\r
638 specified by This is managing. This handle\r
639 specifies the controller whose name is to be\r
640 returned.\r
641\r
642 @param ChildHandle[in] The handle of the child controller to retrieve\r
643 the name of. This is an optional parameter that\r
644 may be NULL. It will be NULL for device\r
645 drivers. It will also be NULL for a bus drivers\r
646 that wish to retrieve the name of the bus\r
647 controller. It will not be NULL for a bus\r
648 driver that wishes to retrieve the name of a\r
649 child controller.\r
650\r
651 @param Language[in] A pointer to a Null-terminated ASCII string\r
652 array indicating the language. This is the\r
653 language of the driver name that the caller is\r
654 requesting, and it must match one of the\r
655 languages specified in SupportedLanguages. The\r
656 number of languages supported by a driver is up\r
657 to the driver writer. Language is specified in\r
658 RFC 3066 or ISO 639-2 language code format.\r
659\r
660 @param ControllerName[out] A pointer to the Unicode string to return.\r
661 This Unicode string is the name of the\r
662 controller specified by ControllerHandle and\r
663 ChildHandle in the language specified by\r
664 Language from the point of view of the driver\r
665 specified by This.\r
666\r
667 @retval EFI_SUCCESS The Unicode string for the user readable name in\r
668 the language specified by Language for the\r
669 driver specified by This was returned in\r
670 DriverName.\r
671\r
672 @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
673\r
674 @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid\r
675 EFI_HANDLE.\r
676\r
677 @retval EFI_INVALID_PARAMETER Language is NULL.\r
678\r
679 @retval EFI_INVALID_PARAMETER ControllerName is NULL.\r
680\r
681 @retval EFI_UNSUPPORTED The driver specified by This is not currently\r
682 managing the controller specified by\r
683 ControllerHandle and ChildHandle.\r
684\r
685 @retval EFI_UNSUPPORTED The driver specified by This does not support\r
686 the language specified by Language.\r
687\r
688**/\r
95276127 689EFI_STATUS\r
690EFIAPI\r
691ConSplitterSimplePointerComponentNameGetControllerName (\r
692 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
693 IN EFI_HANDLE ControllerHandle,\r
694 IN EFI_HANDLE ChildHandle OPTIONAL,\r
695 IN CHAR8 *Language,\r
696 OUT CHAR16 **ControllerName\r
697 );\r
698\r
8ae0b360 699EFI_STATUS\r
700EFIAPI\r
701ConSplitterAbsolutePointerComponentNameGetControllerName (\r
702 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
703 IN EFI_HANDLE ControllerHandle,\r
704 IN EFI_HANDLE ChildHandle OPTIONAL,\r
705 IN CHAR8 *Language,\r
706 OUT CHAR16 **ControllerName\r
707 )\r
708;\r
5bca971e 709\r
710/**\r
711 Retrieves a Unicode string that is the user readable name of the controller\r
712 that is being managed by a driver.\r
713\r
714 This function retrieves the user readable name of the controller specified by\r
715 ControllerHandle and ChildHandle in the form of a Unicode string. If the\r
716 driver specified by This has a user readable name in the language specified by\r
717 Language, then a pointer to the controller name is returned in ControllerName,\r
718 and EFI_SUCCESS is returned. If the driver specified by This is not currently\r
719 managing the controller specified by ControllerHandle and ChildHandle,\r
720 then EFI_UNSUPPORTED is returned. If the driver specified by This does not\r
721 support the language specified by Language, then EFI_UNSUPPORTED is returned.\r
722\r
723 @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or\r
724 EFI_COMPONENT_NAME_PROTOCOL instance.\r
725\r
726 @param ControllerHandle[in] The handle of a controller that the driver\r
727 specified by This is managing. This handle\r
728 specifies the controller whose name is to be\r
729 returned.\r
730\r
731 @param ChildHandle[in] The handle of the child controller to retrieve\r
732 the name of. This is an optional parameter that\r
733 may be NULL. It will be NULL for device\r
734 drivers. It will also be NULL for a bus drivers\r
735 that wish to retrieve the name of the bus\r
736 controller. It will not be NULL for a bus\r
737 driver that wishes to retrieve the name of a\r
738 child controller.\r
739\r
740 @param Language[in] A pointer to a Null-terminated ASCII string\r
741 array indicating the language. This is the\r
742 language of the driver name that the caller is\r
743 requesting, and it must match one of the\r
744 languages specified in SupportedLanguages. The\r
745 number of languages supported by a driver is up\r
746 to the driver writer. Language is specified in\r
747 RFC 3066 or ISO 639-2 language code format.\r
748\r
749 @param ControllerName[out] A pointer to the Unicode string to return.\r
750 This Unicode string is the name of the\r
751 controller specified by ControllerHandle and\r
752 ChildHandle in the language specified by\r
753 Language from the point of view of the driver\r
754 specified by This.\r
755\r
756 @retval EFI_SUCCESS The Unicode string for the user readable name in\r
757 the language specified by Language for the\r
758 driver specified by This was returned in\r
759 DriverName.\r
760\r
761 @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
762\r
763 @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid\r
764 EFI_HANDLE.\r
765\r
766 @retval EFI_INVALID_PARAMETER Language is NULL.\r
767\r
768 @retval EFI_INVALID_PARAMETER ControllerName is NULL.\r
769\r
770 @retval EFI_UNSUPPORTED The driver specified by This is not currently\r
771 managing the controller specified by\r
772 ControllerHandle and ChildHandle.\r
773\r
774 @retval EFI_UNSUPPORTED The driver specified by This does not support\r
775 the language specified by Language.\r
776\r
777**/\r
95276127 778EFI_STATUS\r
779EFIAPI\r
780ConSplitterConOutComponentNameGetControllerName (\r
781 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
782 IN EFI_HANDLE ControllerHandle,\r
783 IN EFI_HANDLE ChildHandle OPTIONAL,\r
784 IN CHAR8 *Language,\r
785 OUT CHAR16 **ControllerName\r
786 );\r
787\r
5bca971e 788\r
789/**\r
790 Retrieves a Unicode string that is the user readable name of the controller\r
791 that is being managed by a driver.\r
792\r
793 This function retrieves the user readable name of the controller specified by\r
794 ControllerHandle and ChildHandle in the form of a Unicode string. If the\r
795 driver specified by This has a user readable name in the language specified by\r
796 Language, then a pointer to the controller name is returned in ControllerName,\r
797 and EFI_SUCCESS is returned. If the driver specified by This is not currently\r
798 managing the controller specified by ControllerHandle and ChildHandle,\r
799 then EFI_UNSUPPORTED is returned. If the driver specified by This does not\r
800 support the language specified by Language, then EFI_UNSUPPORTED is returned.\r
801\r
802 @param This[in] A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or\r
803 EFI_COMPONENT_NAME_PROTOCOL instance.\r
804\r
805 @param ControllerHandle[in] The handle of a controller that the driver\r
806 specified by This is managing. This handle\r
807 specifies the controller whose name is to be\r
808 returned.\r
809\r
810 @param ChildHandle[in] The handle of the child controller to retrieve\r
811 the name of. This is an optional parameter that\r
812 may be NULL. It will be NULL for device\r
813 drivers. It will also be NULL for a bus drivers\r
814 that wish to retrieve the name of the bus\r
815 controller. It will not be NULL for a bus\r
816 driver that wishes to retrieve the name of a\r
817 child controller.\r
818\r
819 @param Language[in] A pointer to a Null-terminated ASCII string\r
820 array indicating the language. This is the\r
821 language of the driver name that the caller is\r
822 requesting, and it must match one of the\r
823 languages specified in SupportedLanguages. The\r
824 number of languages supported by a driver is up\r
825 to the driver writer. Language is specified in\r
826 RFC 3066 or ISO 639-2 language code format.\r
827\r
828 @param ControllerName[out] A pointer to the Unicode string to return.\r
829 This Unicode string is the name of the\r
830 controller specified by ControllerHandle and\r
831 ChildHandle in the language specified by\r
832 Language from the point of view of the driver\r
833 specified by This.\r
834\r
835 @retval EFI_SUCCESS The Unicode string for the user readable name in\r
836 the language specified by Language for the\r
837 driver specified by This was returned in\r
838 DriverName.\r
839\r
840 @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
841\r
842 @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid\r
843 EFI_HANDLE.\r
844\r
845 @retval EFI_INVALID_PARAMETER Language is NULL.\r
846\r
847 @retval EFI_INVALID_PARAMETER ControllerName is NULL.\r
848\r
849 @retval EFI_UNSUPPORTED The driver specified by This is not currently\r
850 managing the controller specified by\r
851 ControllerHandle and ChildHandle.\r
852\r
853 @retval EFI_UNSUPPORTED The driver specified by This does not support\r
854 the language specified by Language.\r
855\r
856**/\r
95276127 857EFI_STATUS\r
858EFIAPI\r
859ConSplitterStdErrComponentNameGetControllerName (\r
860 IN EFI_COMPONENT_NAME_PROTOCOL *This,\r
861 IN EFI_HANDLE ControllerHandle,\r
862 IN EFI_HANDLE ChildHandle OPTIONAL,\r
863 IN CHAR8 *Language,\r
864 OUT CHAR16 **ControllerName\r
865 );\r
866\r
5bca971e 867\r
95276127 868//\r
869// TextIn Constructor/Destructor functions\r
870//\r
871EFI_STATUS\r
872ConSplitterTextInAddDevice (\r
873 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
874 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn\r
875 )\r
876;\r
877\r
878EFI_STATUS\r
879ConSplitterTextInDeleteDevice (\r
880 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
881 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn\r
882 )\r
883;\r
884\r
885//\r
886// SimplePointer Constuctor/Destructor functions\r
887//\r
888EFI_STATUS\r
889ConSplitterSimplePointerAddDevice (\r
890 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
891 IN EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer\r
892 )\r
893;\r
894\r
895EFI_STATUS\r
896ConSplitterSimplePointerDeleteDevice (\r
897 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
898 IN EFI_SIMPLE_POINTER_PROTOCOL *SimplePointer\r
899 )\r
900;\r
901\r
902//\r
903// TextOut Constuctor/Destructor functions\r
904//\r
905EFI_STATUS\r
906ConSplitterTextOutAddDevice (\r
907 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
908 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut,\r
909 IN EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput,\r
910 IN EFI_UGA_DRAW_PROTOCOL *UgaDraw\r
911 )\r
912;\r
913\r
914EFI_STATUS\r
915ConSplitterTextOutDeleteDevice (\r
916 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
917 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *TextOut\r
918 )\r
919;\r
920\r
921//\r
922// TextIn I/O Functions\r
923//\r
924EFI_STATUS\r
925EFIAPI\r
926ConSplitterTextInReset (\r
927 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,\r
928 IN BOOLEAN ExtendedVerification\r
929 )\r
930;\r
931\r
932EFI_STATUS\r
933EFIAPI\r
934ConSplitterTextInReadKeyStroke (\r
935 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,\r
936 OUT EFI_INPUT_KEY *Key\r
937 )\r
938;\r
66aa04e4 939EFI_STATUS\r
940ConSplitterTextInExAddDevice (\r
941 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
942 IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx\r
943 )\r
944;\r
945\r
946EFI_STATUS\r
947ConSplitterTextInExDeleteDevice (\r
948 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
949 IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *TextInEx\r
950 )\r
951;\r
952\r
953//\r
954// Simple Text Input Ex protocol function prototypes\r
955//\r
956\r
957EFI_STATUS\r
958EFIAPI\r
959ConSplitterTextInResetEx (\r
960 IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
961 IN BOOLEAN ExtendedVerification\r
962 )\r
963/*++\r
964\r
965 Routine Description:\r
966 Reset the input device and optionaly run diagnostics\r
967\r
968 Arguments:\r
969 This - Protocol instance pointer.\r
970 ExtendedVerification - Driver may perform diagnostics on reset.\r
971\r
972 Returns:\r
973 EFI_SUCCESS - The device was reset.\r
aec072ad 974 EFI_DEVICE_ERROR - The device is not functioning properly and could\r
66aa04e4 975 not be reset.\r
976\r
977--*/\r
978;\r
979\r
980EFI_STATUS\r
981EFIAPI\r
982ConSplitterTextInReadKeyStrokeEx (\r
983 IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
984 OUT EFI_KEY_DATA *KeyData\r
985 )\r
986/*++\r
987\r
988 Routine Description:\r
aec072ad 989 Reads the next keystroke from the input device. The WaitForKey Event can\r
66aa04e4 990 be used to test for existance of a keystroke via WaitForEvent () call.\r
991\r
992 Arguments:\r
993 This - Protocol instance pointer.\r
aec072ad 994 KeyData - A pointer to a buffer that is filled in with the keystroke\r
66aa04e4 995 state data for the key that was pressed.\r
996\r
997 Returns:\r
998 EFI_SUCCESS - The keystroke information was returned.\r
999 EFI_NOT_READY - There was no keystroke data availiable.\r
aec072ad 1000 EFI_DEVICE_ERROR - The keystroke information was not returned due to\r
66aa04e4 1001 hardware errors.\r
aec072ad 1002 EFI_INVALID_PARAMETER - KeyData is NULL.\r
66aa04e4 1003\r
1004--*/\r
1005;\r
1006\r
1007EFI_STATUS\r
1008EFIAPI\r
1009ConSplitterTextInSetState (\r
1010 IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
1011 IN EFI_KEY_TOGGLE_STATE *KeyToggleState\r
1012 )\r
1013/*++\r
1014\r
1015 Routine Description:\r
1016 Set certain state for the input device.\r
1017\r
1018 Arguments:\r
1019 This - Protocol instance pointer.\r
aec072ad 1020 KeyToggleState - A pointer to the EFI_KEY_TOGGLE_STATE to set the\r
66aa04e4 1021 state for the input device.\r
aec072ad 1022\r
1023 Returns:\r
66aa04e4 1024 EFI_SUCCESS - The device state was set successfully.\r
aec072ad 1025 EFI_DEVICE_ERROR - The device is not functioning correctly and could\r
66aa04e4 1026 not have the setting adjusted.\r
1027 EFI_UNSUPPORTED - The device does not have the ability to set its state.\r
aec072ad 1028 EFI_INVALID_PARAMETER - KeyToggleState is NULL.\r
66aa04e4 1029\r
aec072ad 1030--*/\r
66aa04e4 1031;\r
95276127 1032\r
66aa04e4 1033EFI_STATUS\r
1034EFIAPI\r
1035ConSplitterTextInRegisterKeyNotify (\r
1036 IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
1037 IN EFI_KEY_DATA *KeyData,\r
1038 IN EFI_KEY_NOTIFY_FUNCTION KeyNotificationFunction,\r
1039 OUT EFI_HANDLE *NotifyHandle\r
1040 )\r
1041/*++\r
1042\r
1043 Routine Description:\r
1044 Register a notification function for a particular keystroke for the input device.\r
1045\r
1046 Arguments:\r
1047 This - Protocol instance pointer.\r
aec072ad 1048 KeyData - A pointer to a buffer that is filled in with the keystroke\r
66aa04e4 1049 information data for the key that was pressed.\r
aec072ad 1050 KeyNotificationFunction - Points to the function to be called when the key\r
1051 sequence is typed specified by KeyData.\r
1052 NotifyHandle - Points to the unique handle assigned to the registered notification.\r
66aa04e4 1053\r
1054 Returns:\r
1055 EFI_SUCCESS - The notification function was registered successfully.\r
1056 EFI_OUT_OF_RESOURCES - Unable to allocate resources for necesssary data structures.\r
aec072ad 1057 EFI_INVALID_PARAMETER - KeyData or NotifyHandle is NULL.\r
1058\r
1059--*/\r
66aa04e4 1060;\r
1061\r
1062EFI_STATUS\r
1063EFIAPI\r
1064ConSplitterTextInUnregisterKeyNotify (\r
1065 IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This,\r
1066 IN EFI_HANDLE NotificationHandle\r
1067 )\r
1068/*++\r
1069\r
1070 Routine Description:\r
1071 Remove a registered notification function from a particular keystroke.\r
1072\r
1073 Arguments:\r
aec072ad 1074 This - Protocol instance pointer.\r
66aa04e4 1075 NotificationHandle - The handle of the notification function being unregistered.\r
1076\r
1077 Returns:\r
1078 EFI_SUCCESS - The notification function was unregistered successfully.\r
1079 EFI_INVALID_PARAMETER - The NotificationHandle is invalid.\r
aec072ad 1080 EFI_NOT_FOUND - Can not find the matching entry in database.\r
1081\r
1082--*/\r
66aa04e4 1083;\r
95276127 1084VOID\r
1085EFIAPI\r
1086ConSplitterTextInWaitForKey (\r
1087 IN EFI_EVENT Event,\r
1088 IN VOID *Context\r
1089 )\r
1090;\r
1091\r
1092BOOLEAN\r
1093ConSpliterConssoleControlStdInLocked (\r
1094 VOID\r
1095 )\r
1096;\r
1097\r
1098VOID\r
1099EFIAPI\r
1100ConSpliterConsoleControlLockStdInEvent (\r
1101 IN EFI_EVENT Event,\r
1102 IN VOID *Context\r
1103 )\r
1104;\r
1105\r
1106EFI_STATUS\r
1107EFIAPI\r
1108ConSpliterConsoleControlLockStdIn (\r
1109 IN EFI_CONSOLE_CONTROL_PROTOCOL *This,\r
1110 IN CHAR16 *Password\r
1111 )\r
1112;\r
1113\r
1114EFI_STATUS\r
1115EFIAPI\r
1116ConSplitterTextInPrivateReadKeyStroke (\r
1117 IN TEXT_IN_SPLITTER_PRIVATE_DATA *Private,\r
1118 OUT EFI_INPUT_KEY *Key\r
1119 )\r
1120;\r
1121\r
1122EFI_STATUS\r
1123EFIAPI\r
1124ConSplitterSimplePointerReset (\r
1125 IN EFI_SIMPLE_POINTER_PROTOCOL *This,\r
1126 IN BOOLEAN ExtendedVerification\r
1127 )\r
1128;\r
1129\r
1130EFI_STATUS\r
1131EFIAPI\r
1132ConSplitterSimplePointerGetState (\r
1133 IN EFI_SIMPLE_POINTER_PROTOCOL *This,\r
1134 IN OUT EFI_SIMPLE_POINTER_STATE *State\r
1135 )\r
1136;\r
1137\r
1138VOID\r
1139EFIAPI\r
1140ConSplitterSimplePointerWaitForInput (\r
1141 IN EFI_EVENT Event,\r
1142 IN VOID *Context\r
1143 )\r
1144;\r
1145\r
1146//\r
1147// TextOut I/O Functions\r
1148//\r
1149VOID\r
1150ConSplitterSynchronizeModeData (\r
1151 TEXT_OUT_SPLITTER_PRIVATE_DATA *Private\r
1152 )\r
1153;\r
1154\r
1155EFI_STATUS\r
1156EFIAPI\r
1157ConSplitterTextOutReset (\r
1158 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
1159 IN BOOLEAN ExtendedVerification\r
1160 )\r
1161;\r
1162\r
1163EFI_STATUS\r
1164EFIAPI\r
1165ConSplitterTextOutOutputString (\r
1166 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
1167 IN CHAR16 *WString\r
1168 )\r
1169;\r
1170\r
1171EFI_STATUS\r
1172EFIAPI\r
1173ConSplitterTextOutTestString (\r
1174 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
1175 IN CHAR16 *WString\r
1176 )\r
1177;\r
1178\r
1179EFI_STATUS\r
1180EFIAPI\r
1181ConSplitterTextOutQueryMode (\r
1182 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
1183 IN UINTN ModeNumber,\r
1184 OUT UINTN *Columns,\r
1185 OUT UINTN *Rows\r
1186 )\r
1187;\r
1188\r
1189EFI_STATUS\r
1190EFIAPI\r
1191ConSplitterTextOutSetMode (\r
1192 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
1193 IN UINTN ModeNumber\r
1194 )\r
1195;\r
1196\r
1197EFI_STATUS\r
1198EFIAPI\r
1199ConSplitterTextOutSetAttribute (\r
1200 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
1201 IN UINTN Attribute\r
1202 )\r
1203;\r
1204\r
1205EFI_STATUS\r
1206EFIAPI\r
1207ConSplitterTextOutClearScreen (\r
1208 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This\r
1209 )\r
1210;\r
1211\r
1212EFI_STATUS\r
1213EFIAPI\r
1214ConSplitterTextOutSetCursorPosition (\r
1215 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
1216 IN UINTN Column,\r
1217 IN UINTN Row\r
1218 )\r
1219;\r
1220\r
1221EFI_STATUS\r
1222EFIAPI\r
1223ConSplitterTextOutEnableCursor (\r
1224 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
1225 IN BOOLEAN Visible\r
1226 )\r
1227;\r
1228\r
1229EFI_STATUS\r
1230ConSplitterGrowBuffer (\r
1231 IN UINTN SizeOfCount,\r
1232 IN UINTN *Count,\r
1233 IN OUT VOID **Buffer\r
1234 )\r
1235;\r
1236\r
1237EFI_STATUS\r
1238EFIAPI\r
1239ConSpliterConsoleControlGetMode (\r
1240 IN EFI_CONSOLE_CONTROL_PROTOCOL *This,\r
1241 OUT EFI_CONSOLE_CONTROL_SCREEN_MODE *Mode,\r
1242 OUT BOOLEAN *GopExists,\r
1243 OUT BOOLEAN *StdInLocked\r
1244 )\r
1245;\r
1246\r
1247EFI_STATUS\r
1248EFIAPI\r
1249ConSpliterConsoleControlSetMode (\r
1250 IN EFI_CONSOLE_CONTROL_PROTOCOL *This,\r
1251 IN EFI_CONSOLE_CONTROL_SCREEN_MODE Mode\r
1252 )\r
1253;\r
1254\r
1255EFI_STATUS\r
1256EFIAPI\r
1257ConSpliterGraphicsOutputQueryMode (\r
66aa04e4 1258 IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,\r
1259 IN UINT32 ModeNumber,\r
1260 OUT UINTN *SizeOfInfo,\r
1261 OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION **Info\r
95276127 1262 )\r
1263;\r
1264\r
1265EFI_STATUS\r
1266EFIAPI\r
1267ConSpliterGraphicsOutputSetMode (\r
1268 IN EFI_GRAPHICS_OUTPUT_PROTOCOL * This,\r
1269 IN UINT32 ModeNumber\r
1270 )\r
1271;\r
1272\r
1273EFI_STATUS\r
1274EFIAPI\r
1275ConSpliterGraphicsOutputBlt (\r
1276 IN EFI_GRAPHICS_OUTPUT_PROTOCOL *This,\r
1277 IN EFI_GRAPHICS_OUTPUT_BLT_PIXEL *BltBuffer, OPTIONAL\r
1278 IN EFI_GRAPHICS_OUTPUT_BLT_OPERATION BltOperation,\r
1279 IN UINTN SourceX,\r
1280 IN UINTN SourceY,\r
1281 IN UINTN DestinationX,\r
1282 IN UINTN DestinationY,\r
1283 IN UINTN Width,\r
1284 IN UINTN Height,\r
1285 IN UINTN Delta OPTIONAL\r
1286 )\r
1287;\r
1288\r
1289EFI_STATUS\r
1290DevNullGopSync (\r
1291 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
1292 IN EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput,\r
1293 IN EFI_UGA_DRAW_PROTOCOL *UgaDraw\r
1294 )\r
1295;\r
1296\r
d0c64728 1297EFI_STATUS\r
1298EFIAPI\r
1299ConSpliterUgaDrawGetMode (\r
1300 IN EFI_UGA_DRAW_PROTOCOL *This,\r
1301 OUT UINT32 *HorizontalResolution,\r
1302 OUT UINT32 *VerticalResolution,\r
1303 OUT UINT32 *ColorDepth,\r
1304 OUT UINT32 *RefreshRate\r
1305 )\r
1306;\r
1307\r
1308EFI_STATUS\r
1309EFIAPI\r
1310ConSpliterUgaDrawSetMode (\r
1311 IN EFI_UGA_DRAW_PROTOCOL *This,\r
1312 IN UINT32 HorizontalResolution,\r
1313 IN UINT32 VerticalResolution,\r
1314 IN UINT32 ColorDepth,\r
1315 IN UINT32 RefreshRate\r
1316 )\r
1317;\r
1318\r
1319EFI_STATUS\r
1320EFIAPI\r
1321ConSpliterUgaDrawBlt (\r
1322 IN EFI_UGA_DRAW_PROTOCOL *This,\r
1323 IN EFI_UGA_PIXEL *BltBuffer, OPTIONAL\r
1324 IN EFI_UGA_BLT_OPERATION BltOperation,\r
1325 IN UINTN SourceX,\r
1326 IN UINTN SourceY,\r
1327 IN UINTN DestinationX,\r
1328 IN UINTN DestinationY,\r
1329 IN UINTN Width,\r
1330 IN UINTN Height,\r
1331 IN UINTN Delta OPTIONAL\r
1332 )\r
1333;\r
1334\r
1335EFI_STATUS\r
1336DevNullUgaSync (\r
1337 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
1338 IN EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput,\r
1339 IN EFI_UGA_DRAW_PROTOCOL *UgaDraw\r
1340 )\r
1341;\r
95276127 1342\r
1343EFI_STATUS\r
1344DevNullTextOutOutputString (\r
1345 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
1346 IN CHAR16 *WString\r
1347 )\r
1348;\r
1349\r
1350EFI_STATUS\r
1351DevNullTextOutSetMode (\r
1352 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
1353 IN UINTN ModeNumber\r
1354 )\r
1355;\r
1356\r
1357EFI_STATUS\r
1358DevNullTextOutClearScreen (\r
1359 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private\r
1360 )\r
1361;\r
1362\r
1363EFI_STATUS\r
1364DevNullTextOutSetCursorPosition (\r
1365 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
1366 IN UINTN Column,\r
1367 IN UINTN Row\r
1368 )\r
1369;\r
1370\r
1371EFI_STATUS\r
1372DevNullTextOutEnableCursor (\r
1373 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private,\r
1374 IN BOOLEAN Visible\r
1375 )\r
1376;\r
1377\r
1378EFI_STATUS\r
aec072ad 1379DevNullSyncStdOut (\r
95276127 1380 IN TEXT_OUT_SPLITTER_PRIVATE_DATA *Private\r
1381 )\r
1382;\r
1383\r
1384#endif\r