3 Copyright (c) 2004 - 2008, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 Console based on Posix APIs.
20 This file attaches a SimpleTextIn protocol to a previously open window.
22 The constructor for this protocol depends on an open window. Currently
23 the SimpleTextOut protocol creates a window when it's constructor is called.
24 Thus this code must run after the constructor for the SimpleTextOut
34 #include <Protocol/UnixIo.h>
35 #include <Protocol/SimpleTextIn.h>
36 #include <Protocol/SimpleTextOut.h>
38 #include <Library/DebugLib.h>
39 #include <Library/BaseLib.h>
40 #include <Library/UefiDriverEntryPoint.h>
41 #include <Library/UefiLib.h>
42 #include <Library/BaseMemoryLib.h>
43 #include <Library/MemoryAllocationLib.h>
44 #include <Library/UefiBootServicesTableLib.h>
46 extern EFI_DRIVER_BINDING_PROTOCOL gUnixConsoleDriverBinding
;
47 extern EFI_COMPONENT_NAME_PROTOCOL gUnixConsoleComponentName
;
49 #define UNIX_SIMPLE_TEXT_PRIVATE_DATA_SIGNATURE \
50 EFI_SIGNATURE_32('U','X','s','c')
57 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SimpleTextOut
;
58 EFI_SIMPLE_TEXT_OUTPUT_MODE SimpleTextOutMode
;
60 EFI_UNIX_IO_PROTOCOL
*UnixIo
;
61 EFI_UNIX_THUNK_PROTOCOL
*UnixThunk
;
64 // SimpleTextOut Private Data including Posix types.
66 // HANDLE NtOutHandle;
69 //COORD MaxScreenSize;
74 EFI_SIMPLE_TEXT_INPUT_PROTOCOL SimpleTextIn
;
76 EFI_UNICODE_STRING_TABLE
*ControllerNameTable
;
78 } UNIX_SIMPLE_TEXT_PRIVATE_DATA
;
80 #define UNIX_SIMPLE_TEXT_OUT_PRIVATE_DATA_FROM_THIS(a) \
81 CR(a, UNIX_SIMPLE_TEXT_PRIVATE_DATA, SimpleTextOut, UNIX_SIMPLE_TEXT_PRIVATE_DATA_SIGNATURE)
83 #define UNIX_SIMPLE_TEXT_IN_PRIVATE_DATA_FROM_THIS(a) \
84 CR(a, UNIX_SIMPLE_TEXT_PRIVATE_DATA, SimpleTextIn, UNIX_SIMPLE_TEXT_PRIVATE_DATA_SIGNATURE)
87 // Console Globale Variables
89 extern EFI_DRIVER_BINDING_PROTOCOL gUnixConsoleDriverBinding
;
90 extern EFI_COMPONENT_NAME_PROTOCOL gUnixConsoleComponentName
;
95 } UNIX_SIMPLE_TEXT_OUT_MODE
;
99 // Simple Text Out protocol member functions
105 UnixSimpleTextOutReset (
106 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
,
107 IN BOOLEAN ExtendedVerification
113 TODO: Add function description
117 This - TODO: add argument description
118 ExtendedVerification - TODO: add argument description
122 TODO: add return values
130 UnixSimpleTextOutOutputString (
131 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
,
138 TODO: Add function description
142 This - TODO: add argument description
143 String - TODO: add argument description
147 TODO: add return values
155 UnixSimpleTextOutTestString (
156 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
,
163 TODO: Add function description
167 This - TODO: add argument description
168 String - TODO: add argument description
172 TODO: add return values
180 UnixSimpleTextOutQueryMode (
181 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
,
190 TODO: Add function description
194 This - TODO: add argument description
195 ModeNumber - TODO: add argument description
196 Columns - TODO: add argument description
197 Rows - TODO: add argument description
201 TODO: add return values
208 UnixSimpleTextOutSetMode (
209 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
,
216 TODO: Add function description
220 This - TODO: add argument description
221 ModeNumber - TODO: add argument description
225 TODO: add return values
233 UnixSimpleTextOutSetAttribute (
234 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
,
241 TODO: Add function description
245 This - TODO: add argument description
246 Attribute - TODO: add argument description
250 TODO: add return values
258 UnixSimpleTextOutClearScreen (
259 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
265 TODO: Add function description
269 This - TODO: add argument description
273 TODO: add return values
281 UnixSimpleTextOutSetCursorPosition (
282 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
,
290 TODO: Add function description
294 This - TODO: add argument description
295 Column - TODO: add argument description
296 Row - TODO: add argument description
300 TODO: add return values
308 UnixSimpleTextOutEnableCursor (
309 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL
*This
,
316 TODO: Add function description
320 This - TODO: add argument description
321 Enable - TODO: add argument description
325 TODO: add return values
332 // Simple Text Out constructor and destructor.
335 UnixSimpleTextOutOpenWindow (
336 IN OUT UNIX_SIMPLE_TEXT_PRIVATE_DATA
*Private
342 TODO: Add function description
346 Private - TODO: add argument description
350 TODO: add return values
356 UnixSimpleTextOutCloseWindow (
357 IN OUT UNIX_SIMPLE_TEXT_PRIVATE_DATA
*Console
363 TODO: Add function description
367 Console - TODO: add argument description
371 TODO: add return values
378 // Simple Text In protocol member functions.
383 UnixSimpleTextInReset (
384 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL
*This
,
385 IN BOOLEAN ExtendedVerification
391 TODO: Add function description
395 This - TODO: add argument description
396 ExtendedVerification - TODO: add argument description
400 TODO: add return values
408 UnixSimpleTextInReadKeyStroke (
409 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL
*This
,
410 OUT EFI_INPUT_KEY
*Key
416 TODO: Add function description
420 This - TODO: add argument description
421 Key - TODO: add argument description
425 TODO: add return values
433 UnixSimpleTextInWaitForKey (
441 TODO: Add function description
445 Event - TODO: add argument description
446 Context - TODO: add argument description
450 TODO: add return values
457 // Simple Text In constructor
460 UnixSimpleTextInAttachToWindow (
461 IN UNIX_SIMPLE_TEXT_PRIVATE_DATA
*Private
467 TODO: Add function description
471 Private - TODO: add argument description
475 TODO: add return values
485 InitializeUnixConsole (
486 IN EFI_HANDLE ImageHandle
,
487 IN EFI_SYSTEM_TABLE
*SystemTable
493 TODO: Add function description
497 ImageHandle - TODO: add argument description
498 SystemTable - TODO: add argument description
502 TODO: add return values
508 AppendDevicePathInstanceToVar (
509 IN CHAR16
*VariableName
,
510 IN EFI_DEVICE_PATH_PROTOCOL
*DevicePathInstance
516 TODO: Add function description
520 VariableName - TODO: add argument description
521 DevicePathInstance - TODO: add argument description
525 TODO: add return values