26 |
26 |
#include "qemu-common.h"
|
27 |
27 |
#include "usb.h"
|
28 |
28 |
#include "iov.h"
|
|
29 |
#include "trace.h"
|
29 |
30 |
|
30 |
31 |
void usb_attach(USBPort *port)
|
31 |
32 |
{
|
... | ... | |
390 |
391 |
|
391 |
392 |
void usb_packet_set_state(USBPacket *p, USBPacketState state)
|
392 |
393 |
{
|
393 |
|
#ifdef DEBUG
|
394 |
394 |
static const char *name[] = {
|
395 |
395 |
[USB_PACKET_UNDEFINED] = "undef",
|
396 |
396 |
[USB_PACKET_SETUP] = "setup",
|
... | ... | |
399 |
399 |
[USB_PACKET_COMPLETE] = "complete",
|
400 |
400 |
[USB_PACKET_CANCELED] = "canceled",
|
401 |
401 |
};
|
402 |
|
static const char *rets[] = {
|
403 |
|
[-USB_RET_NODEV] = "NODEV",
|
404 |
|
[-USB_RET_NAK] = "NAK",
|
405 |
|
[-USB_RET_STALL] = "STALL",
|
406 |
|
[-USB_RET_BABBLE] = "BABBLE",
|
407 |
|
[-USB_RET_ASYNC] = "ASYNC",
|
408 |
|
};
|
409 |
|
char add[16] = "";
|
|
402 |
USBDevice *dev = p->ep->dev;
|
|
403 |
USBBus *bus = usb_bus_from_device(dev);
|
410 |
404 |
|
411 |
|
if (state == USB_PACKET_COMPLETE) {
|
412 |
|
if (p->result < 0) {
|
413 |
|
snprintf(add, sizeof(add), " - %s", rets[-p->result]);
|
414 |
|
} else {
|
415 |
|
snprintf(add, sizeof(add), " - %d", p->result);
|
416 |
|
}
|
417 |
|
}
|
418 |
|
fprintf(stderr, "bus %s, port %s, dev %d, ep %d: packet %p: %s -> %s%s\n",
|
419 |
|
p->ep->dev->qdev.parent_bus->name,
|
420 |
|
p->ep->dev->port->path,
|
421 |
|
p->ep->dev->addr, p->ep->nr,
|
422 |
|
p, name[p->state], name[state], add);
|
423 |
|
#endif
|
|
405 |
trace_usb_packet_state_change(bus->busnr, dev->port->path, p->ep->nr,
|
|
406 |
p, name[p->state], name[state]);
|
424 |
407 |
p->state = state;
|
425 |
408 |
}
|
426 |
409 |
|