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