Programmingkid <programmingk...@gmail.com> writes: > Add debug macros to the code for easier debugging. > > Signed-off-by: John Arbuckle <programmingk...@gmail.com> > --- > 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