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