X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=hardware%2Fcommon%2Fusb.c;h=62db385b273015dda825d44ddb25ff829f21a6d4;hb=85ca913cae0d9514949db8f638ecb4ef7bca706e;hp=6e678fdb401d1d681000fc3a6e273c7374656957;hpb=3544f848e0d7f67af8e11ce7ec344b34cd797df3;p=libsigrok.git diff --git a/hardware/common/usb.c b/hardware/common/usb.c index 6e678fdb..62db385b 100644 --- a/hardware/common/usb.c +++ b/hardware/common/usb.c @@ -29,10 +29,6 @@ #define CONN_USB_VIDPID "^([0-9a-z]{4})\\.([0-9a-z]{4})$" #define CONN_USB_BUSADDR "^(\\d+)\\.(\\d+)$" -/* Some USBTMC-specific enums, as defined in the USBTMC standard. */ -#define SUBCLASS_USBTMC 0x03 -#define USBTMC_USB488 0x01 - #define LOG_PREFIX "usb" /** @@ -135,63 +131,6 @@ SR_PRIV GSList *sr_usb_find(libusb_context *usb_ctx, const char *conn) return devices; } -/** - * Find USB devices supporting the USBTMC class - * - * @param usb_ctx libusb context to use while scanning. - * - * @return A GSList of struct sr_usb_dev_inst, with bus and address fields - * indicating devices with USBTMC support. - */ -SR_PRIV GSList *sr_usb_find_usbtmc(libusb_context *usb_ctx) -{ - struct sr_usb_dev_inst *usb; - struct libusb_device **devlist; - struct libusb_device_descriptor des; - struct libusb_config_descriptor *confdes; - const struct libusb_interface_descriptor *intfdes; - GSList *devices; - int confidx, intfidx, ret, i; - - devices = NULL; - libusb_get_device_list(usb_ctx, &devlist); - for (i = 0; devlist[i]; i++) { - if ((ret = libusb_get_device_descriptor(devlist[i], &des))) { - sr_err("Failed to get device descriptor: %s.", - libusb_error_name(ret)); - continue; - } - - for (confidx = 0; confidx < des.bNumConfigurations; confidx++) { - if (libusb_get_config_descriptor(devlist[i], confidx, &confdes) != 0) { - sr_err("Failed to get configuration descriptor."); - break; - } - for (intfidx = 0; intfidx < confdes->bNumInterfaces; intfidx++) { - intfdes = confdes->interface[intfidx].altsetting; - if (intfdes->bInterfaceClass != LIBUSB_CLASS_APPLICATION - || intfdes->bInterfaceSubClass != SUBCLASS_USBTMC - || intfdes->bInterfaceProtocol != USBTMC_USB488) - continue; - sr_dbg("Found USBTMC device (VID:PID = %04x:%04x, bus.address = " - "%d.%d).", des.idVendor, des.idProduct, - libusb_get_bus_number(devlist[i]), - libusb_get_device_address(devlist[i])); - - usb = sr_usb_dev_inst_new(libusb_get_bus_number(devlist[i]), - libusb_get_device_address(devlist[i]), NULL); - devices = g_slist_append(devices, usb); - } - libusb_free_config_descriptor(confdes); - } - } - libusb_free_device_list(devlist, 1); - - sr_dbg("Found %d device(s).", g_slist_length(devices)); - - return devices; -} - SR_PRIV int sr_usb_open(libusb_context *usb_ctx, struct sr_usb_dev_inst *usb) { struct libusb_device **devlist; @@ -238,7 +177,7 @@ SR_PRIV int sr_usb_open(libusb_context *usb_ctx, struct sr_usb_dev_inst *usb) } #ifdef _WIN32 -SR_PRIV gpointer usb_thread(gpointer data) +static gpointer usb_thread(gpointer data) { struct sr_context *ctx = data; @@ -253,7 +192,7 @@ SR_PRIV gpointer usb_thread(gpointer data) return NULL; } -SR_PRIV int usb_callback(int fd, int revents, void *cb_data) +static int usb_callback(int fd, int revents, void *cb_data) { struct sr_context *ctx = cb_data; int ret; @@ -271,7 +210,7 @@ SR_PRIV int usb_callback(int fd, int revents, void *cb_data) #endif SR_PRIV int usb_source_add(struct sr_context *ctx, int timeout, - sr_receive_data_callback_t cb, void *cb_data) + sr_receive_data_callback cb, void *cb_data) { if (ctx->usb_source_present) { sr_err("A USB event source is already present.");