EmbeddedPkg/Drivers: add virtual keyboard driver
[mirror_edk2.git] / EmbeddedPkg / Include / Protocol / PlatformVirtualKeyboard.h
CommitLineData
1df5fb2d
HZ
1/** @file\r
2\r
3 Copyright (c) 2018, Linaro. All rights reserved.\r
4\r
5 This program and the accompanying materials\r
6 are licensed and made available under the terms and conditions of the BSD License\r
7 which accompanies this distribution. The full text of the license may be found at\r
8 http://opensource.org/licenses/bsd-license.php\r
9\r
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12\r
13**/\r
14\r
15#ifndef __PLATFORM_VIRTUAL_KEYBOARD_H__\r
16#define __PLATFORM_VIRTUAL_KEYBOARD_H__\r
17\r
18//\r
19// Protocol interface structure\r
20//\r
21typedef struct _PLATFORM_VIRTUAL_KBD_PROTOCOL PLATFORM_VIRTUAL_KBD_PROTOCOL;\r
22\r
23typedef struct _VIRTUAL_KBD_KEY VIRTUAL_KBD_KEY;\r
24\r
25#define VIRTUAL_KEYBOARD_KEY_SIGNATURE SIGNATURE_32 ('v', 'k', 'b', 'd')\r
26\r
27struct _VIRTUAL_KBD_KEY {\r
28 UINTN Signature;\r
29 EFI_INPUT_KEY Key;\r
30};\r
31\r
32typedef\r
33EFI_STATUS\r
34(EFIAPI *PLATFORM_VIRTUAL_KBD_REGISTER) (\r
35 IN VOID\r
36 );\r
37\r
38typedef\r
39EFI_STATUS\r
40(EFIAPI *PLATFORM_VIRTUAL_KBD_RESET) (\r
41 IN VOID\r
42 );\r
43\r
44typedef\r
45BOOLEAN\r
46(EFIAPI *PLATFORM_VIRTUAL_KBD_QUERY) (\r
47 IN VIRTUAL_KBD_KEY *VirtualKey\r
48 );\r
49\r
50typedef\r
51EFI_STATUS\r
52(EFIAPI *PLATFORM_VIRTUAL_KBD_CLEAR) (\r
53 IN VIRTUAL_KBD_KEY *VirtualKey\r
54 );\r
55\r
56struct _PLATFORM_VIRTUAL_KBD_PROTOCOL {\r
57 PLATFORM_VIRTUAL_KBD_REGISTER Register;\r
58 PLATFORM_VIRTUAL_KBD_RESET Reset;\r
59 PLATFORM_VIRTUAL_KBD_QUERY Query;\r
60 PLATFORM_VIRTUAL_KBD_CLEAR Clear;\r
61};\r
62\r
63extern EFI_GUID gPlatformVirtualKeyboardProtocolGuid;\r
64\r
65#endif /* __PLATFORM_VIRTUAL_KEYBOARD_H__ */\r