summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.h
diff options
context:
space:
mode:
authoreric_tian <eric_tian@6f19259b-4bc3-4df7-8a09-765794883524>2008-07-23 06:29:46 +0000
committereric_tian <eric_tian@6f19259b-4bc3-4df7-8a09-765794883524>2008-07-23 06:29:46 +0000
commita7022cec4e8b46d7f2bfc1ee84333cf6e71e633b (patch)
treee78ac7e9ec89ca0ae507295f9cd0f15c6bb6ba56 /MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.h
parent68077ae3383a8da5aae3acc861f20cdf756df544 (diff)
modify coding style to pass ecc tool
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5551 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.h')
-rw-r--r--MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.h260
1 files changed, 260 insertions, 0 deletions
diff --git a/MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.h b/MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.h
new file mode 100644
index 000000000..22aaf2127
--- /dev/null
+++ b/MdeModulePkg/Bus/Usb/UsbKbDxe/KeyBoard.h
@@ -0,0 +1,260 @@
+/** @file
+
+ Function prototype for USB Keyboard Driver.
+
+Copyright (c) 2004 - 2008, Intel Corporation
+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 _EFI_KEYBOARD_H_
+#define _EFI_KEYBOARD_H_
+
+
+#include "EfiKey.h"
+
+/**
+ Uses USB I/O to check whether the device is a USB Keyboard device.
+
+ @param UsbIo Points to a USB I/O protocol instance.
+ @retval None
+
+**/
+BOOLEAN
+EFIAPI
+IsUSBKeyboard (
+ IN EFI_USB_IO_PROTOCOL *UsbIo
+ );
+
+/**
+ Initialize USB Keyboard device and all private data structures.
+
+ @param UsbKeyboardDevice The USB_KB_DEV instance.
+
+ @retval EFI_SUCCESS Initialization is successful.
+ @retval EFI_DEVICE_ERROR Configure hardware failed.
+
+**/
+EFI_STATUS
+EFIAPI
+InitUSBKeyboard (
+ IN USB_KB_DEV *UsbKeyboardDevice
+ );
+
+/**
+ Initialize USB Keyboard layout.
+
+ @param UsbKeyboardDevice The USB_KB_DEV instance.
+
+ @retval EFI_SUCCESS Initialization Success.
+ @retval Other Keyboard layout initial failed.
+
+**/
+EFI_STATUS
+EFIAPI
+InitKeyboardLayout (
+ IN USB_KB_DEV *UsbKeyboardDevice
+ );
+
+/**
+ Destroy resources for Keyboard layout.
+
+ @param UsbKeyboardDevice The USB_KB_DEV instance.
+
+**/
+VOID
+EFIAPI
+ReleaseKeyboardLayoutResources (
+ IN USB_KB_DEV *UsbKeyboardDevice
+ );
+
+/**
+ Handler function for USB Keyboard's asynchronous interrupt transfer.
+
+ @param Data A pointer to a buffer that is filled with key data which is
+ retrieved via asynchronous interrupt transfer.
+ @param DataLength Indicates the size of the data buffer.
+ @param Context Pointing to USB_KB_DEV instance.
+ @param Result Indicates the result of the asynchronous interrupt transfer.
+
+ @retval EFI_SUCCESS Handler is successful.
+ @retval EFI_DEVICE_ERROR Hardware Error
+
+**/
+EFI_STATUS
+EFIAPI
+KeyboardHandler (
+ IN VOID *Data,
+ IN UINTN DataLength,
+ IN VOID *Context,
+ IN UINT32 Result
+ );
+
+/**
+ Timer handler for Delayed Recovery timer.
+
+ @param Event The Delayed Recovery event.
+ @param Context Points to the USB_KB_DEV instance.
+
+
+**/
+VOID
+EFIAPI
+USBKeyboardRecoveryHandler (
+ IN EFI_EVENT Event,
+ IN VOID *Context
+ );
+
+/**
+ Retrieves a key character after parsing the raw data in keyboard buffer.
+
+ @param UsbKeyboardDevice The USB_KB_DEV instance.
+ @param KeyChar Points to the Key character after key parsing.
+
+ @retval EFI_SUCCESS Parse key is successful.
+ @retval EFI_NOT_READY Device is not ready.
+
+**/
+EFI_STATUS
+EFIAPI
+USBParseKey (
+ IN OUT USB_KB_DEV *UsbKeyboardDevice,
+ OUT UINT8 *KeyChar
+ );
+
+/**
+ Converts USB Keyboard code to EFI Scan Code.
+
+ @param UsbKeyboardDevice The USB_KB_DEV instance.
+ @param KeyChar Indicates the key code that will be interpreted.
+ @param Key A pointer to a buffer that is filled in with
+ the keystroke information for the key that
+ was pressed.
+
+ @retval EFI_NOT_READY Device is not ready
+ @retval EFI_SUCCESS Success.
+
+**/
+EFI_STATUS
+EFIAPI
+USBKeyCodeToEFIScanCode (
+ IN USB_KB_DEV *UsbKeyboardDevice,
+ IN UINT8 KeyChar,
+ OUT EFI_INPUT_KEY *Key
+ );
+
+/**
+ Resets USB Keyboard Buffer.
+
+ @param KeyboardBuffer Points to the USB Keyboard Buffer.
+
+ @retval EFI_SUCCESS Init key buffer successfully.
+
+**/
+EFI_STATUS
+EFIAPI
+InitUSBKeyBuffer (
+ IN OUT USB_KB_BUFFER *KeyboardBuffer
+ );
+
+/**
+ Check whether USB Keyboard buffer is empty.
+
+ @param KeyboardBuffer USB Keyboard Buffer.
+
+ @retval TRUE Key buffer is empty.
+ @retval FALSE Key buffer is not empty.
+
+**/
+BOOLEAN
+EFIAPI
+IsUSBKeyboardBufferEmpty (
+ IN USB_KB_BUFFER *KeyboardBuffer
+ );
+
+/**
+ Check whether USB Keyboard buffer is full.
+
+ @param KeyboardBuffer USB Keyboard Buffer.
+
+ @retval TRUE Key buffer is full.
+ @retval FALSE Key buffer is not full.
+
+**/
+BOOLEAN
+EFIAPI
+IsUSBKeyboardBufferFull (
+ IN USB_KB_BUFFER *KeyboardBuffer
+ );
+
+/**
+ Inserts a key code into keyboard buffer.
+
+ @param KeyboardBuffer Points to the USB Keyboard Buffer.
+ @param Key Key code
+ @param Down Special key
+
+ @retval EFI_SUCCESS Success
+
+**/
+EFI_STATUS
+EFIAPI
+InsertKeyCode (
+ IN OUT USB_KB_BUFFER *KeyboardBuffer,
+ IN UINT8 Key,
+ IN UINT8 Down
+ );
+
+/**
+ Pops a key code off from keyboard buffer.
+
+ @param KeyboardBuffer Points to the USB Keyboard Buffer.
+ @param UsbKey Points to the buffer that contains a usb key code.
+
+ @retval EFI_SUCCESS Success
+ @retval EFI_DEVICE_ERROR Hardware Error
+
+**/
+EFI_STATUS
+EFIAPI
+RemoveKeyCode (
+ IN OUT USB_KB_BUFFER *KeyboardBuffer,
+ OUT USB_KEY *UsbKey
+ );
+
+/**
+ Timer handler for Repeat Key timer.
+
+ @param Event The Repeat Key event.
+ @param Context Points to the USB_KB_DEV instance.
+
+
+**/
+VOID
+EFIAPI
+USBKeyboardRepeatHandler (
+ IN EFI_EVENT Event,
+ IN VOID *Context
+ );
+
+/**
+ Sets USB Keyboard LED state.
+
+ @param UsbKeyboardDevice The USB_KB_DEV instance.
+
+ @retval EFI_SUCCESS Success
+
+**/
+EFI_STATUS
+EFIAPI
+SetKeyLED (
+ IN USB_KB_DEV *UsbKeyboardDevice
+ );
+
+#endif