34#define SIMPLE_TEXT_OUTPUT_PROTOCOL \
35 { 0x387477c2, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
41(EFIAPI *EFI_TEXT_RESET) (
43 IN BOOLEAN ExtendedVerification
48(EFIAPI *EFI_TEXT_OUTPUT_STRING) (
55(EFIAPI *EFI_TEXT_TEST_STRING) (
62(EFIAPI *EFI_TEXT_QUERY_MODE) (
71(EFIAPI *EFI_TEXT_SET_MODE) (
78(EFIAPI *EFI_TEXT_SET_ATTRIBUTE) (
86#define EFI_CYAN (EFI_BLUE | EFI_GREEN)
88#define EFI_MAGENTA (EFI_BLUE | EFI_RED)
89#define EFI_BROWN (EFI_GREEN | EFI_RED)
90#define EFI_LIGHTGRAY (EFI_BLUE | EFI_GREEN | EFI_RED)
91#define EFI_BRIGHT 0x08
92#define EFI_DARKGRAY (EFI_BRIGHT)
93#define EFI_LIGHTBLUE (EFI_BLUE | EFI_BRIGHT)
94#define EFI_LIGHTGREEN (EFI_GREEN | EFI_BRIGHT)
95#define EFI_LIGHTCYAN (EFI_CYAN | EFI_BRIGHT)
96#define EFI_LIGHTRED (EFI_RED | EFI_BRIGHT)
97#define EFI_LIGHTMAGENTA (EFI_MAGENTA | EFI_BRIGHT)
98#define EFI_YELLOW (EFI_BROWN | EFI_BRIGHT)
99#define EFI_WHITE (EFI_BLUE | EFI_GREEN | EFI_RED | EFI_BRIGHT)
101#define EFI_TEXT_ATTR(f,b) ((f) | ((b) << 4))
103#define EFI_BACKGROUND_BLACK 0x00
104#define EFI_BACKGROUND_BLUE 0x10
105#define EFI_BACKGROUND_GREEN 0x20
106#define EFI_BACKGROUND_CYAN (EFI_BACKGROUND_BLUE | EFI_BACKGROUND_GREEN)
107#define EFI_BACKGROUND_RED 0x40
108#define EFI_BACKGROUND_MAGENTA (EFI_BACKGROUND_BLUE | EFI_BACKGROUND_RED)
109#define EFI_BACKGROUND_BROWN (EFI_BACKGROUND_GREEN | EFI_BACKGROUND_RED)
110#define EFI_BACKGROUND_LIGHTGRAY (EFI_BACKGROUND_BLUE | EFI_BACKGROUND_GREEN | EFI_BACKGROUND_RED)
115(EFIAPI *EFI_TEXT_CLEAR_SCREEN) (
121(EFIAPI *EFI_TEXT_SET_CURSOR_POSITION) (
129(EFIAPI *EFI_TEXT_ENABLE_CURSOR) (
141 BOOLEAN CursorVisible;
145 EFI_TEXT_RESET Reset;
147 EFI_TEXT_OUTPUT_STRING OutputString;
148 EFI_TEXT_TEST_STRING TestString;
150 EFI_TEXT_QUERY_MODE QueryMode;
151 EFI_TEXT_SET_MODE SetMode;
152 EFI_TEXT_SET_ATTRIBUTE SetAttribute;
154 EFI_TEXT_CLEAR_SCREEN ClearScreen;
155 EFI_TEXT_SET_CURSOR_POSITION SetCursorPosition;
156 EFI_TEXT_ENABLE_CURSOR EnableCursor;
166#define BOXDRAW_HORIZONTAL 0x2500
167#define BOXDRAW_VERTICAL 0x2502
168#define BOXDRAW_DOWN_RIGHT 0x250c
169#define BOXDRAW_DOWN_LEFT 0x2510
170#define BOXDRAW_UP_RIGHT 0x2514
171#define BOXDRAW_UP_LEFT 0x2518
172#define BOXDRAW_VERTICAL_RIGHT 0x251c
173#define BOXDRAW_VERTICAL_LEFT 0x2524
174#define BOXDRAW_DOWN_HORIZONTAL 0x252c
175#define BOXDRAW_UP_HORIZONTAL 0x2534
176#define BOXDRAW_VERTICAL_HORIZONTAL 0x253c
178#define BOXDRAW_DOUBLE_HORIZONTAL 0x2550
179#define BOXDRAW_DOUBLE_VERTICAL 0x2551
180#define BOXDRAW_DOWN_RIGHT_DOUBLE 0x2552
181#define BOXDRAW_DOWN_DOUBLE_RIGHT 0x2553
182#define BOXDRAW_DOUBLE_DOWN_RIGHT 0x2554
184#define BOXDRAW_DOWN_LEFT_DOUBLE 0x2555
185#define BOXDRAW_DOWN_DOUBLE_LEFT 0x2556
186#define BOXDRAW_DOUBLE_DOWN_LEFT 0x2557
188#define BOXDRAW_UP_RIGHT_DOUBLE 0x2558
189#define BOXDRAW_UP_DOUBLE_RIGHT 0x2559
190#define BOXDRAW_DOUBLE_UP_RIGHT 0x255a
192#define BOXDRAW_UP_LEFT_DOUBLE 0x255b
193#define BOXDRAW_UP_DOUBLE_LEFT 0x255c
194#define BOXDRAW_DOUBLE_UP_LEFT 0x255d
196#define BOXDRAW_VERTICAL_RIGHT_DOUBLE 0x255e
197#define BOXDRAW_VERTICAL_DOUBLE_RIGHT 0x255f
198#define BOXDRAW_DOUBLE_VERTICAL_RIGHT 0x2560
200#define BOXDRAW_VERTICAL_LEFT_DOUBLE 0x2561
201#define BOXDRAW_VERTICAL_DOUBLE_LEFT 0x2562
202#define BOXDRAW_DOUBLE_VERTICAL_LEFT 0x2563
204#define BOXDRAW_DOWN_HORIZONTAL_DOUBLE 0x2564
205#define BOXDRAW_DOWN_DOUBLE_HORIZONTAL 0x2565
206#define BOXDRAW_DOUBLE_DOWN_HORIZONTAL 0x2566
208#define BOXDRAW_UP_HORIZONTAL_DOUBLE 0x2567
209#define BOXDRAW_UP_DOUBLE_HORIZONTAL 0x2568
210#define BOXDRAW_DOUBLE_UP_HORIZONTAL 0x2569
212#define BOXDRAW_VERTICAL_HORIZONTAL_DOUBLE 0x256a
213#define BOXDRAW_VERTICAL_DOUBLE_HORIZONTAL 0x256b
214#define BOXDRAW_DOUBLE_VERTICAL_HORIZONTAL 0x256c
220#define BLOCKELEMENT_FULL_BLOCK 0x2588
221#define BLOCKELEMENT_LIGHT_SHADE 0x2591
226#define GEOMETRICSHAPE_UP_TRIANGLE 0x25b2
227#define GEOMETRICSHAPE_RIGHT_TRIANGLE 0x25ba
228#define GEOMETRICSHAPE_DOWN_TRIANGLE 0x25bc
229#define GEOMETRICSHAPE_LEFT_TRIANGLE 0x25c4
235#define ARROW_UP 0x2191
236#define ARROW_DOWN 0x2193
242#define SIMPLE_TEXT_INPUT_PROTOCOL \
243 { 0x387477c1, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
256#define CHAR_NULL 0x0000
257#define CHAR_BACKSPACE 0x0008
258#define CHAR_TAB 0x0009
259#define CHAR_LINEFEED 0x000A
260#define CHAR_CARRIAGE_RETURN 0x000D
266#define SCAN_NULL 0x0000
267#define SCAN_UP 0x0001
268#define SCAN_DOWN 0x0002
269#define SCAN_RIGHT 0x0003
270#define SCAN_LEFT 0x0004
271#define SCAN_HOME 0x0005
272#define SCAN_END 0x0006
273#define SCAN_INSERT 0x0007
274#define SCAN_DELETE 0x0008
275#define SCAN_PAGE_UP 0x0009
276#define SCAN_PAGE_DOWN 0x000A
277#define SCAN_F1 0x000B
278#define SCAN_F2 0x000C
279#define SCAN_F3 0x000D
280#define SCAN_F4 0x000E
281#define SCAN_F5 0x000F
282#define SCAN_F6 0x0010
283#define SCAN_F7 0x0011
284#define SCAN_F8 0x0012
285#define SCAN_F9 0x0013
286#define SCAN_F10 0x0014
287#define SCAN_ESC 0x0017
292#define SCAN_F11 0x0015
293#define SCAN_F12 0x0016
294#define SCAN_F13 0x0068
295#define SCAN_F14 0x0069
296#define SCAN_F15 0x006A
297#define SCAN_F16 0x006B
298#define SCAN_F17 0x006C
299#define SCAN_F18 0x006D
300#define SCAN_F19 0x006E
301#define SCAN_F20 0x006F
302#define SCAN_F21 0x0070
303#define SCAN_F22 0x0071
304#define SCAN_F23 0x0072
305#define SCAN_F24 0x0073
306#define SCAN_MUTE 0x007F
307#define SCAN_VOLUME_UP 0x0080
308#define SCAN_VOLUME_DOWN 0x0081
309#define SCAN_BRIGHTNESS_UP 0x0100
310#define SCAN_BRIGHTNESS_DOWN 0x0101
311#define SCAN_SUSPEND 0x0102
312#define SCAN_HIBERNATE 0x0103
313#define SCAN_TOGGLE_DISPLAY 0x0104
314#define SCAN_RECOVERY 0x0105
315#define SCAN_EJECT 0x0106
319(EFIAPI *EFI_INPUT_RESET) (
321 IN BOOLEAN ExtendedVerification
326(EFIAPI *EFI_INPUT_READ_KEY) (
332 EFI_INPUT_RESET Reset;
333 EFI_INPUT_READ_KEY ReadKeyStroke;
334 EFI_EVENT WaitForKey;
337#define EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL_GUID \
338 {0xdd9e7534, 0x7762, 0x4698, {0x8c, 0x14, 0xf5, 0x85, \
339 0x17, 0xa6, 0x25, 0xaa} }
343typedef UINT8 EFI_KEY_TOGGLE_STATE;
349 UINT32 KeyShiftState;
350 EFI_KEY_TOGGLE_STATE KeyToggleState;
361#define EFI_SHIFT_STATE_VALID 0x80000000
362#define EFI_RIGHT_SHIFT_PRESSED 0x00000001
363#define EFI_LEFT_SHIFT_PRESSED 0x00000002
364#define EFI_RIGHT_CONTROL_PRESSED 0x00000004
365#define EFI_LEFT_CONTROL_PRESSED 0x00000008
366#define EFI_RIGHT_ALT_PRESSED 0x00000010
367#define EFI_LEFT_ALT_PRESSED 0x00000020
368#define EFI_RIGHT_LOGO_PRESSED 0x00000040
369#define EFI_LEFT_LOGO_PRESSED 0x00000080
370#define EFI_MENU_KEY_PRESSED 0x00000100
371#define EFI_SYS_REQ_PRESSED 0x00000200
376#define EFI_TOGGLE_STATE_VALID 0x80
377#define EFI_KEY_STATE_EXPOSED 0x40
378#define EFI_SCROLL_LOCK_ACTIVE 0x01
379#define EFI_NUM_LOCK_ACTIVE 0x02
380#define EFI_CAPS_LOCK_ACTIVE 0x04
387(EFIAPI *EFI_KEY_NOTIFY_FUNCTION) (
393(EFIAPI *EFI_INPUT_RESET_EX) (
395 IN BOOLEAN ExtendedVerification
416(EFIAPI *EFI_INPUT_READ_KEY_EX) (
442(EFIAPI *EFI_SET_STATE) (
444 IN EFI_KEY_TOGGLE_STATE *KeyToggleState
468(EFIAPI *EFI_REGISTER_KEYSTROKE_NOTIFY) (
471 IN EFI_KEY_NOTIFY_FUNCTION KeyNotificationFunction,
472 OUT EFI_HANDLE *NotifyHandle
497(EFIAPI *EFI_UNREGISTER_KEYSTROKE_NOTIFY) (
499 IN EFI_HANDLE NotificationHandle
519 EFI_INPUT_RESET_EX Reset;
520 EFI_INPUT_READ_KEY_EX ReadKeyStrokeEx;
521 EFI_EVENT WaitForKeyEx;
522 EFI_SET_STATE SetState;
523 EFI_REGISTER_KEYSTROKE_NOTIFY RegisterKeyNotify;
524 EFI_UNREGISTER_KEYSTROKE_NOTIFY UnregisterKeyNotify;