From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:53425) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RryTP-0001b3-Vh for qemu-devel@nongnu.org; Mon, 30 Jan 2012 16:09:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RryTL-00050L-Gf for qemu-devel@nongnu.org; Mon, 30 Jan 2012 16:09:11 -0500 Received: from cpe-70-123-132-139.austin.res.rr.com ([70.123.132.139]:34252 helo=localhost6.localdomain6) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RryTL-0004zg-0U for qemu-devel@nongnu.org; Mon, 30 Jan 2012 16:09:07 -0500 From: Anthony Liguori Date: Mon, 30 Jan 2012 15:08:39 -0600 Message-Id: <1327957741-5842-1-git-send-email-aliguori@us.ibm.com> Subject: [Qemu-devel] [PATCH 01/23] usb-hid: simplify class initialization a bit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Andreas Faerber , Anthony Liguori , Peter Maydell We can probably model USBHidDevice as a base class to get even better code sharing but for now, just use a common function to initialize the common class members. Signed-off-by: Anthony Liguori --- hw/usb-hid.c | 27 +++++++++++++-------------- 1 files changed, 13 insertions(+), 14 deletions(-) diff --git a/hw/usb-hid.c b/hw/usb-hid.c index 88fdd35..4af27a2 100644 --- a/hw/usb-hid.c +++ b/hw/usb-hid.c @@ -553,13 +553,10 @@ static const VMStateDescription vmstate_usb_kbd = { } }; -static void usb_tablet_class_initfn(ObjectClass *klass, void *data) +static void usb_hid_class_initfn(ObjectClass *klass, void *data) { USBDeviceClass *uc = USB_DEVICE_CLASS(klass); - uc->init = usb_tablet_initfn; - uc->product_desc = "QEMU USB Tablet"; - uc->usb_desc = &desc_tablet; uc->handle_packet = usb_generic_handle_packet; uc->handle_reset = usb_hid_handle_reset; uc->handle_control = usb_hid_handle_control; @@ -567,6 +564,16 @@ static void usb_tablet_class_initfn(ObjectClass *klass, void *data) uc->handle_destroy = usb_hid_handle_destroy; } +static void usb_tablet_class_initfn(ObjectClass *klass, void *data) +{ + USBDeviceClass *uc = USB_DEVICE_CLASS(klass); + + usb_hid_class_initfn(klass, data); + uc->init = usb_tablet_initfn; + uc->product_desc = "QEMU USB Tablet"; + uc->usb_desc = &desc_tablet; +} + static struct DeviceInfo usb_tablet_info = { .name = "usb-tablet", .size = sizeof(USBHIDState), @@ -578,14 +585,10 @@ static void usb_mouse_class_initfn(ObjectClass *klass, void *data) { USBDeviceClass *uc = USB_DEVICE_CLASS(klass); + usb_hid_class_initfn(klass, data); uc->init = usb_mouse_initfn; uc->product_desc = "QEMU USB Mouse"; uc->usb_desc = &desc_mouse; - uc->handle_packet = usb_generic_handle_packet; - uc->handle_reset = usb_hid_handle_reset; - uc->handle_control = usb_hid_handle_control; - uc->handle_data = usb_hid_handle_data; - uc->handle_destroy = usb_hid_handle_destroy; } static struct DeviceInfo usb_mouse_info = { @@ -599,14 +602,10 @@ static void usb_keyboard_class_initfn(ObjectClass *klass, void *data) { USBDeviceClass *uc = USB_DEVICE_CLASS(klass); + usb_hid_class_initfn(klass, data); uc->init = usb_keyboard_initfn; uc->product_desc = "QEMU USB Keyboard"; uc->usb_desc = &desc_keyboard; - uc->handle_packet = usb_generic_handle_packet; - uc->handle_reset = usb_hid_handle_reset; - uc->handle_control = usb_hid_handle_control; - uc->handle_data = usb_hid_handle_data; - uc->handle_destroy = usb_hid_handle_destroy; } static struct DeviceInfo usb_keyboard_info = { -- 1.7.4.1