/** @file Header file for AMI EfiKeycode protocol definitions. Copyright (c) 2016, vit9696. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ #ifndef AMI_KEYCODE_H #define AMI_KEYCODE_H // 0ADFB62D-FF74-484C-8944-F85C4BEA87A8 #define AMI_EFIKEYCODE_PROTOCOL_GUID \ { 0x0ADFB62D, 0xFF74, 0x484C, { 0x89, 0x44, 0xF8, 0x5C, 0x4B, 0xEA, 0x87, 0xA8 } } extern EFI_GUID gAmiEfiKeycodeProtocolGuid; typedef struct _AMI_EFIKEYCODE_PROTOCOL AMI_EFIKEYCODE_PROTOCOL; #ifndef KEY_STATE_EXPOSED #define KEY_STATE_EXPOSED 0x40 #endif typedef struct { EFI_INPUT_KEY Key; EFI_KEY_STATE KeyState; EFI_KEY EfiKey; UINT8 EfiKeyIsValid; UINT8 PS2ScanCode; UINT8 PS2ScanCodeIsValid; } AMI_EFI_KEY_DATA; typedef EFI_STATUS (EFIAPI *AMI_READ_EFI_KEY) ( IN AMI_EFIKEYCODE_PROTOCOL *This, OUT AMI_EFI_KEY_DATA *KeyData ); typedef EFI_STATUS (EFIAPI *AMI_RESET_EX) ( IN AMI_EFIKEYCODE_PROTOCOL *This, IN BOOLEAN ExtendedVerification ); struct _AMI_EFIKEYCODE_PROTOCOL { AMI_RESET_EX Reset; AMI_READ_EFI_KEY ReadEfikey; EFI_EVENT WaitForKeyEx; EFI_SET_STATE SetState; EFI_REGISTER_KEYSTROKE_NOTIFY RegisterKeyNotify; EFI_UNREGISTER_KEYSTROKE_NOTIFY UnregisterKeyNotify; }; #endif