• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /** @file
2 
3   Copyright (c) 2017, 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__ */
66