Lines Matching +full:qemu +full:- +full:setup +full:-
7 * See the COPYING file in the top-level directory.
10 #include "qemu/osdep.h"
44 uint64_t id; /* 0: URB ID - from submission to callback */
58 unsigned char setup[8]; /* Only for Control S-type */ member
70 /* ------------------------------------------------------------------------ */
77 switch (p->status) { in usbmon_status()
81 return -19; /* -ENODEV */ in usbmon_status()
83 return -121; /* -EREMOTEIO */ in usbmon_status()
91 epnum |= p->ep->nr; in usbmon_epnum()
92 epnum |= (p->pid == USB_TOKEN_IN) ? 0x80 : 0; in usbmon_epnum()
109 packet->ts_sec = tv.tv_sec; in do_usb_pcap_header()
110 packet->ts_usec = tv.tv_usec; in do_usb_pcap_header()
112 header.ts_sec = packet->ts_sec; in do_usb_pcap_header()
113 header.ts_usec = packet->ts_usec; in do_usb_pcap_header()
114 header.incl_len = packet->len_cap; in do_usb_pcap_header()
115 header.orig_len = packet->length + sizeof(*packet); in do_usb_pcap_header()
120 static void do_usb_pcap_ctrl(FILE *fp, USBPacket *p, bool setup) in do_usb_pcap_ctrl() argument
122 USBDevice *dev = p->ep->dev; in do_usb_pcap_ctrl()
123 bool in = dev->setup_buf[0] & USB_DIR_IN; in do_usb_pcap_ctrl()
126 .type = setup ? 'S' : 'C', in do_usb_pcap_ctrl()
129 .devnum = dev->addr, in do_usb_pcap_ctrl()
130 .flag_setup = setup ? 0 : '-', in do_usb_pcap_ctrl()
132 .length = dev->setup_len, in do_usb_pcap_ctrl()
134 int data_len = dev->setup_len; in do_usb_pcap_ctrl()
139 if (setup) { in do_usb_pcap_ctrl()
140 memcpy(packet.s.setup, dev->setup_buf, 8); in do_usb_pcap_ctrl()
145 if (in && setup) { in do_usb_pcap_ctrl()
150 if (!in && !setup) { in do_usb_pcap_ctrl()
159 fwrite(dev->data_buf, data_len, 1, fp); in do_usb_pcap_ctrl()
165 static void do_usb_pcap_data(FILE *fp, USBPacket *p, bool setup) in do_usb_pcap_data() argument
168 .id = p->id, in do_usb_pcap_data()
169 .type = setup ? 'S' : 'C', in do_usb_pcap_data()
170 .xfer_type = usbmon_xfer_type[p->ep->type], in do_usb_pcap_data()
172 .devnum = p->ep->dev->addr, in do_usb_pcap_data()
173 .flag_setup = '-', in do_usb_pcap_data()
175 .length = p->iov.size, in do_usb_pcap_data()
177 int data_len = p->iov.size; in do_usb_pcap_data()
179 if (p->ep->nr == 0) { in do_usb_pcap_data()
187 if (!setup) { in do_usb_pcap_data()
189 if (packet.length > p->actual_length) { in do_usb_pcap_data()
190 packet.length = p->actual_length; in do_usb_pcap_data()
192 if (data_len > p->actual_length) { in do_usb_pcap_data()
193 data_len = p->actual_length; in do_usb_pcap_data()
197 if (p->pid == USB_TOKEN_IN && setup) { in do_usb_pcap_data()
202 if (p->pid == USB_TOKEN_OUT && !setup) { in do_usb_pcap_data()
212 iov_to_buf(p->iov.iov, p->iov.niov, 0, buf, data_len); in do_usb_pcap_data()
233 void usb_pcap_ctrl(USBPacket *p, bool setup) in usb_pcap_ctrl() argument
235 FILE *fp = p->ep->dev->pcap; in usb_pcap_ctrl()
241 do_usb_pcap_ctrl(fp, p, setup); in usb_pcap_ctrl()
244 void usb_pcap_data(USBPacket *p, bool setup) in usb_pcap_data() argument
246 FILE *fp = p->ep->dev->pcap; in usb_pcap_data()
252 do_usb_pcap_data(fp, p, setup); in usb_pcap_data()