]> git.proxmox.com Git - mirror_edk2.git/blame - EdkUnixPkg/Dxe/UnixThunk/Bus/Console/Console.h
Unix version of EFI emulator
[mirror_edk2.git] / EdkUnixPkg / Dxe / UnixThunk / Bus / Console / Console.h
CommitLineData
c9093a06 1/*++\r
2\r
3Copyright (c) 2004 - 2005, 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 Win32 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#define UNIX_SIMPLE_TEXT_PRIVATE_DATA_SIGNATURE \\r
33 EFI_SIGNATURE_32('U','X','s','c')\r
34\r
35typedef struct {\r
36 UINT64 Signature;\r
37\r
38 EFI_HANDLE Handle;\r
39\r
40 EFI_SIMPLE_TEXT_OUT_PROTOCOL SimpleTextOut;\r
41 EFI_SIMPLE_TEXT_OUTPUT_MODE SimpleTextOutMode;\r
42\r
43 EFI_UNIX_IO_PROTOCOL *UnixIo;\r
44 EFI_UNIX_THUNK_PROTOCOL *UnixThunk;\r
45\r
46 //\r
47 // SimpleTextOut Private Data including Win32 types.\r
48 //\r
49 // HANDLE NtOutHandle;\r
50 // HANDLE NtInHandle;\r
51\r
52 //COORD MaxScreenSize;\r
53 //COORD Position;\r
54 //WORD Attribute;\r
55 BOOLEAN CursorEnable;\r
56\r
57 EFI_SIMPLE_TEXT_IN_PROTOCOL SimpleTextIn;\r
58\r
59 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
60\r
61} UNIX_SIMPLE_TEXT_PRIVATE_DATA;\r
62\r
63#define UNIX_SIMPLE_TEXT_OUT_PRIVATE_DATA_FROM_THIS(a) \\r
64 CR(a, UNIX_SIMPLE_TEXT_PRIVATE_DATA, SimpleTextOut, UNIX_SIMPLE_TEXT_PRIVATE_DATA_SIGNATURE)\r
65\r
66#define UNIX_SIMPLE_TEXT_IN_PRIVATE_DATA_FROM_THIS(a) \\r
67 CR(a, UNIX_SIMPLE_TEXT_PRIVATE_DATA, SimpleTextIn, UNIX_SIMPLE_TEXT_PRIVATE_DATA_SIGNATURE)\r
68\r
69//\r
70// Console Globale Variables\r
71//\r
72extern EFI_DRIVER_BINDING_PROTOCOL gUnixConsoleDriverBinding;\r
73extern EFI_COMPONENT_NAME_PROTOCOL gUnixConsoleComponentName;\r
74\r
75typedef struct {\r
76 UINTN ColumnsX;\r
77 UINTN RowsY;\r
78} UNIX_SIMPLE_TEXT_OUT_MODE;\r
79\r
80#if 0
81//\r
82// Simple Text Out protocol member functions\r
83//\r
84\r
85STATIC\r
86EFI_STATUS\r
87EFIAPI\r
88UnixSimpleTextOutReset (\r
89 IN EFI_SIMPLE_TEXT_OUT_PROTOCOL *This,\r
90 IN BOOLEAN ExtendedVerification\r
91 )\r
92/*++\r
93\r
94Routine Description:\r
95\r
96 TODO: Add function description\r
97\r
98Arguments:\r
99\r
100 This - TODO: add argument description\r
101 ExtendedVerification - TODO: add argument description\r
102\r
103Returns:\r
104\r
105 TODO: add return values\r
106\r
107--*/\r
108;\r
109\r
110STATIC\r
111EFI_STATUS\r
112EFIAPI\r
113UnixSimpleTextOutOutputString (\r
114 IN EFI_SIMPLE_TEXT_OUT_PROTOCOL *This,\r
115 IN CHAR16 *String\r
116 )\r
117/*++\r
118\r
119Routine Description:\r
120\r
121 TODO: Add function description\r
122\r
123Arguments:\r
124\r
125 This - TODO: add argument description\r
126 String - TODO: add argument description\r
127\r
128Returns:\r
129\r
130 TODO: add return values\r
131\r
132--*/\r
133;\r
134\r
135STATIC\r
136EFI_STATUS\r
137EFIAPI\r
138UnixSimpleTextOutTestString (\r
139 IN EFI_SIMPLE_TEXT_OUT_PROTOCOL *This,\r
140 IN CHAR16 *String\r
141 )\r
142/*++\r
143\r
144Routine Description:\r
145\r
146 TODO: Add function description\r
147\r
148Arguments:\r
149\r
150 This - TODO: add argument description\r
151 String - TODO: add argument description\r
152\r
153Returns:\r
154\r
155 TODO: add return values\r
156\r
157--*/\r
158;\r
159\r
160STATIC\r
161EFI_STATUS\r
162EFIAPI\r
163UnixSimpleTextOutQueryMode (\r
164 IN EFI_SIMPLE_TEXT_OUT_PROTOCOL *This,\r
165 IN UINTN ModeNumber,\r
166 OUT UINTN *Columns,\r
167 OUT UINTN *Rows\r
168 )\r
169/*++\r
170\r
171Routine Description:\r
172\r
173 TODO: Add function description\r
174\r
175Arguments:\r
176\r
177 This - TODO: add argument description\r
178 ModeNumber - TODO: add argument description\r
179 Columns - TODO: add argument description\r
180 Rows - TODO: add argument description\r
181\r
182Returns:\r
183\r
184 TODO: add return values\r
185\r
186--*/\r
187;\r
188\r
189EFI_STATUS\r
190EFIAPI\r
191UnixSimpleTextOutSetMode (\r
192 IN EFI_SIMPLE_TEXT_OUT_PROTOCOL *This,\r
193 IN UINTN ModeNumber\r
194 )\r
195/*++\r
196\r
197Routine Description:\r
198\r
199 TODO: Add function description\r
200\r
201Arguments:\r
202\r
203 This - TODO: add argument description\r
204 ModeNumber - TODO: add argument description\r
205\r
206Returns:\r
207\r
208 TODO: add return values\r
209\r
210--*/\r
211;\r
212\r
213STATIC\r
214EFI_STATUS\r
215EFIAPI\r
216UnixSimpleTextOutSetAttribute (\r
217 IN EFI_SIMPLE_TEXT_OUT_PROTOCOL *This,\r
218 IN UINTN Attribute\r
219 )\r
220/*++\r
221\r
222Routine Description:\r
223\r
224 TODO: Add function description\r
225\r
226Arguments:\r
227\r
228 This - TODO: add argument description\r
229 Attribute - TODO: add argument description\r
230\r
231Returns:\r
232\r
233 TODO: add return values\r
234\r
235--*/\r
236;\r
237\r
238STATIC\r
239EFI_STATUS\r
240EFIAPI\r
241UnixSimpleTextOutClearScreen (\r
242 IN EFI_SIMPLE_TEXT_OUT_PROTOCOL *This\r
243 )\r
244/*++\r
245\r
246Routine Description:\r
247\r
248 TODO: Add function description\r
249\r
250Arguments:\r
251\r
252 This - TODO: add argument description\r
253\r
254Returns:\r
255\r
256 TODO: add return values\r
257\r
258--*/\r
259;\r
260\r
261STATIC\r
262EFI_STATUS\r
263EFIAPI\r
264UnixSimpleTextOutSetCursorPosition (\r
265 IN EFI_SIMPLE_TEXT_OUT_PROTOCOL *This,\r
266 IN UINTN Column,\r
267 IN UINTN Row\r
268 )\r
269/*++\r
270\r
271Routine Description:\r
272\r
273 TODO: Add function description\r
274\r
275Arguments:\r
276\r
277 This - TODO: add argument description\r
278 Column - TODO: add argument description\r
279 Row - TODO: add argument description\r
280\r
281Returns:\r
282\r
283 TODO: add return values\r
284\r
285--*/\r
286;\r
287\r
288STATIC\r
289EFI_STATUS\r
290EFIAPI\r
291UnixSimpleTextOutEnableCursor (\r
292 IN EFI_SIMPLE_TEXT_OUT_PROTOCOL *This,\r
293 IN BOOLEAN Enable\r
294 )\r
295/*++\r
296\r
297Routine Description:\r
298\r
299 TODO: Add function description\r
300\r
301Arguments:\r
302\r
303 This - TODO: add argument description\r
304 Enable - TODO: add argument description\r
305\r
306Returns:\r
307\r
308 TODO: add return values\r
309\r
310--*/\r
311;\r
312\r
313#endif
314//\r
315// Simple Text Out constructor and destructor.\r
316//\r
317EFI_STATUS\r
318UnixSimpleTextOutOpenWindow (\r
319 IN OUT UNIX_SIMPLE_TEXT_PRIVATE_DATA *Private\r
320 )\r
321/*++\r
322\r
323Routine Description:\r
324\r
325 TODO: Add function description\r
326\r
327Arguments:\r
328\r
329 Private - TODO: add argument description\r
330\r
331Returns:\r
332\r
333 TODO: add return values\r
334\r
335--*/\r
336;\r
337\r
338EFI_STATUS\r
339UnixSimpleTextOutCloseWindow (\r
340 IN OUT UNIX_SIMPLE_TEXT_PRIVATE_DATA *Console\r
341 )\r
342/*++\r
343\r
344Routine Description:\r
345\r
346 TODO: Add function description\r
347\r
348Arguments:\r
349\r
350 Console - TODO: add argument description\r
351\r
352Returns:\r
353\r
354 TODO: add return values\r
355\r
356--*/\r
357;\r
358\r
359#if 0
360//\r
361// Simple Text In protocol member functions.\r
362//\r
363STATIC\r
364EFI_STATUS\r
365EFIAPI\r
366UnixSimpleTextInReset (\r
367 IN EFI_SIMPLE_TEXT_IN_PROTOCOL *This,\r
368 IN BOOLEAN ExtendedVerification\r
369 )\r
370/*++\r
371\r
372Routine Description:\r
373\r
374 TODO: Add function description\r
375\r
376Arguments:\r
377\r
378 This - TODO: add argument description\r
379 ExtendedVerification - TODO: add argument description\r
380\r
381Returns:\r
382\r
383 TODO: add return values\r
384\r
385--*/\r
386;\r
387\r
388STATIC\r
389EFI_STATUS\r
390EFIAPI\r
391UnixSimpleTextInReadKeyStroke (\r
392 IN EFI_SIMPLE_TEXT_IN_PROTOCOL *This,\r
393 OUT EFI_INPUT_KEY *Key\r
394 )\r
395/*++\r
396\r
397Routine Description:\r
398\r
399 TODO: Add function description\r
400\r
401Arguments:\r
402\r
403 This - TODO: add argument description\r
404 Key - TODO: add argument description\r
405\r
406Returns:\r
407\r
408 TODO: add return values\r
409\r
410--*/\r
411;\r
412\r
413STATIC\r
414VOID\r
415EFIAPI\r
416UnixSimpleTextInWaitForKey (\r
417 IN EFI_EVENT Event,\r
418 IN VOID *Context\r
419 )\r
420/*++\r
421\r
422Routine Description:\r
423\r
424 TODO: Add function description\r
425\r
426Arguments:\r
427\r
428 Event - TODO: add argument description\r
429 Context - TODO: add argument description\r
430\r
431Returns:\r
432\r
433 TODO: add return values\r
434\r
435--*/\r
436;\r
437\r
438#endif
439//\r
440// Simple Text In constructor\r
441//\r
442EFI_STATUS\r
443UnixSimpleTextInAttachToWindow (\r
444 IN UNIX_SIMPLE_TEXT_PRIVATE_DATA *Private\r
445 )\r
446/*++\r
447\r
448Routine Description:\r
449\r
450 TODO: Add function description\r
451\r
452Arguments:\r
453\r
454 Private - TODO: add argument description\r
455\r
456Returns:\r
457\r
458 TODO: add return values\r
459\r
460--*/\r
461;\r
462\r
463//\r
464// Main Entry Point\r
465//\r
466EFI_STATUS\r
467EFIAPI\r
468InitializeUnixConsole (\r
469 IN EFI_HANDLE ImageHandle,\r
470 IN EFI_SYSTEM_TABLE *SystemTable\r
471 )\r
472/*++\r
473\r
474Routine Description:\r
475\r
476 TODO: Add function description\r
477\r
478Arguments:\r
479\r
480 ImageHandle - TODO: add argument description\r
481 SystemTable - TODO: add argument description\r
482\r
483Returns:\r
484\r
485 TODO: add return values\r
486\r
487--*/\r
488;\r
489\r
490EFI_STATUS\r
491AppendDevicePathInstanceToVar (\r
492 IN CHAR16 *VariableName,\r
493 IN EFI_DEVICE_PATH_PROTOCOL *DevicePathInstance\r
494 )\r
495/*++\r
496\r
497Routine Description:\r
498\r
499 TODO: Add function description\r
500\r
501Arguments:\r
502\r
503 VariableName - TODO: add argument description\r
504 DevicePathInstance - TODO: add argument description\r
505\r
506Returns:\r
507\r
508 TODO: add return values\r
509\r
510--*/\r
511;\r
512\r
513#endif\r