]> git.proxmox.com Git - mirror_edk2.git/blame - UnixPkg/UnixConsoleDxe/Console.h
Switch DxeCore to use DxeCoreMemoryAllocationLib for Unix platform.
[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
50 EFI_SIGNATURE_32('U','X','s','c')\r
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
97#if 0
98//\r
99// Simple Text Out protocol member functions\r
100//\r
101\r
102STATIC\r
103EFI_STATUS\r
104EFIAPI\r
105UnixSimpleTextOutReset (\r
106 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
107 IN BOOLEAN ExtendedVerification\r
108 )\r
109/*++\r
110\r
111Routine Description:\r
112\r
113 TODO: Add function description\r
114\r
115Arguments:\r
116\r
117 This - TODO: add argument description\r
118 ExtendedVerification - TODO: add argument description\r
119\r
120Returns:\r
121\r
122 TODO: add return values\r
123\r
124--*/\r
125;\r
126\r
127STATIC\r
128EFI_STATUS\r
129EFIAPI\r
130UnixSimpleTextOutOutputString (\r
131 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
132 IN CHAR16 *String\r
133 )\r
134/*++\r
135\r
136Routine Description:\r
137\r
138 TODO: Add function description\r
139\r
140Arguments:\r
141\r
142 This - TODO: add argument description\r
143 String - TODO: add argument description\r
144\r
145Returns:\r
146\r
147 TODO: add return values\r
148\r
149--*/\r
150;\r
151\r
152STATIC\r
153EFI_STATUS\r
154EFIAPI\r
155UnixSimpleTextOutTestString (\r
156 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
157 IN CHAR16 *String\r
158 )\r
159/*++\r
160\r
161Routine Description:\r
162\r
163 TODO: Add function description\r
164\r
165Arguments:\r
166\r
167 This - TODO: add argument description\r
168 String - TODO: add argument description\r
169\r
170Returns:\r
171\r
172 TODO: add return values\r
173\r
174--*/\r
175;\r
176\r
177STATIC\r
178EFI_STATUS\r
179EFIAPI\r
180UnixSimpleTextOutQueryMode (\r
181 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
182 IN UINTN ModeNumber,\r
183 OUT UINTN *Columns,\r
184 OUT UINTN *Rows\r
185 )\r
186/*++\r
187\r
188Routine Description:\r
189\r
190 TODO: Add function description\r
191\r
192Arguments:\r
193\r
194 This - TODO: add argument description\r
195 ModeNumber - TODO: add argument description\r
196 Columns - TODO: add argument description\r
197 Rows - TODO: add argument description\r
198\r
199Returns:\r
200\r
201 TODO: add return values\r
202\r
203--*/\r
204;\r
205\r
206EFI_STATUS\r
207EFIAPI\r
208UnixSimpleTextOutSetMode (\r
209 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
210 IN UINTN ModeNumber\r
211 )\r
212/*++\r
213\r
214Routine Description:\r
215\r
216 TODO: Add function description\r
217\r
218Arguments:\r
219\r
220 This - TODO: add argument description\r
221 ModeNumber - TODO: add argument description\r
222\r
223Returns:\r
224\r
225 TODO: add return values\r
226\r
227--*/\r
228;\r
229\r
230STATIC\r
231EFI_STATUS\r
232EFIAPI\r
233UnixSimpleTextOutSetAttribute (\r
234 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
235 IN UINTN Attribute\r
236 )\r
237/*++\r
238\r
239Routine Description:\r
240\r
241 TODO: Add function description\r
242\r
243Arguments:\r
244\r
245 This - TODO: add argument description\r
246 Attribute - TODO: add argument description\r
247\r
248Returns:\r
249\r
250 TODO: add return values\r
251\r
252--*/\r
253;\r
254\r
255STATIC\r
256EFI_STATUS\r
257EFIAPI\r
258UnixSimpleTextOutClearScreen (\r
259 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This\r
260 )\r
261/*++\r
262\r
263Routine Description:\r
264\r
265 TODO: Add function description\r
266\r
267Arguments:\r
268\r
269 This - TODO: add argument description\r
270\r
271Returns:\r
272\r
273 TODO: add return values\r
274\r
275--*/\r
276;\r
277\r
278STATIC\r
279EFI_STATUS\r
280EFIAPI\r
281UnixSimpleTextOutSetCursorPosition (\r
282 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
283 IN UINTN Column,\r
284 IN UINTN Row\r
285 )\r
286/*++\r
287\r
288Routine Description:\r
289\r
290 TODO: Add function description\r
291\r
292Arguments:\r
293\r
294 This - TODO: add argument description\r
295 Column - TODO: add argument description\r
296 Row - TODO: add argument description\r
297\r
298Returns:\r
299\r
300 TODO: add return values\r
301\r
302--*/\r
303;\r
304\r
305STATIC\r
306EFI_STATUS\r
307EFIAPI\r
308UnixSimpleTextOutEnableCursor (\r
309 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
310 IN BOOLEAN Enable\r
311 )\r
312/*++\r
313\r
314Routine Description:\r
315\r
316 TODO: Add function description\r
317\r
318Arguments:\r
319\r
320 This - TODO: add argument description\r
321 Enable - TODO: add argument description\r
322\r
323Returns:\r
324\r
325 TODO: add return values\r
326\r
327--*/\r
328;\r
329\r
330#endif
331//\r
332// Simple Text Out constructor and destructor.\r
333//\r
334EFI_STATUS\r
335UnixSimpleTextOutOpenWindow (\r
336 IN OUT UNIX_SIMPLE_TEXT_PRIVATE_DATA *Private\r
337 )\r
338/*++\r
339\r
340Routine Description:\r
341\r
342 TODO: Add function description\r
343\r
344Arguments:\r
345\r
346 Private - TODO: add argument description\r
347\r
348Returns:\r
349\r
350 TODO: add return values\r
351\r
352--*/\r
353;\r
354\r
355EFI_STATUS\r
356UnixSimpleTextOutCloseWindow (\r
357 IN OUT UNIX_SIMPLE_TEXT_PRIVATE_DATA *Console\r
358 )\r
359/*++\r
360\r
361Routine Description:\r
362\r
363 TODO: Add function description\r
364\r
365Arguments:\r
366\r
367 Console - TODO: add argument description\r
368\r
369Returns:\r
370\r
371 TODO: add return values\r
372\r
373--*/\r
374;\r
375\r
376#if 0
377//\r
378// Simple Text In protocol member functions.\r
379//\r
380STATIC\r
381EFI_STATUS\r
382EFIAPI\r
383UnixSimpleTextInReset (\r
384 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,\r
385 IN BOOLEAN ExtendedVerification\r
386 )\r
387/*++\r
388\r
389Routine Description:\r
390\r
391 TODO: Add function description\r
392\r
393Arguments:\r
394\r
395 This - TODO: add argument description\r
396 ExtendedVerification - TODO: add argument description\r
397\r
398Returns:\r
399\r
400 TODO: add return values\r
401\r
402--*/\r
403;\r
404\r
405STATIC\r
406EFI_STATUS\r
407EFIAPI\r
408UnixSimpleTextInReadKeyStroke (\r
409 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,\r
410 OUT EFI_INPUT_KEY *Key\r
411 )\r
412/*++\r
413\r
414Routine Description:\r
415\r
416 TODO: Add function description\r
417\r
418Arguments:\r
419\r
420 This - TODO: add argument description\r
421 Key - TODO: add argument description\r
422\r
423Returns:\r
424\r
425 TODO: add return values\r
426\r
427--*/\r
428;\r
429\r
430STATIC\r
431VOID\r
432EFIAPI\r
433UnixSimpleTextInWaitForKey (\r
434 IN EFI_EVENT Event,\r
435 IN VOID *Context\r
436 )\r
437/*++\r
438\r
439Routine Description:\r
440\r
441 TODO: Add function description\r
442\r
443Arguments:\r
444\r
445 Event - TODO: add argument description\r
446 Context - TODO: add argument description\r
447\r
448Returns:\r
449\r
450 TODO: add return values\r
451\r
452--*/\r
453;\r
454\r
455#endif
456//\r
457// Simple Text In constructor\r
458//\r
459EFI_STATUS\r
460UnixSimpleTextInAttachToWindow (\r
461 IN UNIX_SIMPLE_TEXT_PRIVATE_DATA *Private\r
462 )\r
463/*++\r
464\r
465Routine Description:\r
466\r
467 TODO: Add function description\r
468\r
469Arguments:\r
470\r
471 Private - TODO: add argument description\r
472\r
473Returns:\r
474\r
475 TODO: add return values\r
476\r
477--*/\r
478;\r
479\r
480//\r
481// Main Entry Point\r
482//\r
483EFI_STATUS\r
484EFIAPI\r
485InitializeUnixConsole (\r
486 IN EFI_HANDLE ImageHandle,\r
487 IN EFI_SYSTEM_TABLE *SystemTable\r
488 )\r
489/*++\r
490\r
491Routine Description:\r
492\r
493 TODO: Add function description\r
494\r
495Arguments:\r
496\r
497 ImageHandle - TODO: add argument description\r
498 SystemTable - TODO: add argument description\r
499\r
500Returns:\r
501\r
502 TODO: add return values\r
503\r
504--*/\r
505;\r
506\r
507EFI_STATUS\r
508AppendDevicePathInstanceToVar (\r
509 IN CHAR16 *VariableName,\r
510 IN EFI_DEVICE_PATH_PROTOCOL *DevicePathInstance\r
511 )\r
512/*++\r
513\r
514Routine Description:\r
515\r
516 TODO: Add function description\r
517\r
518Arguments:\r
519\r
520 VariableName - TODO: add argument description\r
521 DevicePathInstance - TODO: add argument description\r
522\r
523Returns:\r
524\r
525 TODO: add return values\r
526\r
527--*/\r
528;\r
529\r
530#endif\r