From 37f78fd8e2c17ac63ba5fcbd9b3d0e616e921606 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Thu, 20 Mar 2014 15:52:34 +0100 Subject: unifying: introduce usbdump property to specify dump name Stop hard-coding capture file and introduce the "usbdump" property to specify the capture file path. When omitted, no capture will be done. Signed-off-by: Peter Wu --- hw/usb/dev-unifying.c | 11 +++++++++-- hw/usb/hid-logitech-dj.h | 1 + 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/hw/usb/dev-unifying.c b/hw/usb/dev-unifying.c index e7e2bd600b..d1904b01d2 100644 --- a/hw/usb/dev-unifying.c +++ b/hw/usb/dev-unifying.c @@ -576,8 +576,9 @@ static int usb_ltunify_initfn(USBDevice *dev) hidpp_init(s); - // TODO: API sucks... - s->usb_dump_state = usb_dump_init_alloc("/tmp/usbdump.pcap"); + if (s->usbdump_filename != NULL) { + s->usb_dump_state = usb_dump_init_alloc(s->usbdump_filename); + } return 0; } @@ -586,6 +587,11 @@ static const VMStateDescription vmstate_usb_ltunify = { .unmigratable = 1, }; +static Property usb_ltunify_properties[] = { + DEFINE_PROP_STRING("usbdump", USBLtunifyState, usbdump_filename), + DEFINE_PROP_END_OF_LIST(), +}; + static void usb_ltunify_class_init(ObjectClass *klass, void *data) { DeviceClass *dc = DEVICE_CLASS(klass); @@ -602,6 +608,7 @@ static void usb_ltunify_class_init(ObjectClass *klass, void *data) set_bit(DEVICE_CATEGORY_INPUT, dc->categories); dc->desc = "QEMU Logitech Unifying Receiver"; dc->vmsd = &vmstate_usb_ltunify; + dc->props = usb_ltunify_properties; } static const TypeInfo ltunify_info = { diff --git a/hw/usb/hid-logitech-dj.h b/hw/usb/hid-logitech-dj.h index 6a2ca18413..de46a74453 100644 --- a/hw/usb/hid-logitech-dj.h +++ b/hw/usb/hid-logitech-dj.h @@ -223,6 +223,7 @@ typedef struct { typedef struct USBLtunifyState { USBDevice dev; USBEndpoint *intr[3]; /* interfaces (keyboard, mouse, DJ) */ + char *usbdump_filename; UsbDumpState *usb_dump_state; HIDState hid[2]; /* HID devices (keyboard, mouse) */ -- cgit v1.2.1