OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
KeyBoard.h
Go to the documentation of this file.
1
9#ifndef _EFI_KEYBOARD_H_
10#define _EFI_KEYBOARD_H_
11
12#include "EfiKey.h"
13
14#define USB_KEYBOARD_KEY_COUNT 105
15
16#define USB_KEYBOARD_LANGUAGE_STR_LEN 5 // RFC4646 Language Code: "en-US"
17#define USB_KEYBOARD_DESCRIPTION_STR_LEN (16 + 1) // Description: "English Keyboard"
18
19#pragma pack (1)
20typedef struct {
21 //
22 // This 4-bytes total array length is required by PreparePackageList()
23 //
24 UINT32 Length;
25
26 //
27 // Keyboard Layout package definition
28 //
29 EFI_HII_PACKAGE_HEADER PackageHeader;
31
32 //
33 // EFI_HII_KEYBOARD_LAYOUT
34 //
36 EFI_GUID Guid;
39 EFI_KEY_DESCRIPTOR KeyDescriptor[USB_KEYBOARD_KEY_COUNT];
42 CHAR16 Space;
43 CHAR16 DescriptionString[USB_KEYBOARD_DESCRIPTION_STR_LEN];
45#pragma pack()
46
56BOOLEAN
58 IN EFI_USB_IO_PROTOCOL *UsbIo
59 );
60
70EFI_STATUS
72 IN OUT USB_KB_DEV *UsbKeyboardDevice
73 );
74
90EFI_STATUS
92 OUT USB_KB_DEV *UsbKeyboardDevice
93 );
94
101VOID
103 IN OUT USB_KB_DEV *UsbKeyboardDevice
104 );
105
124EFI_STATUS
125EFIAPI
127 IN VOID *Data,
128 IN UINTN DataLength,
129 IN VOID *Context,
130 IN UINT32 Result
131 );
132
146VOID
147EFIAPI
149 IN EFI_EVENT Event,
150 IN VOID *Context
151 );
152
166EFI_STATUS
168 IN OUT USB_KB_DEV *UsbKeyboardDevice,
169 OUT UINT8 *KeyCode
170 );
171
188EFI_STATUS
190 IN USB_KB_DEV *UsbKeyboardDevice,
191 IN UINT8 KeyCode,
192 OUT EFI_KEY_DATA *KeyData
193 );
194
202VOID
203InitQueue (
204 IN OUT USB_SIMPLE_QUEUE *Queue,
205 IN UINTN ItemSize
206 );
207
213VOID
215 IN OUT USB_SIMPLE_QUEUE *Queue
216 );
217
227BOOLEAN
229 IN USB_SIMPLE_QUEUE *Queue
230 );
231
241BOOLEAN
243 IN USB_SIMPLE_QUEUE *Queue
244 );
245
253VOID
254Enqueue (
255 IN OUT USB_SIMPLE_QUEUE *Queue,
256 IN VOID *Item,
257 IN UINTN ItemSize
258 );
259
271EFI_STATUS
272Dequeue (
273 IN OUT USB_SIMPLE_QUEUE *Queue,
274 OUT VOID *Item,
275 IN UINTN ItemSize
276 );
277
291VOID
292EFIAPI
294 IN EFI_EVENT Event,
295 IN VOID *Context
296 );
297
304VOID
305SetKeyLED (
306 IN USB_KB_DEV *UsbKeyboardDevice
307 );
308
315VOID
317 IN USB_KB_DEV *UsbKeyboardDevice,
318 OUT EFI_KEY_STATE *KeyState
319 );
320
321#endif
VOID EFIAPI USBKeyboardRepeatHandler(IN EFI_EVENT Event, IN VOID *Context)
Definition KeyBoard.c:1756
EFI_STATUS EFIAPI KeyboardHandler(IN VOID *Data, IN UINTN DataLength, IN VOID *Context, IN UINT32 Result)
Definition KeyBoard.c:773
VOID SetKeyLED(IN USB_KB_DEV *UsbKeyboardDevice)
Definition KeyBoard.c:1712
VOID EFIAPI USBKeyboardRecoveryHandler(IN EFI_EVENT Event, IN VOID *Context)
Definition KeyBoard.c:1803
VOID DestroyQueue(IN OUT USB_SIMPLE_QUEUE *Queue)
Definition KeyBoard.c:1596
EFI_STATUS InitUSBKeyboard(IN OUT USB_KB_DEV *UsbKeyboardDevice)
Definition KeyBoard.c:618
EFI_STATUS Dequeue(IN OUT USB_SIMPLE_QUEUE *Queue, OUT VOID *Item, IN UINTN ItemSize)
Definition KeyBoard.c:1683
#define USB_KEYBOARD_LANGUAGE_STR_LEN
Definition KeyBoard.h:16
#define USB_KEYBOARD_KEY_COUNT
Definition KeyBoard.h:14
VOID ReleaseKeyboardLayoutResources(IN OUT USB_KB_DEV *UsbKeyboardDevice)
Definition KeyBoard.c:472
EFI_STATUS USBParseKey(IN OUT USB_KB_DEV *UsbKeyboardDevice, OUT UINT8 *KeyCode)
Definition KeyBoard.c:1100
VOID InitQueue(IN OUT USB_SIMPLE_QUEUE *Queue, IN UINTN ItemSize)
Definition KeyBoard.c:1567
VOID Enqueue(IN OUT USB_SIMPLE_QUEUE *Queue, IN VOID *Item, IN UINTN ItemSize)
Definition KeyBoard.c:1648
VOID InitializeKeyState(IN USB_KB_DEV *UsbKeyboardDevice, OUT EFI_KEY_STATE *KeyState)
Definition KeyBoard.c:1335
BOOLEAN IsQueueFull(IN USB_SIMPLE_QUEUE *Queue)
Definition KeyBoard.c:1633
BOOLEAN IsUSBKeyboard(IN EFI_USB_IO_PROTOCOL *UsbIo)
Definition KeyBoard.c:324
EFI_STATUS UsbKeyCodeToEfiInputKey(IN USB_KB_DEV *UsbKeyboardDevice, IN UINT8 KeyCode, OUT EFI_KEY_DATA *KeyData)
Definition KeyBoard.c:1417
EFI_STATUS InitKeyboardLayout(OUT USB_KB_DEV *UsbKeyboardDevice)
Definition KeyBoard.c:515
BOOLEAN IsQueueEmpty(IN USB_SIMPLE_QUEUE *Queue)
Definition KeyBoard.c:1613
#define USB_KEYBOARD_DESCRIPTION_STR_LEN
Definition KeyBoard.h:17
EFI_HII_PACKAGE_HEADER PackageHeader
Definition KeyBoard.h:29