Commit ec044a80 authored by Hervé Poussineau's avatar Hervé Poussineau Committed by Gerd Hoffmann
Browse files

ps2: do not generate invalid key codes for unknown keys



Instead, print a warning message.

Signed-off-by: default avatarHervé Poussineau <hpoussin@reactos.org>
Message-id: 1473969987-5890-6-git-send-email-hpoussin@reactos.org
Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent 8c10e0ba
Loading
Loading
Loading
Loading
+7 −13
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@
 * THE SOFTWARE.
 */
#include "qemu/osdep.h"
#include "qemu/log.h"
#include "hw/hw.h"
#include "hw/input/ps2.h"
#include "ui/console.h"
@@ -621,7 +622,8 @@ static void ps2_keyboard_event(DeviceState *dev, QemuConsole *src,
                }
                ps2_put_keycode(s, keycode & 0xff);
            } else {
                ps2_queue(&s->common, key->down ? 0x00 : 0x80);
                qemu_log_mask(LOG_UNIMP,
                              "ps2: ignoring key with qcode %d\n", qcode);
            }
        }
    } else if (s->scancode_set == 2) {
@@ -660,13 +662,9 @@ static void ps2_keyboard_event(DeviceState *dev, QemuConsole *src,
                    ps2_put_keycode(s, 0xf0);
                }
                ps2_put_keycode(s, keycode & 0xff);
            } else if (key->down) {
                ps2_queue(&s->common, 0x00);
            } else if (s->translate) {
                ps2_queue(&s->common, 0x80);
            } else {
                ps2_queue(&s->common, 0xf0);
                ps2_queue(&s->common, 0x00);
                qemu_log_mask(LOG_UNIMP,
                              "ps2: ignoring key with qcode %d\n", qcode);
            }
        }
    } else if (s->scancode_set == 3) {
@@ -677,13 +675,9 @@ static void ps2_keyboard_event(DeviceState *dev, QemuConsole *src,
                ps2_put_keycode(s, 0xf0);
            }
            ps2_put_keycode(s, keycode);
        } else if (key->down) {
            ps2_queue(&s->common, 0x00);
        } else if (s->translate) {
            ps2_queue(&s->common, 0x80);
        } else {
            ps2_queue(&s->common, 0xf0);
            ps2_queue(&s->common, 0x00);
            qemu_log_mask(LOG_UNIMP,
                          "ps2: ignoring key with qcode %d\n", qcode);
        }
    }
}