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