/** @file Copyright (c) 2018, Linaro. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef __PLATFORM_VIRTUAL_KEYBOARD_H__ #define __PLATFORM_VIRTUAL_KEYBOARD_H__ // // Protocol interface structure // typedef struct _PLATFORM_VIRTUAL_KBD_PROTOCOL PLATFORM_VIRTUAL_KBD_PROTOCOL; typedef struct _VIRTUAL_KBD_KEY VIRTUAL_KBD_KEY; #define VIRTUAL_KEYBOARD_KEY_SIGNATURE SIGNATURE_32 ('v', 'k', 'b', 'd') struct _VIRTUAL_KBD_KEY { UINTN Signature; EFI_INPUT_KEY Key; }; typedef EFI_STATUS (EFIAPI *PLATFORM_VIRTUAL_KBD_REGISTER) ( IN VOID ); typedef EFI_STATUS (EFIAPI *PLATFORM_VIRTUAL_KBD_RESET) ( IN VOID ); typedef BOOLEAN (EFIAPI *PLATFORM_VIRTUAL_KBD_QUERY) ( IN VIRTUAL_KBD_KEY *VirtualKey ); typedef EFI_STATUS (EFIAPI *PLATFORM_VIRTUAL_KBD_CLEAR) ( IN VIRTUAL_KBD_KEY *VirtualKey ); struct _PLATFORM_VIRTUAL_KBD_PROTOCOL { PLATFORM_VIRTUAL_KBD_REGISTER Register; PLATFORM_VIRTUAL_KBD_RESET Reset; PLATFORM_VIRTUAL_KBD_QUERY Query; PLATFORM_VIRTUAL_KBD_CLEAR Clear; }; extern EFI_GUID gPlatformVirtualKeyboardProtocolGuid; #endif /* __PLATFORM_VIRTUAL_KEYBOARD_H__ */