]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Usb/UsbKbDxe/efikey.h
Merged in the following trackers from EDK:
[mirror_edk2.git] / MdeModulePkg / Bus / Usb / UsbKbDxe / efikey.h
index bab22a3b883ea05970a5d20f3eda57984b704747..19443949e9fc26cb36326236fce6039c25417a70 100644 (file)
@@ -1,5 +1,5 @@
 /** @file\r
-Copyright (c) 2004 - 2007, Intel Corporation\r
+Copyright (c) 2004 - 2008, Intel Corporation\r
 All rights reserved. This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
@@ -27,9 +27,11 @@ Revision History
 \r
 #include <Protocol/SimpleTextIn.h>\r
 #include <Protocol/SimpleTextInEx.h>\r
-#include <Guid/HotPlugDevice.h>\r
+#include <Protocol/HiiDatabase.h>\r
 #include <Protocol/UsbIo.h>\r
 #include <Protocol/DevicePath.h>\r
+#include <Guid/HiiKeyBoardLayout.h>\r
+#include <Guid/HotPlugDevice.h>\r
 \r
 #include <Library/DebugLib.h>\r
 #include <Library/ReportStatusCodeLib.h>\r
@@ -79,6 +81,27 @@ typedef struct _KEYBOARD_CONSOLE_IN_EX_NOTIFY {
   EFI_KEY_NOTIFY_FUNCTION               KeyNotificationFn;\r
   LIST_ENTRY                            NotifyEntry;\r
 } KEYBOARD_CONSOLE_IN_EX_NOTIFY;\r
+\r
+#define USB_NS_KEY_SIGNATURE  EFI_SIGNATURE_32 ('u', 'n', 's', 'k')\r
+\r
+typedef struct {\r
+  UINTN                         Signature;\r
+  LIST_ENTRY                    Link;\r
+\r
+  //\r
+  // The number of EFI_NS_KEY_MODIFIER children definitions\r
+  //\r
+  UINTN                         KeyCount;\r
+\r
+  //\r
+  // NsKey[0] : Non-spacing key\r
+  // NsKey[1] ~ NsKey[KeyCount] : Physical keys\r
+  //\r
+  EFI_KEY_DESCRIPTOR            *NsKey;\r
+} USB_NS_KEY;\r
+\r
+#define USB_NS_KEY_FORM_FROM_LINK(a)  CR (a, USB_NS_KEY, Link, USB_NS_KEY_SIGNATURE)\r
+\r
 typedef struct {\r
   UINTN                          Signature;\r
   EFI_DEVICE_PATH_PROTOCOL       *DevicePath;\r
@@ -115,12 +138,21 @@ typedef struct {
   UINT8                         RightLogoOn;  \r
   UINT8                         MenuKeyOn;\r
   UINT8                         SysReqOn;\r
+  UINT8                         AltGrOn;\r
 \r
   EFI_KEY_STATE                 KeyState;\r
   //\r
   // Notification function list\r
   //\r
   LIST_ENTRY                    NotifyList;\r
+\r
+  //\r
+  // Non-spacing key list\r
+  //\r
+  LIST_ENTRY                    NsKeyList;\r
+  USB_NS_KEY                    *CurrentNsKey;\r
+  EFI_KEY_DESCRIPTOR            *KeyConvertionTable;\r
+  EFI_EVENT                     KeyboardLayoutEvent;\r
 } USB_KB_DEV;\r
 \r
 //\r
@@ -159,7 +191,7 @@ typedef struct {
   UINT8 Key;\r
 } KB_MODIFIER;\r
 \r
-#define USB_KEYCODE_MAX_MAKE      0x7E\r
+#define USB_KEYCODE_MAX_MAKE      0x62\r
 \r
 #define USBKBD_VALID_KEYCODE(key) ((UINT8) (key) > 3)\r
 \r