diff options
Diffstat (limited to 'MdeModulePkg/Bus/Usb/UsbKbDxe/efikey.h')
-rw-r--r-- | MdeModulePkg/Bus/Usb/UsbKbDxe/efikey.h | 38 |
1 files changed, 35 insertions, 3 deletions
diff --git a/MdeModulePkg/Bus/Usb/UsbKbDxe/efikey.h b/MdeModulePkg/Bus/Usb/UsbKbDxe/efikey.h index bab22a3b88..19443949e9 100644 --- a/MdeModulePkg/Bus/Usb/UsbKbDxe/efikey.h +++ b/MdeModulePkg/Bus/Usb/UsbKbDxe/efikey.h @@ -1,5 +1,5 @@ /** @file
-Copyright (c) 2004 - 2007, Intel Corporation
+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
@@ -27,9 +27,11 @@ Revision History #include <Protocol/SimpleTextIn.h>
#include <Protocol/SimpleTextInEx.h>
-#include <Guid/HotPlugDevice.h>
+#include <Protocol/HiiDatabase.h>
#include <Protocol/UsbIo.h>
#include <Protocol/DevicePath.h>
+#include <Guid/HiiKeyBoardLayout.h>
+#include <Guid/HotPlugDevice.h>
#include <Library/DebugLib.h>
#include <Library/ReportStatusCodeLib.h>
@@ -79,6 +81,27 @@ typedef struct _KEYBOARD_CONSOLE_IN_EX_NOTIFY { EFI_KEY_NOTIFY_FUNCTION KeyNotificationFn;
LIST_ENTRY NotifyEntry;
} KEYBOARD_CONSOLE_IN_EX_NOTIFY;
+
+#define USB_NS_KEY_SIGNATURE EFI_SIGNATURE_32 ('u', 'n', 's', 'k')
+
+typedef struct {
+ UINTN Signature;
+ LIST_ENTRY Link;
+
+ //
+ // The number of EFI_NS_KEY_MODIFIER children definitions
+ //
+ UINTN KeyCount;
+
+ //
+ // NsKey[0] : Non-spacing key
+ // NsKey[1] ~ NsKey[KeyCount] : Physical keys
+ //
+ EFI_KEY_DESCRIPTOR *NsKey;
+} USB_NS_KEY;
+
+#define USB_NS_KEY_FORM_FROM_LINK(a) CR (a, USB_NS_KEY, Link, USB_NS_KEY_SIGNATURE)
+
typedef struct {
UINTN Signature;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
@@ -115,12 +138,21 @@ typedef struct { UINT8 RightLogoOn;
UINT8 MenuKeyOn;
UINT8 SysReqOn;
+ UINT8 AltGrOn;
EFI_KEY_STATE KeyState;
//
// Notification function list
//
LIST_ENTRY NotifyList;
+
+ //
+ // Non-spacing key list
+ //
+ LIST_ENTRY NsKeyList;
+ USB_NS_KEY *CurrentNsKey;
+ EFI_KEY_DESCRIPTOR *KeyConvertionTable;
+ EFI_EVENT KeyboardLayoutEvent;
} USB_KB_DEV;
//
@@ -159,7 +191,7 @@ typedef struct { UINT8 Key;
} KB_MODIFIER;
-#define USB_KEYCODE_MAX_MAKE 0x7E
+#define USB_KEYCODE_MAX_MAKE 0x62
#define USBKBD_VALID_KEYCODE(key) ((UINT8) (key) > 3)
|