qemu with hax to log dma reads & writes jcs.org/2018/11/12/vfio

ui: add ctrl modifier support to kbd_put_qcode_console()

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180321135041.15768-2-kraxel@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>

+17 -6
+1 -1
include/ui/console.h
··· 99 99 #define QEMU_KEY_CTRL_PAGEDOWN 0xe407 100 100 101 101 void kbd_put_keysym_console(QemuConsole *s, int keysym); 102 - bool kbd_put_qcode_console(QemuConsole *s, int qcode); 102 + bool kbd_put_qcode_console(QemuConsole *s, int qcode, bool ctrl); 103 103 void kbd_put_string_console(QemuConsole *s, const char *str, int len); 104 104 void kbd_put_keysym(int keysym); 105 105
+13 -2
ui/console.c
··· 1191 1191 [Q_KEY_CODE_BACKSPACE] = QEMU_KEY_BACKSPACE, 1192 1192 }; 1193 1193 1194 - bool kbd_put_qcode_console(QemuConsole *s, int qcode) 1194 + static const int ctrl_qcode_to_keysym[Q_KEY_CODE__MAX] = { 1195 + [Q_KEY_CODE_UP] = QEMU_KEY_CTRL_UP, 1196 + [Q_KEY_CODE_DOWN] = QEMU_KEY_CTRL_DOWN, 1197 + [Q_KEY_CODE_RIGHT] = QEMU_KEY_CTRL_RIGHT, 1198 + [Q_KEY_CODE_LEFT] = QEMU_KEY_CTRL_LEFT, 1199 + [Q_KEY_CODE_HOME] = QEMU_KEY_CTRL_HOME, 1200 + [Q_KEY_CODE_END] = QEMU_KEY_CTRL_END, 1201 + [Q_KEY_CODE_PGUP] = QEMU_KEY_CTRL_PAGEUP, 1202 + [Q_KEY_CODE_PGDN] = QEMU_KEY_CTRL_PAGEDOWN, 1203 + }; 1204 + 1205 + bool kbd_put_qcode_console(QemuConsole *s, int qcode, bool ctrl) 1195 1206 { 1196 1207 int keysym; 1197 1208 1198 - keysym = qcode_to_keysym[qcode]; 1209 + keysym = ctrl ? ctrl_qcode_to_keysym[qcode] : qcode_to_keysym[qcode]; 1199 1210 if (keysym == 0) { 1200 1211 return false; 1201 1212 }
+2 -2
ui/gtk.c
··· 1197 1197 QemuConsole *con = vc->gfx.dcl.con; 1198 1198 1199 1199 if (key->keyval == GDK_KEY_Delete) { 1200 - kbd_put_qcode_console(con, Q_KEY_CODE_DELETE); 1200 + kbd_put_qcode_console(con, Q_KEY_CODE_DELETE, false); 1201 1201 } else if (key->length) { 1202 1202 kbd_put_string_console(con, key->string, key->length); 1203 1203 } else { 1204 1204 int qcode = gd_map_keycode(key->hardware_keycode); 1205 - kbd_put_qcode_console(con, qcode); 1205 + kbd_put_qcode_console(con, qcode, false); 1206 1206 } 1207 1207 return TRUE; 1208 1208 }
+1 -1
ui/sdl2-input.c
··· 70 70 kbd_put_keysym_console(con, QEMU_KEY_BACKSPACE); 71 71 break; 72 72 default: 73 - kbd_put_qcode_console(con, qcode); 73 + kbd_put_qcode_console(con, qcode, false); 74 74 break; 75 75 } 76 76 }