qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v5 08/12] char: convert the escc device to keycodemapdb
  2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
@ 2017-09-12 12:37 ` Daniel P. Berrange
  0 siblings, 0 replies; 4+ messages in thread
From: Daniel P. Berrange @ 2017-09-12 12:37 UTC (permalink / raw)
  To: qemu-devel; +Cc: Gerd Hoffmann, Eric Blake, Daniel P. Berrange

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>
---
 hw/char/escc.c     | 126 +++--------------------------------------------------
 include/ui/input.h |   3 ++
 ui/Makefile.objs   |   1 +
 ui/input-keymap.c  |   1 +
 4 files changed, 10 insertions(+), 121 deletions(-)

diff --git a/hw/char/escc.c b/hw/char/escc.c
index 3ab831a6a7..449bf2fc63 100644
--- a/hw/char/escc.c
+++ b/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;
     }
diff --git a/include/ui/input.h b/include/ui/input.h
index 4aa5655a0b..4ba7340b7b 100644
--- a/include/ui/input.h
+++ b/include/ui/input.h
@@ -89,6 +89,9 @@ extern const guint16 qemu_input_map_qcode_to_linux[];
 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[];
 
diff --git a/ui/Makefile.objs b/ui/Makefile.objs
index 6846636f39..3cd1122ea9 100644
--- a/ui/Makefile.objs
+++ b/ui/Makefile.objs
@@ -61,6 +61,7 @@ KEYCODEMAP_FILES = \
 		 ui/input-keymap-qcode-to-atset3.c \
 		 ui/input-keymap-qcode-to-linux.c \
 		 ui/input-keymap-qcode-to-qnum.c \
+		 ui/input-keymap-qcode-to-sun.c \
 		 ui/input-keymap-qnum-to-qcode.c \
 		 $(NULL)
 
diff --git a/ui/input-keymap.c b/ui/input-keymap.c
index 5d97a38c42..1b53cb4d0a 100644
--- a/ui/input-keymap.c
+++ b/ui/input-keymap.c
@@ -12,6 +12,7 @@
 #include "ui/input-keymap-qcode-to-atset3.c"
 #include "ui/input-keymap-qcode-to-linux.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"
 
 int qemu_input_linux_to_qcode(unsigned int lnx)
-- 
2.13.5

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH v5 08/12] char: convert the escc device to keycodemapdb
@ 2017-09-15 18:32 Programmingkid
  2017-09-18  9:28 ` Daniel P. Berrange
  0 siblings, 1 reply; 4+ messages in thread
From: Programmingkid @ 2017-09-15 18:32 UTC (permalink / raw)
  To: Daniel P. Berrange; +Cc: qemu-devel@nongnu.org qemu-devel

Sorry but I saw this error when I tried your patches:

  OBJC    ui/cocoa.o
  CC      ui/curses.o
ui/input-keymap.c:17:10: fatal error: 'ui/input-keymap-qcode-to-sun.c' file not
      found
#include "ui/input-keymap-qcode-to-sun.c"
         ^
1 error generated.
make: *** [ui/input-keymap.o] Error 1
make: *** Waiting for unfinished jobs....


I could not find this file. 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH v5 08/12] char: convert the escc device to keycodemapdb
  2017-09-15 18:32 [Qemu-devel] [PATCH v5 08/12] char: convert the escc device to keycodemapdb Programmingkid
@ 2017-09-18  9:28 ` Daniel P. Berrange
  2017-09-18 14:49   ` Programmingkid
  0 siblings, 1 reply; 4+ messages in thread
From: Daniel P. Berrange @ 2017-09-18  9:28 UTC (permalink / raw)
  To: Programmingkid; +Cc: qemu-devel@nongnu.org qemu-devel

On Fri, Sep 15, 2017 at 02:32:14PM -0400, Programmingkid wrote:
> Sorry but I saw this error when I tried your patches:
> 
>   OBJC    ui/cocoa.o
>   CC      ui/curses.o
> ui/input-keymap.c:17:10: fatal error: 'ui/input-keymap-qcode-to-sun.c' file not
>       found
> #include "ui/input-keymap-qcode-to-sun.c"
>          ^
> 1 error generated.
> make: *** [ui/input-keymap.o] Error 1
> make: *** Waiting for unfinished jobs....
> 
> 
> I could not find this file.

Yes, its a bug in this series - just build without the sparc system
emulators to avoid it.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [Qemu-devel] [PATCH v5 08/12] char: convert the escc device to keycodemapdb
  2017-09-18  9:28 ` Daniel P. Berrange
@ 2017-09-18 14:49   ` Programmingkid
  0 siblings, 0 replies; 4+ messages in thread
From: Programmingkid @ 2017-09-18 14:49 UTC (permalink / raw)
  To: Daniel P. Berrange; +Cc: qemu-devel@nongnu.org qemu-devel


> On Sep 18, 2017, at 5:28 AM, Daniel P. Berrange <berrange@redhat.com> wrote:
> 
> On Fri, Sep 15, 2017 at 02:32:14PM -0400, Programmingkid wrote:
>> Sorry but I saw this error when I tried your patches:
>> 
>>  OBJC    ui/cocoa.o
>>  CC      ui/curses.o
>> ui/input-keymap.c:17:10: fatal error: 'ui/input-keymap-qcode-to-sun.c' file not
>>      found
>> #include "ui/input-keymap-qcode-to-sun.c"
>>         ^
>> 1 error generated.
>> make: *** [ui/input-keymap.o] Error 1
>> make: *** Waiting for unfinished jobs....
>> 
>> 
>> I could not find this file.
> 
> Yes, its a bug in this series - just build without the sparc system
> emulators to avoid it.

I did not build with the spare system emulator. My configure command looks like this:
./configure --target-list=i386-softmmu,ppc-softmmu

Thank you.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-09-18 14:49 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-15 18:32 [Qemu-devel] [PATCH v5 08/12] char: convert the escc device to keycodemapdb Programmingkid
2017-09-18  9:28 ` Daniel P. Berrange
2017-09-18 14:49   ` Programmingkid
  -- strict thread matches above, loose matches on Subject: below --
2017-09-12 12:37 [Qemu-devel] [PATCH v5 00/12] Convert over to use keycodemapdb Daniel P. Berrange
2017-09-12 12:37 ` [Qemu-devel] [PATCH v5 08/12] char: convert the escc device to keycodemapdb Daniel P. Berrange

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).