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