]> git.proxmox.com Git - mirror_edk2.git/blame - Nt32Pkg/WinNtConsoleDxe/Console.h
Add WinNtSimpleFileSystemDxe driver into Nt32Pkg.
[mirror_edk2.git] / Nt32Pkg / WinNtConsoleDxe / Console.h
CommitLineData
af4d71fc 1/*++\r
2\r
3Copyright (c) 2006, 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\r
33#define WIN_NT_SIMPLE_TEXT_PRIVATE_DATA_SIGNATURE \\r
34 EFI_SIGNATURE_32('N','T','s','c')\r
35\r
36typedef struct {\r
37 UINT64 Signature;\r
38\r
39 EFI_HANDLE Handle;\r
40\r
41 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SimpleTextOut;\r
42 EFI_SIMPLE_TEXT_OUTPUT_MODE SimpleTextOutMode;\r
43\r
44 EFI_WIN_NT_IO_PROTOCOL *WinNtIo;\r
45 EFI_WIN_NT_THUNK_PROTOCOL *WinNtThunk;\r
46\r
47 //\r
48 // SimpleTextOut Private Data including Win32 types.\r
49 //\r
50 HANDLE NtOutHandle;\r
51 HANDLE NtInHandle;\r
52\r
53 COORD MaxScreenSize;\r
54 COORD Possition;\r
55 WORD Attribute;\r
56 BOOLEAN CursorEnable;\r
57\r
58 EFI_SIMPLE_TEXT_INPUT_PROTOCOL SimpleTextIn;\r
59\r
60 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
61\r
62} WIN_NT_SIMPLE_TEXT_PRIVATE_DATA;\r
63\r
64#define WIN_NT_SIMPLE_TEXT_OUT_PRIVATE_DATA_FROM_THIS(a) \\r
65 CR(a, WIN_NT_SIMPLE_TEXT_PRIVATE_DATA, SimpleTextOut, WIN_NT_SIMPLE_TEXT_PRIVATE_DATA_SIGNATURE)\r
66\r
67#define WIN_NT_SIMPLE_TEXT_IN_PRIVATE_DATA_FROM_THIS(a) \\r
68 CR(a, WIN_NT_SIMPLE_TEXT_PRIVATE_DATA, SimpleTextIn, WIN_NT_SIMPLE_TEXT_PRIVATE_DATA_SIGNATURE)\r
69\r
70//\r
71// Console Globale Variables\r
72//\r
73extern EFI_DRIVER_BINDING_PROTOCOL gWinNtConsoleDriverBinding;\r
74extern EFI_COMPONENT_NAME_PROTOCOL gWinNtConsoleComponentName;\r
75\r
76typedef struct {\r
77 UINTN ColumnsX;\r
78 UINTN RowsY;\r
79} WIN_NT_SIMPLE_TEXT_OUT_MODE;\r
80\r
81//\r
82// Simple Text Out protocol member functions\r
83//\r
84\r
85STATIC\r
86EFI_STATUS\r
87EFIAPI\r
88WinNtSimpleTextOutReset (\r
89 IN EFI_SIMPLE_TEXT_OUTPUT_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
113WinNtSimpleTextOutOutputString (\r
114 IN EFI_SIMPLE_TEXT_OUTPUT_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
138WinNtSimpleTextOutTestString (\r
139 IN EFI_SIMPLE_TEXT_OUTPUT_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
163WinNtSimpleTextOutQueryMode (\r
164 IN EFI_SIMPLE_TEXT_OUTPUT_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
189STATIC\r
190EFI_STATUS\r
191EFIAPI\r
192WinNtSimpleTextOutSetMode (\r
193 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
194 IN UINTN ModeNumber\r
195 )\r
196/*++\r
197\r
198Routine Description:\r
199\r
200 TODO: Add function description\r
201\r
202Arguments:\r
203\r
204 This - TODO: add argument description\r
205 ModeNumber - TODO: add argument description\r
206\r
207Returns:\r
208\r
209 TODO: add return values\r
210\r
211--*/\r
212;\r
213\r
214STATIC\r
215EFI_STATUS\r
216EFIAPI\r
217WinNtSimpleTextOutSetAttribute (\r
218 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
219 IN UINTN Attribute\r
220 )\r
221/*++\r
222\r
223Routine Description:\r
224\r
225 TODO: Add function description\r
226\r
227Arguments:\r
228\r
229 This - TODO: add argument description\r
230 Attribute - TODO: add argument description\r
231\r
232Returns:\r
233\r
234 TODO: add return values\r
235\r
236--*/\r
237;\r
238\r
239STATIC\r
240EFI_STATUS\r
241EFIAPI\r
242WinNtSimpleTextOutClearScreen (\r
243 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This\r
244 )\r
245/*++\r
246\r
247Routine Description:\r
248\r
249 TODO: Add function description\r
250\r
251Arguments:\r
252\r
253 This - TODO: add argument description\r
254\r
255Returns:\r
256\r
257 TODO: add return values\r
258\r
259--*/\r
260;\r
261\r
262STATIC\r
263EFI_STATUS\r
264EFIAPI\r
265WinNtSimpleTextOutSetCursorPosition (\r
266 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
267 IN UINTN Column,\r
268 IN UINTN Row\r
269 )\r
270/*++\r
271\r
272Routine Description:\r
273\r
274 TODO: Add function description\r
275\r
276Arguments:\r
277\r
278 This - TODO: add argument description\r
279 Column - TODO: add argument description\r
280 Row - TODO: add argument description\r
281\r
282Returns:\r
283\r
284 TODO: add return values\r
285\r
286--*/\r
287;\r
288\r
289STATIC\r
290EFI_STATUS\r
291EFIAPI\r
292WinNtSimpleTextOutEnableCursor (\r
293 IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This,\r
294 IN BOOLEAN Enable\r
295 )\r
296/*++\r
297\r
298Routine Description:\r
299\r
300 TODO: Add function description\r
301\r
302Arguments:\r
303\r
304 This - TODO: add argument description\r
305 Enable - TODO: add argument description\r
306\r
307Returns:\r
308\r
309 TODO: add return values\r
310\r
311--*/\r
312;\r
313\r
314//\r
315// Simple Text Out constructor and destructor.\r
316//\r
317EFI_STATUS\r
318WinNtSimpleTextOutOpenWindow (\r
319 IN OUT WIN_NT_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
339WinNtSimpleTextOutCloseWindow (\r
340 IN OUT WIN_NT_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//\r
360// Simple Text In protocol member functions.\r
361//\r
362STATIC\r
363EFI_STATUS\r
364EFIAPI\r
365WinNtSimpleTextInReset (\r
366 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,\r
367 IN BOOLEAN ExtendedVerification\r
368 )\r
369/*++\r
370\r
371Routine Description:\r
372\r
373 TODO: Add function description\r
374\r
375Arguments:\r
376\r
377 This - TODO: add argument description\r
378 ExtendedVerification - TODO: add argument description\r
379\r
380Returns:\r
381\r
382 TODO: add return values\r
383\r
384--*/\r
385;\r
386\r
387STATIC\r
388EFI_STATUS\r
389EFIAPI\r
390WinNtSimpleTextInReadKeyStroke (\r
391 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,\r
392 OUT EFI_INPUT_KEY *Key\r
393 )\r
394/*++\r
395\r
396Routine Description:\r
397\r
398 TODO: Add function description\r
399\r
400Arguments:\r
401\r
402 This - TODO: add argument description\r
403 Key - TODO: add argument description\r
404\r
405Returns:\r
406\r
407 TODO: add return values\r
408\r
409--*/\r
410;\r
411\r
412STATIC\r
413VOID\r
414EFIAPI\r
415WinNtSimpleTextInWaitForKey (\r
416 IN EFI_EVENT Event,\r
417 IN VOID *Context\r
418 )\r
419/*++\r
420\r
421Routine Description:\r
422\r
423 TODO: Add function description\r
424\r
425Arguments:\r
426\r
427 Event - TODO: add argument description\r
428 Context - TODO: add argument description\r
429\r
430Returns:\r
431\r
432 TODO: add return values\r
433\r
434--*/\r
435;\r
436\r
437//\r
438// Simple Text In constructor\r
439//\r
440EFI_STATUS\r
441WinNtSimpleTextInAttachToWindow (\r
442 IN WIN_NT_SIMPLE_TEXT_PRIVATE_DATA *Private\r
443 )\r
444/*++\r
445\r
446Routine Description:\r
447\r
448 TODO: Add function description\r
449\r
450Arguments:\r
451\r
452 Private - TODO: add argument description\r
453\r
454Returns:\r
455\r
456 TODO: add return values\r
457\r
458--*/\r
459;\r
460\r
461//\r
462// Main Entry Point\r
463//\r
464EFI_STATUS\r
465EFIAPI\r
466InitializeWinNtConsole (\r
467 IN EFI_HANDLE ImageHandle,\r
468 IN EFI_SYSTEM_TABLE *SystemTable\r
469 )\r
470/*++\r
471\r
472Routine Description:\r
473\r
474 TODO: Add function description\r
475\r
476Arguments:\r
477\r
478 ImageHandle - TODO: add argument description\r
479 SystemTable - TODO: add argument description\r
480\r
481Returns:\r
482\r
483 TODO: add return values\r
484\r
485--*/\r
486;\r
487\r
488EFI_STATUS\r
489AppendDevicePathInstanceToVar (\r
490 IN CHAR16 *VariableName,\r
491 IN EFI_DEVICE_PATH_PROTOCOL *DevicePathInstance\r
492 )\r
493/*++\r
494\r
495Routine Description:\r
496\r
497 TODO: Add function description\r
498\r
499Arguments:\r
500\r
501 VariableName - TODO: add argument description\r
502 DevicePathInstance - TODO: add argument description\r
503\r
504Returns:\r
505\r
506 TODO: add return values\r
507\r
508--*/\r
509;\r
510\r
511#endif\r