hw: convert the escc device to keycodemapdb
Replace the qcode_to_keycode table with automatically generated tables. Missing entries in qcode_to_keycode now fixed: - Q_KEY_CODE_KP_COMMA -> 0x2d Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Message-id: 20180117164118.8510-3-berrange@redhat.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
ab8f9d49d6
commit
e709a61a8f
1
Makefile
1
Makefile
@ -238,6 +238,7 @@ KEYCODEMAP_FILES = \
|
||||
ui/input-keymap-qcode-to-atset2.c \
|
||||
ui/input-keymap-qcode-to-atset3.c \
|
||||
ui/input-keymap-qcode-to-qnum.c \
|
||||
ui/input-keymap-qcode-to-sun.c \
|
||||
ui/input-keymap-qnum-to-qcode.c \
|
||||
ui/input-keymap-qcode-to-linux.c \
|
||||
ui/input-keymap-usb-to-qcode.c \
|
||||
|
126
hw/char/escc.c
126
hw/char/escc.c
@ -717,126 +717,6 @@ MemoryRegion *escc_init(hwaddr base, qemu_irq irqA, qemu_irq irqB,
|
||||
return &d->mmio;
|
||||
}
|
||||
|
||||
static const uint8_t qcode_to_keycode[Q_KEY_CODE__MAX] = {
|
||||
[Q_KEY_CODE_SHIFT] = 99,
|
||||
[Q_KEY_CODE_SHIFT_R] = 110,
|
||||
[Q_KEY_CODE_ALT] = 19,
|
||||
[Q_KEY_CODE_ALT_R] = 13,
|
||||
[Q_KEY_CODE_CTRL] = 76,
|
||||
[Q_KEY_CODE_CTRL_R] = 76,
|
||||
[Q_KEY_CODE_ESC] = 29,
|
||||
[Q_KEY_CODE_1] = 30,
|
||||
[Q_KEY_CODE_2] = 31,
|
||||
[Q_KEY_CODE_3] = 32,
|
||||
[Q_KEY_CODE_4] = 33,
|
||||
[Q_KEY_CODE_5] = 34,
|
||||
[Q_KEY_CODE_6] = 35,
|
||||
[Q_KEY_CODE_7] = 36,
|
||||
[Q_KEY_CODE_8] = 37,
|
||||
[Q_KEY_CODE_9] = 38,
|
||||
[Q_KEY_CODE_0] = 39,
|
||||
[Q_KEY_CODE_MINUS] = 40,
|
||||
[Q_KEY_CODE_EQUAL] = 41,
|
||||
[Q_KEY_CODE_BACKSPACE] = 43,
|
||||
[Q_KEY_CODE_TAB] = 53,
|
||||
[Q_KEY_CODE_Q] = 54,
|
||||
[Q_KEY_CODE_W] = 55,
|
||||
[Q_KEY_CODE_E] = 56,
|
||||
[Q_KEY_CODE_R] = 57,
|
||||
[Q_KEY_CODE_T] = 58,
|
||||
[Q_KEY_CODE_Y] = 59,
|
||||
[Q_KEY_CODE_U] = 60,
|
||||
[Q_KEY_CODE_I] = 61,
|
||||
[Q_KEY_CODE_O] = 62,
|
||||
[Q_KEY_CODE_P] = 63,
|
||||
[Q_KEY_CODE_BRACKET_LEFT] = 64,
|
||||
[Q_KEY_CODE_BRACKET_RIGHT] = 65,
|
||||
[Q_KEY_CODE_RET] = 89,
|
||||
[Q_KEY_CODE_A] = 77,
|
||||
[Q_KEY_CODE_S] = 78,
|
||||
[Q_KEY_CODE_D] = 79,
|
||||
[Q_KEY_CODE_F] = 80,
|
||||
[Q_KEY_CODE_G] = 81,
|
||||
[Q_KEY_CODE_H] = 82,
|
||||
[Q_KEY_CODE_J] = 83,
|
||||
[Q_KEY_CODE_K] = 84,
|
||||
[Q_KEY_CODE_L] = 85,
|
||||
[Q_KEY_CODE_SEMICOLON] = 86,
|
||||
[Q_KEY_CODE_APOSTROPHE] = 87,
|
||||
[Q_KEY_CODE_GRAVE_ACCENT] = 42,
|
||||
[Q_KEY_CODE_BACKSLASH] = 88,
|
||||
[Q_KEY_CODE_Z] = 100,
|
||||
[Q_KEY_CODE_X] = 101,
|
||||
[Q_KEY_CODE_C] = 102,
|
||||
[Q_KEY_CODE_V] = 103,
|
||||
[Q_KEY_CODE_B] = 104,
|
||||
[Q_KEY_CODE_N] = 105,
|
||||
[Q_KEY_CODE_M] = 106,
|
||||
[Q_KEY_CODE_COMMA] = 107,
|
||||
[Q_KEY_CODE_DOT] = 108,
|
||||
[Q_KEY_CODE_SLASH] = 109,
|
||||
[Q_KEY_CODE_ASTERISK] = 47,
|
||||
[Q_KEY_CODE_SPC] = 121,
|
||||
[Q_KEY_CODE_CAPS_LOCK] = 119,
|
||||
[Q_KEY_CODE_F1] = 5,
|
||||
[Q_KEY_CODE_F2] = 6,
|
||||
[Q_KEY_CODE_F3] = 8,
|
||||
[Q_KEY_CODE_F4] = 10,
|
||||
[Q_KEY_CODE_F5] = 12,
|
||||
[Q_KEY_CODE_F6] = 14,
|
||||
[Q_KEY_CODE_F7] = 16,
|
||||
[Q_KEY_CODE_F8] = 17,
|
||||
[Q_KEY_CODE_F9] = 18,
|
||||
[Q_KEY_CODE_F10] = 7,
|
||||
[Q_KEY_CODE_NUM_LOCK] = 98,
|
||||
[Q_KEY_CODE_SCROLL_LOCK] = 23,
|
||||
[Q_KEY_CODE_KP_DIVIDE] = 46,
|
||||
[Q_KEY_CODE_KP_MULTIPLY] = 47,
|
||||
[Q_KEY_CODE_KP_SUBTRACT] = 71,
|
||||
[Q_KEY_CODE_KP_ADD] = 125,
|
||||
[Q_KEY_CODE_KP_ENTER] = 90,
|
||||
[Q_KEY_CODE_KP_DECIMAL] = 50,
|
||||
[Q_KEY_CODE_KP_0] = 94,
|
||||
[Q_KEY_CODE_KP_1] = 112,
|
||||
[Q_KEY_CODE_KP_2] = 113,
|
||||
[Q_KEY_CODE_KP_3] = 114,
|
||||
[Q_KEY_CODE_KP_4] = 91,
|
||||
[Q_KEY_CODE_KP_5] = 92,
|
||||
[Q_KEY_CODE_KP_6] = 93,
|
||||
[Q_KEY_CODE_KP_7] = 68,
|
||||
[Q_KEY_CODE_KP_8] = 69,
|
||||
[Q_KEY_CODE_KP_9] = 70,
|
||||
[Q_KEY_CODE_LESS] = 124,
|
||||
[Q_KEY_CODE_F11] = 9,
|
||||
[Q_KEY_CODE_F12] = 11,
|
||||
[Q_KEY_CODE_HOME] = 52,
|
||||
[Q_KEY_CODE_PGUP] = 96,
|
||||
[Q_KEY_CODE_PGDN] = 123,
|
||||
[Q_KEY_CODE_END] = 74,
|
||||
[Q_KEY_CODE_LEFT] = 24,
|
||||
[Q_KEY_CODE_UP] = 20,
|
||||
[Q_KEY_CODE_DOWN] = 27,
|
||||
[Q_KEY_CODE_RIGHT] = 28,
|
||||
[Q_KEY_CODE_INSERT] = 44,
|
||||
[Q_KEY_CODE_DELETE] = 66,
|
||||
[Q_KEY_CODE_STOP] = 1,
|
||||
[Q_KEY_CODE_AGAIN] = 3,
|
||||
[Q_KEY_CODE_PROPS] = 25,
|
||||
[Q_KEY_CODE_UNDO] = 26,
|
||||
[Q_KEY_CODE_FRONT] = 49,
|
||||
[Q_KEY_CODE_COPY] = 51,
|
||||
[Q_KEY_CODE_OPEN] = 72,
|
||||
[Q_KEY_CODE_PASTE] = 73,
|
||||
[Q_KEY_CODE_FIND] = 95,
|
||||
[Q_KEY_CODE_CUT] = 97,
|
||||
[Q_KEY_CODE_LF] = 111,
|
||||
[Q_KEY_CODE_HELP] = 118,
|
||||
[Q_KEY_CODE_META_L] = 120,
|
||||
[Q_KEY_CODE_META_R] = 122,
|
||||
[Q_KEY_CODE_COMPOSE] = 67,
|
||||
[Q_KEY_CODE_PRINT] = 22,
|
||||
[Q_KEY_CODE_SYSRQ] = 21,
|
||||
};
|
||||
|
||||
static void sunkbd_handle_event(DeviceState *dev, QemuConsole *src,
|
||||
InputEvent *evt)
|
||||
@ -879,7 +759,11 @@ static void sunkbd_handle_event(DeviceState *dev, QemuConsole *src,
|
||||
}
|
||||
}
|
||||
|
||||
keycode = qcode_to_keycode[qcode];
|
||||
if (qcode > qemu_input_map_qcode_to_sun_len) {
|
||||
return;
|
||||
}
|
||||
|
||||
keycode = qemu_input_map_qcode_to_sun[qcode];
|
||||
if (!key->down) {
|
||||
keycode |= 0x80;
|
||||
}
|
||||
|
@ -86,6 +86,9 @@ extern const guint16 qemu_input_map_qcode_to_atset3[];
|
||||
extern const guint qemu_input_map_qcode_to_qnum_len;
|
||||
extern const guint16 qemu_input_map_qcode_to_qnum[];
|
||||
|
||||
extern const guint qemu_input_map_qcode_to_sun_len;
|
||||
extern const guint16 qemu_input_map_qcode_to_sun[];
|
||||
|
||||
extern const guint qemu_input_map_qnum_to_qcode_len;
|
||||
extern const guint16 qemu_input_map_qnum_to_qcode[];
|
||||
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include "ui/input-keymap-qcode-to-atset2.c"
|
||||
#include "ui/input-keymap-qcode-to-atset3.c"
|
||||
#include "ui/input-keymap-qcode-to-qnum.c"
|
||||
#include "ui/input-keymap-qcode-to-sun.c"
|
||||
#include "ui/input-keymap-qnum-to-qcode.c"
|
||||
#include "ui/input-keymap-qcode-to-linux.c"
|
||||
#include "ui/input-keymap-usb-to-qcode.c"
|
||||
|
Loading…
Reference in New Issue
Block a user