7 struct usb_bus busses= usb_get_busses();
9 struct usb_device *dev;
10 for (bus=busses; bus; bus=bus->next) {
11 for (dev=bus->devices; dev; dev=dev->next) {
12 if (dev->descriptor.idVendor != 0x18b ||
13 dev->descriptor.idProduct != 0x123)
20 assert(dev->bNumConfigurations == 1);
21 assert(dev->config[0].bNumInterfaces == 2);
22 assert(dev->config[0].interface[0].
24 usb_dev_handle *dh= usb_open(dev);
25 int r= usb_claim_interface(dh, 0); assert(r>=0);
27 r= usb_set_configuration(dh, dev->config[0].bConfigurationValue);
30 usb_dev_handle *dh2= usb_open(dev);
31 int r= usb_claim_interface(dh, 1); assert(r>=0);
35 uint8_t cbuf[ sizeof(hbuf)/2 + 10 ];
40 if (!fgets(hbuf, sizeof(hbuf), stdin)) break;
47 if (isspace((unsigned char)c)) continue;
48 if (!c) die("bad line");
51 if (!c) die("bad line");
55 o= strtoul(h3, &ep, 16);
56 if (ep != h3+2) { fprintf(stderr,"bad hex\n"); goto n; }
58 r= usb_control_msg(dh,