Revision eb5e680a hw/usb.h

b/hw/usb.h
194 194
    int (*handle_packet)(USBDevice *dev, USBPacket *p);
195 195

  
196 196
    /*
197
     * Called when a packet is canceled.
198
     */
199
    void (*cancel_packet)(USBDevice *dev, USBPacket *p);
200

  
201
    /*
197 202
     * Called when device is destroyed.
198 203
     */
199 204
    void (*handle_destroy)(USBDevice *dev);
......
263 268
    int len;
264 269
    /* Internal use by the USB layer.  */
265 270
    USBDevice *owner;
266
    USBCallback *cancel_cb;
267
    void *cancel_opaque;
268 271
};
269 272

  
270 273
int usb_handle_packet(USBDevice *dev, USBPacket *p);
271 274
void usb_packet_complete(USBDevice *dev, USBPacket *p);
272 275
void usb_cancel_packet(USBPacket * p);
273 276

  
274
/* Defer completion of a USB packet.  The hadle_packet routine should then
275
   return USB_RET_ASYNC.  Packets that complete immediately (before
276
   handle_packet returns) should not call this method.  */
277
static inline void usb_defer_packet(USBPacket *p, USBCallback *cancel,
278
                                    void * opaque)
279
{
280
    p->cancel_cb = cancel;
281
    p->cancel_opaque = opaque;
282
}
283

  
284 277
void usb_attach(USBPort *port, USBDevice *dev);
285 278
void usb_wakeup(USBDevice *dev);
286 279
int usb_generic_handle_packet(USBDevice *s, USBPacket *p);

Also available in: Unified diff