TianoCore EDK2 master
Loading...
Searching...
No Matches
Terminal.h
Go to the documentation of this file.
1
10#ifndef _TERMINAL_H_
11#define _TERMINAL_H_
12
13#include <Uefi.h>
14
15#include <Guid/GlobalVariable.h>
16#include <Guid/PcAnsi.h>
17#include <Guid/TtyTerm.h>
19
21#include <Protocol/SerialIo.h>
22#include <Protocol/DevicePath.h>
25
26#include <Library/DebugLib.h>
28#include <Library/UefiLib.h>
35#include <Library/PcdLib.h>
36#include <Library/BaseLib.h>
37
38#define RAW_FIFO_MAX_NUMBER 255
39#define FIFO_MAX_NUMBER 128
40
41typedef struct {
42 UINT8 Head;
43 UINT8 Tail;
44 UINT8 Data[RAW_FIFO_MAX_NUMBER + 1];
46
47typedef struct {
48 UINT8 Head;
49 UINT8 Tail;
50 UINT16 Data[FIFO_MAX_NUMBER + 1];
52
53typedef struct {
54 UINT8 Head;
55 UINT8 Tail;
56 EFI_INPUT_KEY Data[FIFO_MAX_NUMBER + 1];
58
59typedef struct {
60 UINTN Columns;
61 UINTN Rows;
63
64#define KEYBOARD_TIMER_INTERVAL 200000 // 0.02s
65
66#define TERMINAL_DEV_SIGNATURE SIGNATURE_32 ('t', 'm', 'n', 'l')
67
68#define TERMINAL_CONSOLE_IN_EX_NOTIFY_SIGNATURE SIGNATURE_32 ('t', 'm', 'e', 'n')
69
71 UINTN Signature;
72 EFI_KEY_DATA KeyData;
73 EFI_KEY_NOTIFY_FUNCTION KeyNotificationFn;
74 LIST_ENTRY NotifyEntry;
76
77typedef enum {
78 TerminalTypePcAnsi,
79 TerminalTypeVt100,
80 TerminalTypeVt100Plus,
81 TerminalTypeVtUtf8,
82 TerminalTypeTtyTerm,
83 TerminalTypeLinux,
84 TerminalTypeXtermR6,
85 TerminalTypeVt400,
86 TerminalTypeSCO
87} TERMINAL_TYPE;
88
89typedef struct {
90 UINTN Signature;
91 EFI_HANDLE Handle;
92 TERMINAL_TYPE TerminalType;
93 EFI_SERIAL_IO_PROTOCOL *SerialIo;
94 EFI_DEVICE_PATH_PROTOCOL *DevicePath;
96 EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL SimpleTextOutput;
97 EFI_SIMPLE_TEXT_OUTPUT_MODE SimpleTextOutputMode;
98 TERMINAL_CONSOLE_MODE_DATA *TerminalConsoleModeData;
99 UINTN SerialInTimeOut;
100 RAW_DATA_FIFO *RawFiFo;
101 UNICODE_FIFO *UnicodeFiFo;
102 EFI_KEY_FIFO *EfiKeyFiFo;
103 EFI_KEY_FIFO *EfiKeyFiFoForNotify;
104 EFI_UNICODE_STRING_TABLE *ControllerNameTable;
105 EFI_EVENT TimerEvent;
106 EFI_EVENT TwoSecondTimeOut;
107 UINT32 InputState;
108 UINT32 ResetState;
109 UINT16 TtyEscapeStr[3];
110 INTN TtyEscapeIndex;
111
112 //
113 // Esc could not be output to the screen by user,
114 // but the terminal driver need to output it to
115 // the terminal emulation software to send control sequence.
116 // This boolean is used by the terminal driver only
117 // to indicate whether the Esc could be sent or not.
118 //
119 BOOLEAN OutputEscChar;
121 LIST_ENTRY NotifyList;
122 EFI_EVENT KeyNotifyProcessEvent;
124
125#define INPUT_STATE_DEFAULT 0x00
126#define INPUT_STATE_ESC 0x01
127#define INPUT_STATE_CSI 0x02
128#define INPUT_STATE_LEFTOPENBRACKET 0x04
129#define INPUT_STATE_O 0x08
130#define INPUT_STATE_2 0x10
131#define INPUT_STATE_LEFTOPENBRACKET_TTY 0x20
132#define INPUT_STATE_1 0x40
133#define INPUT_STATE_LEFTOPENBRACKET_2ND 0x80
134
135#define RESET_STATE_DEFAULT 0x00
136#define RESET_STATE_ESC_R 0x01
137#define RESET_STATE_ESC_R_ESC_R 0x02
138
139#define TERMINAL_CON_IN_DEV_FROM_THIS(a) CR (a, TERMINAL_DEV, SimpleInput, TERMINAL_DEV_SIGNATURE)
140#define TERMINAL_CON_OUT_DEV_FROM_THIS(a) CR (a, TERMINAL_DEV, SimpleTextOutput, TERMINAL_DEV_SIGNATURE)
141#define TERMINAL_CON_IN_EX_DEV_FROM_THIS(a) CR (a, TERMINAL_DEV, SimpleInputEx, TERMINAL_DEV_SIGNATURE)
142
143typedef union {
144 UINT8 Utf8_1;
145 UINT8 Utf8_2[2];
146 UINT8 Utf8_3[3];
147} UTF8_CHAR;
148
149#define LEFTOPENBRACKET 0x5b // '['
150#define ACAP 0x41
151#define BCAP 0x42
152#define CCAP 0x43
153#define DCAP 0x44
154
155#define BACKSPACE 8
156#define ESC 27
157#define CSI 0x9B
158#define DEL 127
159#define BRIGHT_CONTROL_OFFSET 2
160#define FOREGROUND_CONTROL_OFFSET 6
161#define BACKGROUND_CONTROL_OFFSET 11
162#define ROW_OFFSET 2
163#define COLUMN_OFFSET 5
164#define FW_BACK_OFFSET 2
165
166typedef struct {
167 UINT16 Unicode;
168 CHAR8 PcAnsi;
169 CHAR8 Ascii;
171
172//
173// Global Variables
174//
175extern EFI_DRIVER_BINDING_PROTOCOL gTerminalDriverBinding;
176extern EFI_COMPONENT_NAME_PROTOCOL gTerminalComponentName;
177extern EFI_COMPONENT_NAME2_PROTOCOL gTerminalComponentName2;
178
190EFIAPI
192 IN EFI_HANDLE ImageHandle,
193 IN EFI_SYSTEM_TABLE *SystemTable
194 );
195
209EFIAPI
212 IN BOOLEAN ExtendedVerification
213 );
214
231EFIAPI
234 OUT EFI_INPUT_KEY *Key
235 );
236
251BOOLEAN
253 IN EFI_KEY_DATA *RegsiteredData,
254 IN EFI_KEY_DATA *InputData
255 );
256
265VOID
266EFIAPI
268 IN EFI_EVENT Event,
269 IN VOID *Context
270 );
271
272//
273// Simple Text Input Ex protocol prototypes
274//
275
288EFIAPI
291 IN BOOLEAN ExtendedVerification
292 );
293
313EFIAPI
316 OUT EFI_KEY_DATA *KeyData
317 );
318
335EFIAPI
338 IN EFI_KEY_TOGGLE_STATE *KeyToggleState
339 );
340
364EFIAPI
367 IN EFI_KEY_DATA *KeyData,
368 IN EFI_KEY_NOTIFY_FUNCTION KeyNotificationFunction,
369 OUT VOID **NotifyHandle
370 );
371
386EFIAPI
389 IN VOID *NotificationHandle
390 );
391
400VOID
401EFIAPI
403 IN EFI_EVENT Event,
404 IN VOID *Context
405 );
406
423EFIAPI
426 IN BOOLEAN ExtendedVerification
427 );
428
446EFIAPI
449 IN CHAR16 *WString
450 );
451
467EFIAPI
470 IN CHAR16 *WString
471 );
472
491EFIAPI
494 IN UINTN ModeNumber,
495 OUT UINTN *Columns,
496 OUT UINTN *Rows
497 );
498
514EFIAPI
517 IN UINTN ModeNumber
518 );
519
533EFIAPI
536 IN UINTN Attribute
537 );
538
552EFIAPI
555 );
556
571EFIAPI
574 IN UINTN Column,
575 IN UINTN Row
576 );
577
591EFIAPI
594 IN BOOLEAN Visible
595 );
596
611EFIAPI
614 IN EFI_HANDLE ControllerHandle,
615 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
616 );
617
635EFIAPI
638 IN EFI_HANDLE Controller,
639 IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
640 );
641
658EFIAPI
661 IN EFI_HANDLE Controller,
662 IN UINTN NumberOfChildren,
663 IN EFI_HANDLE *ChildHandleBuffer
664 );
665
677 IN OUT LIST_ENTRY *ListHead
678 );
679
720EFIAPI
723 IN CHAR8 *Language,
724 OUT CHAR16 **DriverName
725 );
726
796EFIAPI
799 IN EFI_HANDLE ControllerHandle,
800 IN EFI_HANDLE ChildHandle OPTIONAL,
801 IN CHAR8 *Language,
802 OUT CHAR16 **ControllerName
803 );
804
805//
806// internal functions
807//
808
822 );
823
833VOID
835 IN CHAR16 *VariableName,
836 IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath
837 );
838
846VOID
848 IN CHAR16 *VariableName,
849 IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath
850 );
851
867 IN TERMINAL_TYPE TerminalType,
868 IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,
869 OUT EFI_DEVICE_PATH_PROTOCOL **TerminalDevicePath
870 );
871
886 EFI_SERIAL_IO_PROTOCOL *SerialIo,
887 UINT8 *Input
888 );
889
901BOOLEAN
903 TERMINAL_DEV *TerminalDevice,
904 UINT8 Input
905 );
906
917BOOLEAN
919 TERMINAL_DEV *TerminalDevice,
920 UINT8 *Output
921 );
922
932BOOLEAN
934 TERMINAL_DEV *TerminalDevice
935 );
936
946BOOLEAN
948 TERMINAL_DEV *TerminalDevice
949 );
950
962BOOLEAN
964 EFI_KEY_FIFO *EfiKeyFiFo,
966 );
967
978BOOLEAN
980 EFI_KEY_FIFO *EfiKeyFiFo,
981 EFI_INPUT_KEY *Output
982 );
983
993BOOLEAN
995 IN EFI_KEY_FIFO *EfiKeyFiFo
996 );
997
1007BOOLEAN
1009 EFI_KEY_FIFO *EfiKeyFiFo
1010 );
1011
1023BOOLEAN
1025 TERMINAL_DEV *TerminalDevice,
1026 EFI_INPUT_KEY *Key
1027 );
1028
1039BOOLEAN
1041 TERMINAL_DEV *TerminalDevice,
1042 EFI_INPUT_KEY *Output
1043 );
1044
1054BOOLEAN
1056 TERMINAL_DEV *TerminalDevice
1057 );
1058
1068BOOLEAN
1070 TERMINAL_DEV *TerminalDevice
1071 );
1072
1084BOOLEAN
1086 TERMINAL_DEV *TerminalDevice,
1087 UINT16 Input
1088 );
1089
1099VOID
1101 TERMINAL_DEV *TerminalDevice,
1102 UINT16 *Output
1103 );
1104
1114BOOLEAN
1116 TERMINAL_DEV *TerminalDevice
1117 );
1118
1128BOOLEAN
1130 TERMINAL_DEV *TerminalDevice
1131 );
1132
1140VOID
1142 IN TERMINAL_DEV *TerminalDevice
1143 );
1144
1145//
1146// internal functions for PC ANSI
1147//
1148
1156VOID
1158 IN TERMINAL_DEV *TerminalDevice
1159 );
1160
1246VOID
1248 IN TERMINAL_DEV *TerminalDevice
1249 );
1250
1264 IN TERMINAL_DEV *TerminalDevice,
1265 IN CHAR16 *WString
1266 );
1267
1268//
1269// internal functions for VTUTF8
1270//
1271
1279VOID
1281 IN TERMINAL_DEV *VtUtf8Device
1282 );
1283
1295 IN TERMINAL_DEV *TerminalDevice,
1296 IN CHAR16 *WString
1297 );
1298
1315VOID
1317 IN CHAR16 Unicode,
1318 OUT UTF8_CHAR *Utf8Char,
1319 OUT UINT8 *ValidBytes
1320 );
1321
1331VOID
1333 IN TERMINAL_DEV *Utf8Device,
1334 OUT UTF8_CHAR *Utf8Char,
1335 OUT UINT8 *ValidBytes
1336 );
1337
1353VOID
1355 IN UTF8_CHAR Utf8Char,
1356 IN UINT8 ValidBytes,
1357 OUT CHAR16 *UnicodeChar
1358 );
1359
1360//
1361// functions for boxdraw unicode
1362//
1363
1376BOOLEAN
1378 IN CHAR16 Graphic,
1379 OUT CHAR8 *PcAnsi OPTIONAL,
1380 OUT CHAR8 *Ascii OPTIONAL
1381 );
1382
1392BOOLEAN
1394 IN CHAR16 Ascii
1395 );
1396
1406BOOLEAN
1408 IN CHAR16 CharC
1409 );
1410
1423BOOLEAN
1425 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath
1426 );
1427
1434VOID
1435EFIAPI
1437 IN EFI_EVENT Event,
1438 IN VOID *Context
1439 );
1440
1447VOID
1448EFIAPI
1450 IN EFI_EVENT Event,
1451 IN VOID *Context
1452 );
1453
1454#endif
UINT64 UINTN
INT64 INTN
UINT16 TerminalType[9]
Definition: Data.c:19
VOID EFIAPI Input(IN CHAR16 *Prompt OPTIONAL, OUT CHAR16 *InStr, IN UINTN StrLen)
Definition: EdbSupportUI.c:187
#define IN
Definition: Base.h:279
#define OUT
Definition: Base.h:284
UINT8 EFI_KEY_TOGGLE_STATE
EFI_STATUS(EFIAPI * EFI_KEY_NOTIFY_FUNCTION)(IN EFI_KEY_DATA *KeyData)
BOOLEAN IsHotPlugDevice(IN EFI_DEVICE_PATH_PROTOCOL *DevicePath)
Definition: Terminal.c:1376
EFI_STATUS AnsiTestString(IN TERMINAL_DEV *TerminalDevice, IN CHAR16 *WString)
Definition: Ansi.c:49
VOID AnsiRawDataToUnicode(IN TERMINAL_DEV *TerminalDevice)
Definition: Ansi.c:19
EFI_STATUS EFIAPI TerminalConInReadKeyStrokeEx(IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, OUT EFI_KEY_DATA *KeyData)
BOOLEAN TerminalIsValidAscii(IN CHAR16 Ascii)
VOID EFIAPI TerminalConInTimerHandler(IN EFI_EVENT Event, IN VOID *Context)
VOID TerminalRemoveConsoleDevVariable(IN CHAR16 *VariableName, IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath)
Definition: Terminal.c:1178
EFI_STATUS SetTerminalDevicePath(IN TERMINAL_TYPE TerminalType, IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath, OUT EFI_DEVICE_PATH_PROTOCOL **TerminalDevicePath)
Definition: Terminal.c:1299
EFI_STATUS EFIAPI TerminalConOutReset(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN BOOLEAN ExtendedVerification)
EFI_STATUS EFIAPI TerminalConOutSetAttribute(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN UINTN Attribute)
VOID EFIAPI KeyNotifyProcessHandler(IN EFI_EVENT Event, IN VOID *Context)
BOOLEAN IsRawFiFoFull(TERMINAL_DEV *TerminalDevice)
EFI_STATUS EFIAPI TerminalConInReset(IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This, IN BOOLEAN ExtendedVerification)
Definition: TerminalConIn.c:61
EFI_STATUS EFIAPI TerminalConOutTestString(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN CHAR16 *WString)
EFI_STATUS VTUTF8TestString(IN TERMINAL_DEV *TerminalDevice, IN CHAR16 *WString)
Definition: Vtutf8.c:303
EFI_STATUS EFIAPI TerminalConInResetEx(IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, IN BOOLEAN ExtendedVerification)
BOOLEAN IsEfiKeyFiFoFull(TERMINAL_DEV *TerminalDevice)
EFI_STATUS EFIAPI TerminalConOutSetMode(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN UINTN ModeNumber)
VOID EFIAPI TerminalConInWaitForKey(IN EFI_EVENT Event, IN VOID *Context)
EFI_STATUS GetOneKeyFromSerial(EFI_SERIAL_IO_PROTOCOL *SerialIo, UINT8 *Input)
BOOLEAN RawFiFoInsertOneKey(TERMINAL_DEV *TerminalDevice, UINT8 Input)
BOOLEAN EfiKeyFiFoForNotifyRemoveOneKey(EFI_KEY_FIFO *EfiKeyFiFo, EFI_INPUT_KEY *Output)
EFI_STATUS EFIAPI TerminalComponentNameGetControllerName(IN EFI_COMPONENT_NAME_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_HANDLE ChildHandle OPTIONAL, IN CHAR8 *Language, OUT CHAR16 **ControllerName)
BOOLEAN EfiKeyFiFoInsertOneKey(TERMINAL_DEV *TerminalDevice, EFI_INPUT_KEY *Key)
EFI_STATUS EFIAPI TerminalDriverBindingStop(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer)
Definition: Terminal.c:904
VOID UnicodeToUtf8(IN CHAR16 Unicode, OUT UTF8_CHAR *Utf8Char, OUT UINT8 *ValidBytes)
Definition: Vtutf8.c:253
EFI_STATUS EFIAPI TerminalConOutClearScreen(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This)
EFI_STATUS EFIAPI TerminalComponentNameGetDriverName(IN EFI_COMPONENT_NAME_PROTOCOL *This, IN CHAR8 *Language, OUT CHAR16 **DriverName)
Definition: ComponentName.c:81
EFI_STATUS EFIAPI InitializeTerminal(IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
Definition: Terminal.c:1340
EFI_STATUS EFIAPI TerminalConInUnregisterKeyNotify(IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, IN VOID *NotificationHandle)
BOOLEAN IsEfiKeyFiFoForNotifyFull(EFI_KEY_FIFO *EfiKeyFiFo)
BOOLEAN TerminalIsValidEfiCntlChar(IN CHAR16 CharC)
EFI_STATUS TerminalConInCheckForKey(IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This)
BOOLEAN EfiKeyFiFoForNotifyInsertOneKey(EFI_KEY_FIFO *EfiKeyFiFo, EFI_INPUT_KEY *Input)
BOOLEAN IsUnicodeFiFoEmpty(TERMINAL_DEV *TerminalDevice)
VOID UnicodeToEfiKey(IN TERMINAL_DEV *TerminalDevice)
EFI_STATUS EFIAPI TerminalDriverBindingStart(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
Definition: Terminal.c:470
EFI_STATUS TerminalFreeNotifyList(IN OUT LIST_ENTRY *ListHead)
Definition: Terminal.c:279
BOOLEAN IsEfiKeyFiFoForNotifyEmpty(IN EFI_KEY_FIFO *EfiKeyFiFo)
EFI_STATUS EFIAPI TerminalConOutSetCursorPosition(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN UINTN Column, IN UINTN Row)
VOID Utf8ToUnicode(IN UTF8_CHAR Utf8Char, IN UINT8 ValidBytes, OUT CHAR16 *UnicodeChar)
Definition: Vtutf8.c:179
BOOLEAN RawFiFoRemoveOneKey(TERMINAL_DEV *TerminalDevice, UINT8 *Output)
EFI_STATUS EFIAPI TerminalConInRegisterKeyNotify(IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, IN EFI_KEY_DATA *KeyData, IN EFI_KEY_NOTIFY_FUNCTION KeyNotificationFunction, OUT VOID **NotifyHandle)
VOID UnicodeFiFoRemoveOneKey(TERMINAL_DEV *TerminalDevice, UINT16 *Output)
VOID TerminalUpdateConsoleDevVariable(IN CHAR16 *VariableName, IN EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath)
Definition: Terminal.c:1080
BOOLEAN IsUnicodeFiFoFull(TERMINAL_DEV *TerminalDevice)
VOID GetOneValidUtf8Char(IN TERMINAL_DEV *Utf8Device, OUT UTF8_CHAR *Utf8Char, OUT UINT8 *ValidBytes)
Definition: Vtutf8.c:56
EFI_STATUS EFIAPI TerminalConInReadKeyStroke(IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This, OUT EFI_INPUT_KEY *Key)
EFI_STATUS EFIAPI TerminalDriverBindingSupported(IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE ControllerHandle, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath)
Definition: Terminal.c:161
VOID VTUTF8RawDataToUnicode(IN TERMINAL_DEV *VtUtf8Device)
Definition: Vtutf8.c:19
BOOLEAN IsEfiKeyFiFoEmpty(TERMINAL_DEV *TerminalDevice)
BOOLEAN UnicodeFiFoInsertOneKey(TERMINAL_DEV *TerminalDevice, UINT16 Input)
EFI_STATUS EFIAPI TerminalConInSetState(IN EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *This, IN EFI_KEY_TOGGLE_STATE *KeyToggleState)
EFI_STATUS EFIAPI TerminalConOutOutputString(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN CHAR16 *WString)
EFI_STATUS EFIAPI TerminalConOutEnableCursor(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN BOOLEAN Visible)
BOOLEAN IsRawFiFoEmpty(TERMINAL_DEV *TerminalDevice)
EFI_STATUS EFIAPI TerminalConOutQueryMode(IN EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *This, IN UINTN ModeNumber, OUT UINTN *Columns, OUT UINTN *Rows)
BOOLEAN TerminalIsValidTextGraphics(IN CHAR16 Graphic, OUT CHAR8 *PcAnsi OPTIONAL, OUT CHAR8 *Ascii OPTIONAL)
VOID EFIAPI TerminalConInWaitForKeyEx(IN EFI_EVENT Event, IN VOID *Context)
BOOLEAN IsKeyRegistered(IN EFI_KEY_DATA *RegsiteredData, IN EFI_KEY_DATA *InputData)
BOOLEAN EfiKeyFiFoRemoveOneKey(TERMINAL_DEV *TerminalDevice, EFI_INPUT_KEY *Output)
VOID TranslateRawDataToEfiKey(IN TERMINAL_DEV *TerminalDevice)
RETURN_STATUS EFI_STATUS
Definition: UefiBaseType.h:29
VOID * EFI_EVENT
Definition: UefiBaseType.h:37
VOID * EFI_HANDLE
Definition: UefiBaseType.h:33