From 1de14d43e29b8f1fff8bcbf18f300adeb3eabc1d Mon Sep 17 00:00:00 2001 From: Gerd Hoffmann Date: Tue, 30 Aug 2011 13:21:27 +0200 Subject: usb: track altsetting in USBDevice Also handle {GET,SET}_INTERFACE in common code (usb-desc.c). Signed-off-by: Gerd Hoffmann --- hw/usb.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'hw/usb.h') diff --git a/hw/usb.h b/hw/usb.h index 1ef53a102f..1496f7694c 100644 --- a/hw/usb.h +++ b/hw/usb.h @@ -161,6 +161,9 @@ struct USBDescString { QLIST_ENTRY(USBDescString) next; }; +#define USB_MAX_ENDPOINTS 15 +#define USB_MAX_INTERFACES 16 + /* definition of a USB device */ struct USBDevice { DeviceState qdev; @@ -191,7 +194,9 @@ struct USBDevice { int configuration; int ninterfaces; + int altsetting[USB_MAX_INTERFACES]; const USBDescConfig *config; + const USBDescIface *ifaces[USB_MAX_INTERFACES]; }; struct USBDeviceInfo { @@ -244,6 +249,9 @@ struct USBDeviceInfo { */ int (*handle_data)(USBDevice *dev, USBPacket *p); + void (*set_interface)(USBDevice *dev, int interface, + int alt_old, int alt_new); + const char *product_desc; const USBDesc *usb_desc; -- cgit v1.2.3-55-g7522