]> git.proxmox.com Git - mirror_edk2.git/blame - UnixPkg/UnixConsoleDxe/Console.h
Integrate patch from Andrew Fish to make it run on OS X.
[mirror_edk2.git] / UnixPkg / UnixConsoleDxe / Console.h
CommitLineData
804405e7 1/*++\r
2\r
3Copyright (c) 2004 - 2008, Intel Corporation \r
4All rights reserved. This program and the accompanying materials \r
5are licensed and made available under the terms and conditions of the BSD License \r
6which accompanies this distribution. The full text of the license may be found at \r
7http://opensource.org/licenses/bsd-license.php \r
8 \r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11\r
12Module Name:\r
13\r
14 Console.h\r
15\r
16Abstract:\r
17\r
18 Console based on Posix APIs.\r
19\r
20 This file attaches a SimpleTextIn protocol to a previously open window.\r
21 \r
22 The constructor for this protocol depends on an open window. Currently\r
23 the SimpleTextOut protocol creates a window when it's constructor is called.\r
24 Thus this code must run after the constructor for the SimpleTextOut \r
25 protocol\r
26 \r
27--*/\r
28\r
29#ifndef _CONSOLE_H_\r
30#define _CONSOLE_H_\r
31\r
32#include "PiDxe.h"\r
33#include "UnixDxe.h"\r
34#include <Protocol/UnixIo.h>\r
35#include <Protocol/SimpleTextIn.h>\r
36#include <Protocol/SimpleTextOut.h>\r
37\r
38#include <Library/DebugLib.h>\r
39#include <Library/BaseLib.h>\r
40#include <Library/UefiDriverEntryPoint.h>\r
41#include <Library/UefiLib.h>\r
42#include <Library/BaseMemoryLib.h>\r
43#include <Library/MemoryAllocationLib.h>\r
44#include <Library/UefiBootServicesTableLib.h>\r
45\r
46extern EFI_DRIVER_BINDING_PROTOCOL gUnixConsoleDriverBinding;\r
47extern EFI_COMPONENT_NAME_PROTOCOL gUnixConsoleComponentName;\r
48\r
49#define UNIX_SIMPLE_TEXT_PRIVATE_DATA_SIGNATURE \\r
208301e9 50 SIGNATURE_32('U','X','s','c')\r
804405e7 51\r
52typedef struct {\r
53 UINT64 Signature;\r
54\r
55 EFI_HANDLE Handle;\r
56\r
57 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SimpleTextOut;\r
58 EFI_SIMPLE_TEXT_OUTPUT_MODE SimpleTextOutMode;\r
59\r
60 EFI_UNIX_IO_PROTOCOL *UnixIo;\r
61 EFI_UNIX_THUNK_PROTOCOL *UnixThunk;\r
62\r
63 //\r
64 // SimpleTextOut Private Data including Posix types.\r
65 //\r
66 // HANDLE NtOutHandle;\r
67 // HANDLE NtInHandle;\r
68\r
69 //COORD MaxScreenSize;\r
70 //COORD Position;\r
71 //WORD Attribute;\r
72 BOOLEAN CursorEnable;\r
73\r
74 EFI_SIMPLE_TEXT_INPUT_PROTOCOL SimpleTextIn;\r
75\r
76 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
77\r
78} UNIX_SIMPLE_TEXT_PRIVATE_DATA;\r
79\r
80#define UNIX_SIMPLE_TEXT_OUT_PRIVATE_DATA_FROM_THIS(a) \\r
81 CR(a, UNIX_SIMPLE_TEXT_PRIVATE_DATA, SimpleTextOut, UNIX_SIMPLE_TEXT_PRIVATE_DATA_SIGNATURE)\r
82\r
83#define UNIX_SIMPLE_TEXT_IN_PRIVATE_DATA_FROM_THIS(a) \\r
84 CR(a, UNIX_SIMPLE_TEXT_PRIVATE_DATA, SimpleTextIn, UNIX_SIMPLE_TEXT_PRIVATE_DATA_SIGNATURE)\r
85\r
86//\r
87// Console Globale Variables\r
88//\r
89extern EFI_DRIVER_BINDING_PROTOCOL gUnixConsoleDriverBinding;\r
90extern EFI_COMPONENT_NAME_PROTOCOL gUnixConsoleComponentName;\r
91\r
92typedef struct {\r
93 UINTN ColumnsX;\r
94 UINTN RowsY;\r
95} UNIX_SIMPLE_TEXT_OUT_MODE;\r
96\r
ccd55824 97#if 0\r
804405e7 98//\r
99// Simple Text Out protocol member functions\r
100//\r
101\r
804405e7 102EFI_STATUS\r
103EFIAPI\r
104UnixSimpleTextOutReset (\r
105 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
106 IN BOOLEAN ExtendedVerification\r
107 )\r
108/*++\r
109\r
110Routine Description:\r
111\r
112 TODO: Add function description\r
113\r
114Arguments:\r
115\r
116 This - TODO: add argument description\r
117 ExtendedVerification - TODO: add argument description\r
118\r
119Returns:\r
120\r
121 TODO: add return values\r
122\r
123--*/\r
124;\r
125\r
804405e7 126EFI_STATUS\r
127EFIAPI\r
128UnixSimpleTextOutOutputString (\r
129 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
130 IN CHAR16 *String\r
131 )\r
132/*++\r
133\r
134Routine Description:\r
135\r
136 TODO: Add function description\r
137\r
138Arguments:\r
139\r
140 This - TODO: add argument description\r
141 String - TODO: add argument description\r
142\r
143Returns:\r
144\r
145 TODO: add return values\r
146\r
147--*/\r
148;\r
149\r
804405e7 150EFI_STATUS\r
151EFIAPI\r
152UnixSimpleTextOutTestString (\r
153 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
154 IN CHAR16 *String\r
155 )\r
156/*++\r
157\r
158Routine Description:\r
159\r
160 TODO: Add function description\r
161\r
162Arguments:\r
163\r
164 This - TODO: add argument description\r
165 String - TODO: add argument description\r
166\r
167Returns:\r
168\r
169 TODO: add return values\r
170\r
171--*/\r
172;\r
173\r
804405e7 174EFI_STATUS\r
175EFIAPI\r
176UnixSimpleTextOutQueryMode (\r
177 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
178 IN UINTN ModeNumber,\r
179 OUT UINTN *Columns,\r
180 OUT UINTN *Rows\r
181 )\r
182/*++\r
183\r
184Routine Description:\r
185\r
186 TODO: Add function description\r
187\r
188Arguments:\r
189\r
190 This - TODO: add argument description\r
191 ModeNumber - TODO: add argument description\r
192 Columns - TODO: add argument description\r
193 Rows - TODO: add argument description\r
194\r
195Returns:\r
196\r
197 TODO: add return values\r
198\r
199--*/\r
200;\r
201\r
202EFI_STATUS\r
203EFIAPI\r
204UnixSimpleTextOutSetMode (\r
205 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
206 IN UINTN ModeNumber\r
207 )\r
208/*++\r
209\r
210Routine Description:\r
211\r
212 TODO: Add function description\r
213\r
214Arguments:\r
215\r
216 This - TODO: add argument description\r
217 ModeNumber - TODO: add argument description\r
218\r
219Returns:\r
220\r
221 TODO: add return values\r
222\r
223--*/\r
224;\r
225\r
804405e7 226EFI_STATUS\r
227EFIAPI\r
228UnixSimpleTextOutSetAttribute (\r
229 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
230 IN UINTN Attribute\r
231 )\r
232/*++\r
233\r
234Routine Description:\r
235\r
236 TODO: Add function description\r
237\r
238Arguments:\r
239\r
240 This - TODO: add argument description\r
241 Attribute - TODO: add argument description\r
242\r
243Returns:\r
244\r
245 TODO: add return values\r
246\r
247--*/\r
248;\r
249\r
804405e7 250EFI_STATUS\r
251EFIAPI\r
252UnixSimpleTextOutClearScreen (\r
253 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This\r
254 )\r
255/*++\r
256\r
257Routine Description:\r
258\r
259 TODO: Add function description\r
260\r
261Arguments:\r
262\r
263 This - TODO: add argument description\r
264\r
265Returns:\r
266\r
267 TODO: add return values\r
268\r
269--*/\r
270;\r
271\r
804405e7 272EFI_STATUS\r
273EFIAPI\r
274UnixSimpleTextOutSetCursorPosition (\r
275 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
276 IN UINTN Column,\r
277 IN UINTN Row\r
278 )\r
279/*++\r
280\r
281Routine Description:\r
282\r
283 TODO: Add function description\r
284\r
285Arguments:\r
286\r
287 This - TODO: add argument description\r
288 Column - TODO: add argument description\r
289 Row - TODO: add argument description\r
290\r
291Returns:\r
292\r
293 TODO: add return values\r
294\r
295--*/\r
296;\r
297\r
804405e7 298EFI_STATUS\r
299EFIAPI\r
300UnixSimpleTextOutEnableCursor (\r
301 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
302 IN BOOLEAN Enable\r
303 )\r
304/*++\r
305\r
306Routine Description:\r
307\r
308 TODO: Add function description\r
309\r
310Arguments:\r
311\r
312 This - TODO: add argument description\r
313 Enable - TODO: add argument description\r
314\r
315Returns:\r
316\r
317 TODO: add return values\r
318\r
319--*/\r
320;\r
321\r
ccd55824 322#endif\r
804405e7 323//\r
324// Simple Text Out constructor and destructor.\r
325//\r
326EFI_STATUS\r
327UnixSimpleTextOutOpenWindow (\r
328 IN OUT UNIX_SIMPLE_TEXT_PRIVATE_DATA *Private\r
329 )\r
330/*++\r
331\r
332Routine Description:\r
333\r
334 TODO: Add function description\r
335\r
336Arguments:\r
337\r
338 Private - TODO: add argument description\r
339\r
340Returns:\r
341\r
342 TODO: add return values\r
343\r
344--*/\r
345;\r
346\r
347EFI_STATUS\r
348UnixSimpleTextOutCloseWindow (\r
349 IN OUT UNIX_SIMPLE_TEXT_PRIVATE_DATA *Console\r
350 )\r
351/*++\r
352\r
353Routine Description:\r
354\r
355 TODO: Add function description\r
356\r
357Arguments:\r
358\r
359 Console - TODO: add argument description\r
360\r
361Returns:\r
362\r
363 TODO: add return values\r
364\r
365--*/\r
366;\r
367\r
ccd55824 368#if 0\r
804405e7 369//\r
370// Simple Text In protocol member functions.\r
371//\r
804405e7 372EFI_STATUS\r
373EFIAPI\r
374UnixSimpleTextInReset (\r
375 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,\r
376 IN BOOLEAN ExtendedVerification\r
377 )\r
378/*++\r
379\r
380Routine Description:\r
381\r
382 TODO: Add function description\r
383\r
384Arguments:\r
385\r
386 This - TODO: add argument description\r
387 ExtendedVerification - TODO: add argument description\r
388\r
389Returns:\r
390\r
391 TODO: add return values\r
392\r
393--*/\r
394;\r
395\r
804405e7 396EFI_STATUS\r
397EFIAPI\r
398UnixSimpleTextInReadKeyStroke (\r
399 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,\r
400 OUT EFI_INPUT_KEY *Key\r
401 )\r
402/*++\r
403\r
404Routine Description:\r
405\r
406 TODO: Add function description\r
407\r
408Arguments:\r
409\r
410 This - TODO: add argument description\r
411 Key - TODO: add argument description\r
412\r
413Returns:\r
414\r
415 TODO: add return values\r
416\r
417--*/\r
418;\r
419\r
804405e7 420VOID\r
421EFIAPI\r
422UnixSimpleTextInWaitForKey (\r
423 IN EFI_EVENT Event,\r
424 IN VOID *Context\r
425 )\r
426/*++\r
427\r
428Routine Description:\r
429\r
430 TODO: Add function description\r
431\r
432Arguments:\r
433\r
434 Event - TODO: add argument description\r
435 Context - TODO: add argument description\r
436\r
437Returns:\r
438\r
439 TODO: add return values\r
440\r
441--*/\r
442;\r
443\r
ccd55824 444#endif\r
804405e7 445//\r
446// Simple Text In constructor\r
447//\r
448EFI_STATUS\r
449UnixSimpleTextInAttachToWindow (\r
450 IN UNIX_SIMPLE_TEXT_PRIVATE_DATA *Private\r
451 )\r
452/*++\r
453\r
454Routine Description:\r
455\r
456 TODO: Add function description\r
457\r
458Arguments:\r
459\r
460 Private - TODO: add argument description\r
461\r
462Returns:\r
463\r
464 TODO: add return values\r
465\r
466--*/\r
467;\r
468\r
469//\r
470// Main Entry Point\r
471//\r
472EFI_STATUS\r
473EFIAPI\r
474InitializeUnixConsole (\r
475 IN EFI_HANDLE ImageHandle,\r
476 IN EFI_SYSTEM_TABLE *SystemTable\r
477 )\r
478/*++\r
479\r
480Routine Description:\r
481\r
482 TODO: Add function description\r
483\r
484Arguments:\r
485\r
486 ImageHandle - TODO: add argument description\r
487 SystemTable - TODO: add argument description\r
488\r
489Returns:\r
490\r
491 TODO: add return values\r
492\r
493--*/\r
494;\r
495\r
496EFI_STATUS\r
497AppendDevicePathInstanceToVar (\r
498 IN CHAR16 *VariableName,\r
499 IN EFI_DEVICE_PATH_PROTOCOL *DevicePathInstance\r
500 )\r
501/*++\r
502\r
503Routine Description:\r
504\r
505 TODO: Add function description\r
506\r
507Arguments:\r
508\r
509 VariableName - TODO: add argument description\r
510 DevicePathInstance - TODO: add argument description\r
511\r
512Returns:\r
513\r
514 TODO: add return values\r
515\r
516--*/\r
517;\r
518\r
519#endif\r