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