[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 3/3] hid.c: Add debug support
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH 3/3] hid.c: Add debug support |
Date: |
Sat, 26 Mar 2016 06:48:09 +0000 |
User-agent: |
mu4e 0.9.17; emacs 25.0.92.7 |
Programmingkid <address@hidden> writes:
> Add debug macros to the code for easier debugging.
>
> Signed-off-by: John Arbuckle <address@hidden>
> ---
> hw/input/hid.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> diff --git a/hw/input/hid.c b/hw/input/hid.c
> index 329a27b..42ca592 100644
> --- a/hw/input/hid.c
> +++ b/hw/input/hid.c
> @@ -37,6 +37,13 @@
> #define RELEASED -1
> #define PUSHED -2
>
> +/* #define DEBUG_HID_CODE */
> +#ifdef DEBUG_HID_CODE
> + #define DEBUG_HID(fmt, ...) printf(fmt, __VA_ARGS__)
> +#else
> + #define DEBUG_HID(fmt, ...) (void)0
> +#endif
> +
This style of debug setup is discouraged these days as its prone to
bitrot. It's better to define like this:
#define DEBUG_HID(fmt, ...) \
if (DEBUG_HID_CODE) { \
printf(fmt, __VA_ARGS);\
}
This means you get the benefit of the compiler checking your format
strings even if the code gets optimised away when DEBUG_HID_CODE isn't
defined.
> /* Translates a QKeyCode to USB HID value */
> static const uint8_t qcode_to_usb_hid[] = {
> [Q_KEY_CODE_SHIFT] = USB_HID_LEFT_SHIFT,
> @@ -331,6 +338,7 @@ static void hid_keyboard_event(DeviceState *dev,
> QemuConsole *src,
> return;
> }
> keycode = qcode_to_usb_hid[qcode];
> + DEBUG_HID("keycode = 0x%x qcode:%d\n", keycode, qcode);
>
> count = 2;
> if (evt->u.key.data->down == false) { /* if key up event */
> @@ -381,6 +389,9 @@ static void hid_keyboard_process_keycode(HIDState *hs)
> slot = hs->head & QUEUE_MASK; QUEUE_INCR(hs->head); hs->n--;
> keycode = hs->kbd.keycodes[slot];
>
> + DEBUG_HID("keycode:0x%x status:%s\n", keycode, (status == PUSHED ?
> "Pushed"
> + : "Released"));
> +
> /* handle Control, Option, GUI/Windows/Command, and Shift keys */
> if (keycode >= 0xe0) {
> process_modifier_key(status, keycode, &(hs->kbd.modifiers));
--
Alex Bennée