Revision 4d611c9a usb-linux.c
b/usb-linux.c | ||
---|---|---|
114 | 114 |
} |
115 | 115 |
} |
116 | 116 |
|
117 |
static int usb_host_handle_data(USBDevice *dev, int pid, |
|
118 |
uint8_t devep, |
|
119 |
uint8_t *data, int len) |
|
117 |
static int usb_host_handle_data(USBDevice *dev, USBPacket *p) |
|
120 | 118 |
{ |
121 | 119 |
USBHostDevice *s = (USBHostDevice *)dev; |
122 | 120 |
struct usbdevfs_bulktransfer bt; |
123 | 121 |
int ret; |
122 |
uint8_t devep = p->devep; |
|
124 | 123 |
|
125 | 124 |
/* XXX: optimize and handle all data types by looking at the |
126 | 125 |
config descriptor */ |
127 |
if (pid == USB_TOKEN_IN) |
|
126 |
if (p->pid == USB_TOKEN_IN)
|
|
128 | 127 |
devep |= 0x80; |
129 | 128 |
bt.ep = devep; |
130 |
bt.len = len; |
|
129 |
bt.len = p->len;
|
|
131 | 130 |
bt.timeout = 50; |
132 |
bt.data = data; |
|
131 |
bt.data = p->data;
|
|
133 | 132 |
ret = ioctl(s->fd, USBDEVFS_BULK, &bt); |
134 | 133 |
if (ret < 0) { |
135 | 134 |
switch(errno) { |
Also available in: Unified diff