26 const uint16_t vids[],
const uint16_t pids[])
28 for (
unsigned i = 0; vids[i] && pids[i]; i++) {
29 if (dev->descriptor.idVendor == vids[i] &&
30 dev->descriptor.idProduct == pids[i])
37 struct usb_dev_handle **out)
42 struct usb_bus *
busses = usb_get_busses();
43 for (
struct usb_bus *bus = busses; bus; bus = bus->next) {
44 for (
struct usb_device *dev = bus->devices; dev; dev = dev->next) {
50 LOG_ERROR(
"usb_open() failed with %s", usb_strerror());
#define LOG_ERROR(expr ...)
int jtag_usb_open(const uint16_t vids[], const uint16_t pids[], struct usb_dev_handle **out)
static bool jtag_usb_match(struct usb_device *dev, const uint16_t vids[], const uint16_t pids[])