Hi, > + /* > + * Process / cancel combined packets, called from > + * usb_ep_combine_input_packets() / usb_combined_packet_cancel(). > + * Only called for devices which call these functions themselves. > + */ > + int (*handle_combined_data)(USBDevice *dev, USBPacket *p); > + void (*cancel_combined_packet)(USBDevice *dev, USBPacket *p);
Do we really need these? I think it isn't much work for the callers to do that themself. Saves them providing a callback. And makes the code flow easier to follow by removing a pointless indirection. For handle_combined_data we probably must make usb_ep_combine_input_packets return a status code. cheers, Gerd