|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH xenvkbd] Fix a couple of key mappings...
...which gets CTRL+ALT+DEL working
This patch also adds some helpful debug code.
Signed-off-by: Paul Durrant <paul.durrant@xxxxxxxxxx>
---
src/xenvkbd/ring.c | 25 ++++++++++++++++++++++++-
src/xenvkbd/vkbd.h | 3 ++-
2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/src/xenvkbd/ring.c b/src/xenvkbd/ring.c
index 25d97ec..bd9dc53 100644
--- a/src/xenvkbd/ring.c
+++ b/src/xenvkbd/ring.c
@@ -189,12 +189,13 @@ SetArray(
}
struct _KEY_CODE_TO_USAGE {
+ const CHAR *KeyName;
UCHAR KeyCode;
USHORT Usage;
};
#define DEFINE_USAGE(_KeyCode, _Usage) \
- { _KeyCode, _Usage }
+ { #_KeyCode, _KeyCode, _Usage }
static struct _KEY_CODE_TO_USAGE KeyCodeToUsageTable[] = {
DEFINE_USAGE_TABLE
@@ -217,6 +218,23 @@ static VOID RingBuildKeyCodeToUsageMapping(
}
}
+static FORCEINLINE const CHAR *
+__KeyCodeToKeyName(
+ ULONG KeyCode
+ )
+{
+ ULONG Index;
+
+ for (Index = 0; Index < ARRAYSIZE(KeyCodeToUsageTable); Index++) {
+ struct _KEY_CODE_TO_USAGE *Entry = &KeyCodeToUsageTable[Index];
+
+ if (Entry->KeyCode == KeyCode)
+ return Entry->KeyName;
+ }
+
+ return "UNKNOWN";
+}
+
static FORCEINLINE USHORT
__RingKeyCodeToUsage(
IN PXENVKBD_RING Ring,
@@ -266,6 +284,11 @@ __RingEventKeypress(
} else {
// map KeyCode to Usage
USHORT Usage = __RingKeyCodeToUsage(Ring, KeyCode);
+
+ Trace("%s (%02x) -> %04x (%s)\n",
+ __KeyCodeToKeyName(KeyCode), KeyCode,
+ Usage, Pressed ? "PRESSED" : "RELEASED");
+
if (Usage == 0)
return; // non-standard key
diff --git a/src/xenvkbd/vkbd.h b/src/xenvkbd/vkbd.h
index d8b2725..fa4cd7f 100644
--- a/src/xenvkbd/vkbd.h
+++ b/src/xenvkbd/vkbd.h
@@ -228,6 +228,7 @@ static const HID_DEVICE_ATTRIBUTES VkbdDeviceAttributes = {
DEFINE_USAGE(KEY_RIGHTCTRL, 0xE4), \
DEFINE_USAGE(KEY_KPSLASH, 0x54), \
DEFINE_USAGE(KEY_SYSRQ, 0x48), \
+ DEFINE_USAGE(KEY_PAUSE, 0x48), \
DEFINE_USAGE(KEY_RIGHTALT, 0xE6), \
DEFINE_USAGE(KEY_HOME, 0x4A), \
DEFINE_USAGE(KEY_UP, 0x52), \
@@ -238,7 +239,7 @@ static const HID_DEVICE_ATTRIBUTES VkbdDeviceAttributes = {
DEFINE_USAGE(KEY_DOWN, 0x51), \
DEFINE_USAGE(KEY_PAGEDOWN, 0x4E), \
DEFINE_USAGE(KEY_INSERT, 0x49), \
- DEFINE_USAGE(KEY_DELETE, 0x4D), \
+ DEFINE_USAGE(KEY_DELETE, 0x4C), \
DEFINE_USAGE(KEY_MUTE, 0x7F), \
DEFINE_USAGE(KEY_VOLUMEDOWN, 0x81), \
DEFINE_USAGE(KEY_VOLUMEUP, 0x80), \
--
2.5.3
_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/win-pv-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |