usb/debug: add usb_ep_dump
Add function to dump endpoint data, for debugging purposes. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
83a53bbcda
commit
5b6780d045
40
hw/usb.c
40
hw/usb.c
@ -427,6 +427,46 @@ void usb_ep_init(USBDevice *dev)
|
||||
}
|
||||
}
|
||||
|
||||
void usb_ep_dump(USBDevice *dev)
|
||||
{
|
||||
static const char *tname[] = {
|
||||
[USB_ENDPOINT_XFER_CONTROL] = "control",
|
||||
[USB_ENDPOINT_XFER_ISOC] = "isoc",
|
||||
[USB_ENDPOINT_XFER_BULK] = "bulk",
|
||||
[USB_ENDPOINT_XFER_INT] = "int",
|
||||
};
|
||||
int ifnum, ep, first;
|
||||
|
||||
fprintf(stderr, "Device \"%s\", config %d\n",
|
||||
dev->product_desc, dev->configuration);
|
||||
for (ifnum = 0; ifnum < 16; ifnum++) {
|
||||
first = 1;
|
||||
for (ep = 0; ep < USB_MAX_ENDPOINTS; ep++) {
|
||||
if (dev->ep_in[ep].type != USB_ENDPOINT_XFER_INVALID &&
|
||||
dev->ep_in[ep].ifnum == ifnum) {
|
||||
if (first) {
|
||||
first = 0;
|
||||
fprintf(stderr, " Interface %d, alternative %d\n",
|
||||
ifnum, dev->altsetting[ifnum]);
|
||||
}
|
||||
fprintf(stderr, " Endpoint %d, IN, %s\n", ep,
|
||||
tname[dev->ep_in[ep].type]);
|
||||
}
|
||||
if (dev->ep_out[ep].type != USB_ENDPOINT_XFER_INVALID &&
|
||||
dev->ep_out[ep].ifnum == ifnum) {
|
||||
if (first) {
|
||||
first = 0;
|
||||
fprintf(stderr, " Interface %d, alternative %d\n",
|
||||
ifnum, dev->altsetting[ifnum]);
|
||||
}
|
||||
fprintf(stderr, " Endpoint %d, OUT, %s\n", ep,
|
||||
tname[dev->ep_out[ep].type]);
|
||||
}
|
||||
}
|
||||
}
|
||||
fprintf(stderr, "--\n");
|
||||
}
|
||||
|
||||
struct USBEndpoint *usb_ep_get(USBDevice *dev, int pid, int ep)
|
||||
{
|
||||
struct USBEndpoint *eps = pid == USB_TOKEN_IN ? dev->ep_in : dev->ep_out;
|
||||
|
1
hw/usb.h
1
hw/usb.h
@ -333,6 +333,7 @@ void usb_packet_complete(USBDevice *dev, USBPacket *p);
|
||||
void usb_cancel_packet(USBPacket * p);
|
||||
|
||||
void usb_ep_init(USBDevice *dev);
|
||||
void usb_ep_dump(USBDevice *dev);
|
||||
struct USBEndpoint *usb_ep_get(USBDevice *dev, int pid, int ep);
|
||||
uint8_t usb_ep_get_type(USBDevice *dev, int pid, int ep);
|
||||
uint8_t usb_ep_get_ifnum(USBDevice *dev, int pid, int ep);
|
||||
|
@ -1214,6 +1214,9 @@ static int usb_linux_update_endp_table(USBHostDevice *s)
|
||||
i += descriptors[i];
|
||||
}
|
||||
}
|
||||
#ifdef DEBUG
|
||||
usb_ep_dump(&s->dev);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user