VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/Firmware/MdePkg/Include/Protocol/SimpleTextIn.h

最後變更 在這個檔案是 105670,由 vboxsync 提交於 7 月 前

Devices/EFI/FirmwareNew: Merge edk2-stable-202405 and make it build on aarch64, bugref:4643

  • 屬性 svn:eol-style 設為 native
檔案大小: 3.6 KB
 
1/** @file
2 Simple Text Input protocol from the UEFI 2.0 specification.
3
4 Abstraction of a very simple input device like a keyboard or serial
5 terminal.
6
7 Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
8 SPDX-License-Identifier: BSD-2-Clause-Patent
9
10**/
11
12#ifndef __SIMPLE_TEXT_IN_PROTOCOL_H__
13#define __SIMPLE_TEXT_IN_PROTOCOL_H__
14
15#define EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID \
16 { \
17 0x387477c1, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
18 }
19
20typedef struct _EFI_SIMPLE_TEXT_INPUT_PROTOCOL EFI_SIMPLE_TEXT_INPUT_PROTOCOL;
21
22///
23/// Protocol GUID name defined in EFI1.1.
24///
25#define SIMPLE_INPUT_PROTOCOL EFI_SIMPLE_TEXT_INPUT_PROTOCOL_GUID
26
27///
28/// Protocol name in EFI1.1 for backward-compatible.
29///
30typedef struct _EFI_SIMPLE_TEXT_INPUT_PROTOCOL SIMPLE_INPUT_INTERFACE;
31
32///
33/// The keystroke information for the key that was pressed.
34///
35typedef struct {
36 UINT16 ScanCode;
37 CHAR16 UnicodeChar;
38} EFI_INPUT_KEY;
39
40//
41// Required unicode control chars
42//
43#define CHAR_BACKSPACE 0x0008
44#define CHAR_TAB 0x0009
45#define CHAR_LINEFEED 0x000A
46#define CHAR_CARRIAGE_RETURN 0x000D
47
48//
49// EFI Scan codes
50//
51#define SCAN_NULL 0x0000
52#define SCAN_UP 0x0001
53#define SCAN_DOWN 0x0002
54#define SCAN_RIGHT 0x0003
55#define SCAN_LEFT 0x0004
56#define SCAN_HOME 0x0005
57#define SCAN_END 0x0006
58#define SCAN_INSERT 0x0007
59#define SCAN_DELETE 0x0008
60#define SCAN_PAGE_UP 0x0009
61#define SCAN_PAGE_DOWN 0x000A
62#define SCAN_F1 0x000B
63#define SCAN_F2 0x000C
64#define SCAN_F3 0x000D
65#define SCAN_F4 0x000E
66#define SCAN_F5 0x000F
67#define SCAN_F6 0x0010
68#define SCAN_F7 0x0011
69#define SCAN_F8 0x0012
70#define SCAN_F9 0x0013
71#define SCAN_F10 0x0014
72#define SCAN_ESC 0x0017
73
74/**
75 Reset the input device and optionally run diagnostics
76
77 @param This Protocol instance pointer.
78 @param ExtendedVerification Driver may perform diagnostics on reset.
79
80 @retval EFI_SUCCESS The device was reset.
81 @retval EFI_DEVICE_ERROR The device is not functioning properly and could not be reset.
82
83**/
84typedef
85EFI_STATUS
86(EFIAPI *EFI_INPUT_RESET)(
87 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,
88 IN BOOLEAN ExtendedVerification
89 );
90
91/**
92 Reads the next keystroke from the input device. The WaitForKey Event can
93 be used to test for existence of a keystroke via WaitForEvent () call.
94
95 @param This Protocol instance pointer.
96 @param Key A pointer to a buffer that is filled in with the keystroke
97 information for the key that was pressed.
98
99 @retval EFI_SUCCESS The keystroke information was returned.
100 @retval EFI_NOT_READY There was no keystroke data available.
101 @retval EFI_DEVICE_ERROR The keystroke information was not returned due to
102 hardware errors.
103 @retval EFI_UNSUPPORTED The device does not support the ability to read keystroke data.
104
105**/
106typedef
107EFI_STATUS
108(EFIAPI *EFI_INPUT_READ_KEY)(
109 IN EFI_SIMPLE_TEXT_INPUT_PROTOCOL *This,
110 OUT EFI_INPUT_KEY *Key
111 );
112
113///
114/// The EFI_SIMPLE_TEXT_INPUT_PROTOCOL is used on the ConsoleIn device.
115/// It is the minimum required protocol for ConsoleIn.
116///
117struct _EFI_SIMPLE_TEXT_INPUT_PROTOCOL {
118 EFI_INPUT_RESET Reset;
119 EFI_INPUT_READ_KEY ReadKeyStroke;
120 ///
121 /// Event to use with WaitForEvent() to wait for a key to be available
122 ///
123 EFI_EVENT WaitForKey;
124};
125
126extern EFI_GUID gEfiSimpleTextInProtocolGuid;
127
128#endif
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette