]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Bus/Usb/UsbKb/Dxe/efikey.h
remove unused PCD
[mirror_edk2.git] / EdkModulePkg / Bus / Usb / UsbKb / Dxe / efikey.h
CommitLineData
878ddf1f 1/*++\r
2Copyright (c) 2006, Intel Corporation \r
3All rights reserved. This program and the accompanying materials \r
4are licensed and made available under the terms and conditions of the BSD License \r
5which accompanies this distribution. The full text of the license may be found at \r
6http://opensource.org/licenses/bsd-license.php \r
7 \r
8THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
9WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
10\r
11Module Name:\r
12\r
13 EfiKey.h\r
14\r
15Abstract:\r
16\r
17 Header file for USB Keyboard Driver's Data Structures\r
18\r
19Revision History\r
20--*/\r
21#ifndef _USB_KB_H\r
22#define _USB_KB_H\r
23\r
24\r
f0ec738d 25#include <IndustryStandard/Usb.h>\r
878ddf1f 26\r
27#define MAX_KEY_ALLOWED 32\r
28\r
29#define HZ 1000 * 1000 * 10\r
30#define USBKBD_REPEAT_DELAY ((HZ) / 2)\r
31#define USBKBD_REPEAT_RATE ((HZ) / 50)\r
32\r
33#define CLASS_HID 3\r
34#define SUBCLASS_BOOT 1\r
35#define PROTOCOL_KEYBOARD 1\r
36\r
37#define BOOT_PROTOCOL 0\r
38#define REPORT_PROTOCOL 1\r
39\r
40typedef struct {\r
41 UINT8 Down;\r
42 UINT8 KeyCode;\r
43} USB_KEY;\r
44\r
45typedef struct {\r
46 USB_KEY buffer[MAX_KEY_ALLOWED + 1];\r
47 UINT8 bHead;\r
48 UINT8 bTail;\r
49} USB_KB_BUFFER;\r
50\r
51#define USB_KB_DEV_SIGNATURE EFI_SIGNATURE_32 ('u', 'k', 'b', 'd')\r
52typedef struct {\r
53 UINTN Signature;\r
54 EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
55 EFI_EVENT DelayedRecoveryEvent;\r
56 EFI_SIMPLE_TEXT_IN_PROTOCOL SimpleInput;\r
57 EFI_USB_IO_PROTOCOL *UsbIo;\r
58\r
59 EFI_USB_INTERFACE_DESCRIPTOR InterfaceDescriptor;\r
60 EFI_USB_ENDPOINT_DESCRIPTOR IntEndpointDescriptor;\r
61\r
62 USB_KB_BUFFER KeyboardBuffer;\r
63 UINT8 CtrlOn;\r
64 UINT8 AltOn;\r
65 UINT8 ShiftOn;\r
66 UINT8 NumLockOn;\r
67 UINT8 CapsOn;\r
591ee27e 68 UINT8 ScrollOn; \r
878ddf1f 69 UINT8 LastKeyCodeArray[8];\r
70 UINT8 CurKeyChar;\r
71\r
72 UINT8 RepeatKey;\r
73 EFI_EVENT RepeatTimer;\r
74\r
75 EFI_UNICODE_STRING_TABLE *ControllerNameTable;\r
76\r
77} USB_KB_DEV;\r
78\r
79//\r
80// Global Variables\r
81//\r
82extern EFI_DRIVER_BINDING_PROTOCOL gUsbKeyboardDriverBinding;\r
83extern EFI_COMPONENT_NAME_PROTOCOL gUsbKeyboardComponentName;\r
84extern EFI_GUID gEfiUsbKeyboardDriverGuid;\r
85\r
86VOID\r
87KbdReportStatusCode (\r
88 IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,\r
89 IN EFI_STATUS_CODE_TYPE CodeType,\r
90 IN EFI_STATUS_CODE_VALUE Value\r
91 );\r
92\r
93#define USB_KB_DEV_FROM_THIS(a) \\r
94 CR(a, USB_KB_DEV, SimpleInput, USB_KB_DEV_SIGNATURE)\r
95\r
96#define MOD_CONTROL_L 0x01\r
97#define MOD_CONTROL_R 0x10\r
98#define MOD_SHIFT_L 0x02\r
99#define MOD_SHIFT_R 0x20\r
100#define MOD_ALT_L 0x04\r
101#define MOD_ALT_R 0x40\r
102#define MOD_WIN_L 0x08\r
103#define MOD_WIN_R 0x80\r
104\r
105typedef struct {\r
106 UINT8 Mask;\r
107 UINT8 Key;\r
108} KB_MODIFIER;\r
109\r
110#define USB_KEYCODE_MAX_MAKE 0x64\r
111\r
112#define USBKBD_VALID_KEYCODE(key) ((UINT8) (key) > 3)\r
113\r
114typedef struct {\r
115 UINT8 NumLock : 1;\r
116 UINT8 CapsLock : 1;\r
591ee27e 117 UINT8 ScrollLock : 1;\r
118 UINT8 Resrvd : 5;\r
878ddf1f 119} LED_MAP;\r
120#endif\r