diff options
-rw-r--r-- | libusb/descriptor.c | 110 | ||||
-rw-r--r-- | libusb/libusbi.h | 14 | ||||
-rw-r--r-- | libusb/os/darwin_usb.c | 13 | ||||
-rw-r--r-- | libusb/os/haiku_usb_raw.cpp | 10 | ||||
-rw-r--r-- | libusb/os/linux_usbfs.c | 14 | ||||
-rw-r--r-- | libusb/os/netbsd_usb.c | 14 | ||||
-rw-r--r-- | libusb/os/null_usb.c | 4 | ||||
-rw-r--r-- | libusb/os/openbsd_usb.c | 14 | ||||
-rw-r--r-- | libusb/os/sunos_usb.c | 14 | ||||
-rw-r--r-- | libusb/os/windows_common.c | 10 | ||||
-rw-r--r-- | libusb/version_nano.h | 2 |
11 files changed, 77 insertions, 142 deletions
diff --git a/libusb/descriptor.c b/libusb/descriptor.c index 95a6cd7..e4f376f 100644 --- a/libusb/descriptor.c +++ b/libusb/descriptor.c @@ -30,10 +30,7 @@ * for detected devices */ -/* set host_endian if the w values are already in host endian format, - * as opposed to bus endian. */ -static void parse_descriptor(const unsigned char *source, const char *descriptor, - void *dest, int host_endian) +static void parse_descriptor(const unsigned char *source, const char *descriptor, void *dest) { const unsigned char *sp = source; unsigned char *dp = dest; @@ -49,25 +46,17 @@ static void parse_descriptor(const unsigned char *source, const char *descriptor case 'w': /* 16-bit word, convert from little endian to CPU */ dp += ((uintptr_t)dp & 1); /* Align to word boundary */ - if (host_endian) { - memcpy(dp, sp, 2); - } else { - w = (uint16_t)((sp[1] << 8) | sp[0]); - *((uint16_t *)dp) = w; - } + w = (uint16_t)((sp[1] << 8) | sp[0]); + *((uint16_t *)dp) = w; sp += 2; dp += 2; break; case 'd': /* 32-bit word, convert from little endian to CPU */ dp += ((uintptr_t)dp & 1); /* Align to word boundary */ - if (host_endian) { - memcpy(dp, sp, 4); - } else { - d = (uint32_t)((sp[3] << 24) | (sp[2] << 16) | - (sp[1] << 8) | sp[0]); - *((uint32_t *)dp) = d; - } + d = (uint32_t)((sp[3] << 24) | (sp[2] << 16) | + (sp[1] << 8) | sp[0]); + *((uint32_t *)dp) = d; sp += 4; dp += 4; break; @@ -86,8 +75,7 @@ static void clear_endpoint(struct libusb_endpoint_descriptor *endpoint) } static int parse_endpoint(struct libusb_context *ctx, - struct libusb_endpoint_descriptor *endpoint, unsigned char *buffer, - int size, int host_endian) + struct libusb_endpoint_descriptor *endpoint, unsigned char *buffer, int size) { struct usbi_descriptor_header *header; unsigned char *extra; @@ -112,9 +100,9 @@ static int parse_endpoint(struct libusb_context *ctx, return parsed; } if (header->bLength >= LIBUSB_DT_ENDPOINT_AUDIO_SIZE) - parse_descriptor(buffer, "bbbbwbbb", endpoint, host_endian); + parse_descriptor(buffer, "bbbbwbbb", endpoint); else if (header->bLength >= LIBUSB_DT_ENDPOINT_SIZE) - parse_descriptor(buffer, "bbbbwb", endpoint, host_endian); + parse_descriptor(buffer, "bbbbwb", endpoint); else { usbi_err(ctx, "invalid endpoint bLength (%d)", header->bLength); return LIBUSB_ERROR_IO; @@ -198,8 +186,7 @@ static void clear_interface(struct libusb_interface *usb_interface) } static int parse_interface(libusb_context *ctx, - struct libusb_interface *usb_interface, unsigned char *buffer, int size, - int host_endian) + struct libusb_interface *usb_interface, unsigned char *buffer, int size) { int i; int len; @@ -225,7 +212,7 @@ static int parse_interface(libusb_context *ctx, usb_interface->altsetting = altsetting; ifp = altsetting + usb_interface->num_altsetting; - parse_descriptor(buffer, "bbbbbbbbb", ifp, 0); + parse_descriptor(buffer, "bbbbbbbbb", ifp); if (ifp->bDescriptorType != LIBUSB_DT_INTERFACE) { usbi_err(ctx, "unexpected descriptor %x (expected %x)", ifp->bDescriptorType, LIBUSB_DT_INTERFACE); @@ -314,8 +301,7 @@ static int parse_interface(libusb_context *ctx, } for (i = 0; i < ifp->bNumEndpoints; i++) { - r = parse_endpoint(ctx, endpoint + i, buffer, size, - host_endian); + r = parse_endpoint(ctx, endpoint + i, buffer, size); if (r < 0) goto err; if (r == 0) { @@ -356,8 +342,7 @@ static void clear_configuration(struct libusb_config_descriptor *config) } static int parse_configuration(struct libusb_context *ctx, - struct libusb_config_descriptor *config, unsigned char *buffer, - int size, int host_endian) + struct libusb_config_descriptor *config, unsigned char *buffer, int size) { int i; int r; @@ -370,7 +355,7 @@ static int parse_configuration(struct libusb_context *ctx, return LIBUSB_ERROR_IO; } - parse_descriptor(buffer, "bbwbbbbb", config, host_endian); + parse_descriptor(buffer, "bbwbbbbb", config); if (config->bDescriptorType != LIBUSB_DT_CONFIG) { usbi_err(ctx, "unexpected descriptor %x (expected %x)", config->bDescriptorType, LIBUSB_DT_CONFIG); @@ -453,7 +438,7 @@ static int parse_configuration(struct libusb_context *ctx, } } - r = parse_interface(ctx, usb_interface + i, buffer, size, host_endian); + r = parse_interface(ctx, usb_interface + i, buffer, size); if (r < 0) goto err; if (r == 0) { @@ -473,8 +458,7 @@ err: } static int raw_desc_to_config(struct libusb_context *ctx, - unsigned char *buf, int size, int host_endian, - struct libusb_config_descriptor **config) + unsigned char *buf, int size, struct libusb_config_descriptor **config) { struct libusb_config_descriptor *_config = malloc(sizeof(*_config)); int r; @@ -482,7 +466,7 @@ static int raw_desc_to_config(struct libusb_context *ctx, if (!_config) return LIBUSB_ERROR_NO_MEM; - r = parse_configuration(ctx, _config, buf, size, host_endian); + r = parse_configuration(ctx, _config, buf, size); if (r < 0) { usbi_err(ctx, "parse_configuration failed with error %d", r); free(_config); @@ -555,11 +539,9 @@ int API_EXPORTED libusb_get_active_config_descriptor(libusb_device *dev, struct libusb_config_descriptor _config; unsigned char tmp[LIBUSB_DT_CONFIG_SIZE]; unsigned char *buf = NULL; - int host_endian = 0; int r; - r = usbi_backend.get_active_config_descriptor(dev, tmp, - LIBUSB_DT_CONFIG_SIZE, &host_endian); + r = usbi_backend.get_active_config_descriptor(dev, tmp, sizeof(tmp)); if (r < 0) return r; if (r < LIBUSB_DT_CONFIG_SIZE) { @@ -568,15 +550,14 @@ int API_EXPORTED libusb_get_active_config_descriptor(libusb_device *dev, return LIBUSB_ERROR_IO; } - parse_descriptor(tmp, "bbw", &_config, host_endian); + parse_descriptor(tmp, "bbw", &_config); buf = malloc(_config.wTotalLength); if (!buf) return LIBUSB_ERROR_NO_MEM; - r = usbi_backend.get_active_config_descriptor(dev, buf, - _config.wTotalLength, &host_endian); + r = usbi_backend.get_active_config_descriptor(dev, buf, _config.wTotalLength); if (r >= 0) - r = raw_desc_to_config(dev->ctx, buf, r, host_endian, config); + r = raw_desc_to_config(dev->ctx, buf, r, config); free(buf); return r; @@ -604,15 +585,13 @@ int API_EXPORTED libusb_get_config_descriptor(libusb_device *dev, struct libusb_config_descriptor _config; unsigned char tmp[LIBUSB_DT_CONFIG_SIZE]; unsigned char *buf = NULL; - int host_endian = 0; int r; usbi_dbg("index %d", config_index); if (config_index >= dev->device_descriptor.bNumConfigurations) return LIBUSB_ERROR_NOT_FOUND; - r = usbi_backend.get_config_descriptor(dev, config_index, tmp, - LIBUSB_DT_CONFIG_SIZE, &host_endian); + r = usbi_backend.get_config_descriptor(dev, config_index, tmp, sizeof(tmp)); if (r < 0) return r; if (r < LIBUSB_DT_CONFIG_SIZE) { @@ -621,15 +600,14 @@ int API_EXPORTED libusb_get_config_descriptor(libusb_device *dev, return LIBUSB_ERROR_IO; } - parse_descriptor(tmp, "bbw", &_config, host_endian); + parse_descriptor(tmp, "bbw", &_config); buf = malloc(_config.wTotalLength); if (!buf) return LIBUSB_ERROR_NO_MEM; - r = usbi_backend.get_config_descriptor(dev, config_index, buf, - _config.wTotalLength, &host_endian); + r = usbi_backend.get_config_descriptor(dev, config_index, buf, _config.wTotalLength); if (r >= 0) - r = raw_desc_to_config(dev->ctx, buf, r, host_endian, config); + r = raw_desc_to_config(dev->ctx, buf, r, config); free(buf); return r; @@ -648,9 +626,8 @@ int usbi_get_config_index_by_value(struct libusb_device *dev, usbi_dbg("value %d", bConfigurationValue); for (i = 0; i < dev->device_descriptor.bNumConfigurations; i++) { unsigned char tmp[6]; - int host_endian; - int r = usbi_backend.get_config_descriptor(dev, i, tmp, sizeof(tmp), - &host_endian); + int r = usbi_backend.get_config_descriptor(dev, i, tmp, sizeof(tmp)); + if (r < 0) { *idx = -1; return r; @@ -685,15 +662,15 @@ int usbi_get_config_index_by_value(struct libusb_device *dev, int API_EXPORTED libusb_get_config_descriptor_by_value(libusb_device *dev, uint8_t bConfigurationValue, struct libusb_config_descriptor **config) { - int r, idx, host_endian; + int r, idx; unsigned char *buf = NULL; if (usbi_backend.get_config_descriptor_by_value) { r = usbi_backend.get_config_descriptor_by_value(dev, - bConfigurationValue, &buf, &host_endian); + bConfigurationValue, &buf); if (r < 0) return r; - return raw_desc_to_config(dev->ctx, buf, r, host_endian, config); + return raw_desc_to_config(dev->ctx, buf, r, config); } r = usbi_get_config_index_by_value(dev, bConfigurationValue, &idx); @@ -767,7 +744,7 @@ int API_EXPORTED libusb_get_ss_endpoint_companion_descriptor( *ep_comp = malloc(sizeof(**ep_comp)); if (*ep_comp == NULL) return LIBUSB_ERROR_NO_MEM; - parse_descriptor(buffer, "bbbbw", *ep_comp, 0); + parse_descriptor(buffer, "bbbbw", *ep_comp); return LIBUSB_SUCCESS; } return LIBUSB_ERROR_NOT_FOUND; @@ -789,7 +766,7 @@ void API_EXPORTED libusb_free_ss_endpoint_companion_descriptor( static int parse_bos(struct libusb_context *ctx, struct libusb_bos_descriptor **bos, - unsigned char *buffer, int size, int host_endian) + unsigned char *buffer, int size) { struct libusb_bos_descriptor bos_header, *_bos; struct libusb_bos_dev_capability_descriptor dev_cap; @@ -801,7 +778,7 @@ static int parse_bos(struct libusb_context *ctx, return LIBUSB_ERROR_IO; } - parse_descriptor(buffer, "bbwb", &bos_header, host_endian); + parse_descriptor(buffer, "bbwb", &bos_header); if (bos_header.bDescriptorType != LIBUSB_DT_BOS) { usbi_err(ctx, "unexpected descriptor %x (expected %x)", bos_header.bDescriptorType, LIBUSB_DT_BOS); @@ -822,7 +799,7 @@ static int parse_bos(struct libusb_context *ctx, if (!_bos) return LIBUSB_ERROR_NO_MEM; - parse_descriptor(buffer, "bbwb", _bos, host_endian); + parse_descriptor(buffer, "bbwb", _bos); buffer += bos_header.bLength; size -= bos_header.bLength; @@ -833,7 +810,7 @@ static int parse_bos(struct libusb_context *ctx, size, LIBUSB_DT_DEVICE_CAPABILITY_SIZE); break; } - parse_descriptor(buffer, "bbb", &dev_cap, host_endian); + parse_descriptor(buffer, "bbb", &dev_cap); if (dev_cap.bDescriptorType != LIBUSB_DT_DEVICE_CAPABILITY) { usbi_warn(ctx, "unexpected descriptor %x (expected %x)", dev_cap.bDescriptorType, LIBUSB_DT_DEVICE_CAPABILITY); @@ -883,7 +860,6 @@ int API_EXPORTED libusb_get_bos_descriptor(libusb_device_handle *dev_handle, struct libusb_bos_descriptor _bos; uint8_t bos_header[LIBUSB_DT_BOS_SIZE] = {0}; unsigned char *bos_data = NULL; - const int host_endian = 0; int r; /* Read the BOS. This generates 2 requests on the bus, @@ -901,7 +877,7 @@ int API_EXPORTED libusb_get_bos_descriptor(libusb_device_handle *dev_handle, return LIBUSB_ERROR_IO; } - parse_descriptor(bos_header, "bbwb", &_bos, host_endian); + parse_descriptor(bos_header, "bbwb", &_bos); usbi_dbg("found BOS descriptor: size %d bytes, %d capabilities", _bos.wTotalLength, _bos.bNumDeviceCaps); bos_data = calloc(_bos.wTotalLength, 1); @@ -911,7 +887,7 @@ int API_EXPORTED libusb_get_bos_descriptor(libusb_device_handle *dev_handle, r = libusb_get_descriptor(dev_handle, LIBUSB_DT_BOS, 0, bos_data, _bos.wTotalLength); if (r >= 0) - r = parse_bos(HANDLE_CTX(dev_handle), bos, bos_data, r, host_endian); + r = parse_bos(HANDLE_CTX(dev_handle), bos, bos_data, r); else usbi_err(HANDLE_CTX(dev_handle), "failed to read BOS (%d)", r); @@ -957,7 +933,6 @@ int API_EXPORTED libusb_get_usb_2_0_extension_descriptor( struct libusb_usb_2_0_extension_descriptor **usb_2_0_extension) { struct libusb_usb_2_0_extension_descriptor *_usb_2_0_extension; - const int host_endian = 0; if (dev_cap->bDevCapabilityType != LIBUSB_BT_USB_2_0_EXTENSION) { usbi_err(ctx, "unexpected bDevCapabilityType %x (expected %x)", @@ -975,8 +950,7 @@ int API_EXPORTED libusb_get_usb_2_0_extension_descriptor( if (!_usb_2_0_extension) return LIBUSB_ERROR_NO_MEM; - parse_descriptor((unsigned char *)dev_cap, "bbbd", - _usb_2_0_extension, host_endian); + parse_descriptor((unsigned char *)dev_cap, "bbbd", _usb_2_0_extension); *usb_2_0_extension = _usb_2_0_extension; return LIBUSB_SUCCESS; @@ -1015,7 +989,6 @@ int API_EXPORTED libusb_get_ss_usb_device_capability_descriptor( struct libusb_ss_usb_device_capability_descriptor **ss_usb_device_cap) { struct libusb_ss_usb_device_capability_descriptor *_ss_usb_device_cap; - const int host_endian = 0; if (dev_cap->bDevCapabilityType != LIBUSB_BT_SS_USB_DEVICE_CAPABILITY) { usbi_err(ctx, "unexpected bDevCapabilityType %x (expected %x)", @@ -1033,8 +1006,7 @@ int API_EXPORTED libusb_get_ss_usb_device_capability_descriptor( if (!_ss_usb_device_cap) return LIBUSB_ERROR_NO_MEM; - parse_descriptor((unsigned char *)dev_cap, "bbbbwbbw", - _ss_usb_device_cap, host_endian); + parse_descriptor((unsigned char *)dev_cap, "bbbbwbbw", _ss_usb_device_cap); *ss_usb_device_cap = _ss_usb_device_cap; return LIBUSB_SUCCESS; @@ -1073,7 +1045,6 @@ int API_EXPORTED libusb_get_container_id_descriptor(struct libusb_context *ctx, struct libusb_container_id_descriptor **container_id) { struct libusb_container_id_descriptor *_container_id; - const int host_endian = 0; if (dev_cap->bDevCapabilityType != LIBUSB_BT_CONTAINER_ID) { usbi_err(ctx, "unexpected bDevCapabilityType %x (expected %x)", @@ -1091,8 +1062,7 @@ int API_EXPORTED libusb_get_container_id_descriptor(struct libusb_context *ctx, if (!_container_id) return LIBUSB_ERROR_NO_MEM; - parse_descriptor((unsigned char *)dev_cap, "bbbbu", - _container_id, host_endian); + parse_descriptor((unsigned char *)dev_cap, "bbbbu", _container_id); *container_id = _container_id; return LIBUSB_SUCCESS; diff --git a/libusb/libusbi.h b/libusb/libusbi.h index a0bb1b4..9d1528f 100644 --- a/libusb/libusbi.h +++ b/libusb/libusbi.h @@ -887,8 +887,7 @@ struct usbi_os_backend { * return an error code. * * This function is expected to return the descriptor in bus-endian format - * (LE). If it returns the multi-byte values in host-endian format, - * set the host_endian output parameter to "1". + * (LE). * * Return: * - 0 on success @@ -896,7 +895,7 @@ struct usbi_os_backend { * - another LIBUSB_ERROR code on other failure */ int (*get_active_config_descriptor)(struct libusb_device *device, - unsigned char *buffer, size_t len, int *host_endian); + unsigned char *buffer, size_t len); /* Get a specific configuration descriptor for a device. * @@ -914,14 +913,12 @@ struct usbi_os_backend { * return an error code. * * This function is expected to return the descriptor in bus-endian format - * (LE). If it returns the multi-byte values in host-endian format, - * set the host_endian output parameter to "1". + * (LE). * * Return the length read on success or a LIBUSB_ERROR code on failure. */ int (*get_config_descriptor)(struct libusb_device *device, - uint8_t config_index, unsigned char *buffer, size_t len, - int *host_endian); + uint8_t config_index, unsigned char *buffer, size_t len); /* Like get_config_descriptor but then by bConfigurationValue instead * of by index. @@ -936,8 +933,7 @@ struct usbi_os_backend { * or a LIBUSB_ERROR code on failure. */ int (*get_config_descriptor_by_value)(struct libusb_device *device, - uint8_t bConfigurationValue, unsigned char **buffer, - int *host_endian); + uint8_t bConfigurationValue, unsigned char **buffer); /* Get the bConfigurationValue for the active configuration for a device. * Optional. This should only be implemented if you can retrieve it from diff --git a/libusb/os/darwin_usb.c b/libusb/os/darwin_usb.c index 9c639c1..bbac912 100644 --- a/libusb/os/darwin_usb.c +++ b/libusb/os/darwin_usb.c @@ -75,7 +75,7 @@ static const char *darwin_device_class = kIOUSBDeviceClassName; /* async event thread */ static pthread_t libusb_darwin_at; -static int darwin_get_config_descriptor(struct libusb_device *dev, uint8_t config_index, unsigned char *buffer, size_t len, int *host_endian); +static int darwin_get_config_descriptor(struct libusb_device *dev, uint8_t config_index, unsigned char *buffer, size_t len); static int darwin_claim_interface(struct libusb_device_handle *dev_handle, int iface); static int darwin_release_interface(struct libusb_device_handle *dev_handle, int iface); static int darwin_reset_device(struct libusb_device_handle *dev_handle); @@ -667,8 +667,6 @@ static int darwin_get_device_descriptor(struct libusb_device *dev, unsigned char /* return cached copy */ memmove (buffer, &(priv->dev_descriptor), LIBUSB_DT_DEVICE_SIZE); - *host_endian = 0; - return LIBUSB_SUCCESS; } @@ -694,7 +692,7 @@ static int get_configuration_index (struct libusb_device *dev, int config_value) return LIBUSB_ERROR_NOT_FOUND; } -static int darwin_get_active_config_descriptor(struct libusb_device *dev, unsigned char *buffer, size_t len, int *host_endian) { +static int darwin_get_active_config_descriptor(struct libusb_device *dev, unsigned char *buffer, size_t len) { struct darwin_cached_device *priv = DARWIN_CACHED_DEVICE(dev); int config_index; @@ -706,10 +704,10 @@ static int darwin_get_active_config_descriptor(struct libusb_device *dev, unsign return config_index; assert(config_index >= 0 && config_index <= UINT8_MAX); - return darwin_get_config_descriptor (dev, (UInt8)config_index, buffer, len, host_endian); + return darwin_get_config_descriptor (dev, (UInt8)config_index, buffer, len); } -static int darwin_get_config_descriptor(struct libusb_device *dev, uint8_t config_index, unsigned char *buffer, size_t len, int *host_endian) { +static int darwin_get_config_descriptor(struct libusb_device *dev, uint8_t config_index, unsigned char *buffer, size_t len) { struct darwin_cached_device *priv = DARWIN_CACHED_DEVICE(dev); IOUSBConfigurationDescriptorPtr desc; IOReturn kresult; @@ -725,9 +723,6 @@ static int darwin_get_config_descriptor(struct libusb_device *dev, uint8_t confi len = libusb_le16_to_cpu(desc->wTotalLength); memmove (buffer, desc, len); - - /* GetConfigurationDescriptorPtr returns the descriptor in USB bus order */ - *host_endian = 0; } ret = darwin_to_libusb (kresult); diff --git a/libusb/os/haiku_usb_raw.cpp b/libusb/os/haiku_usb_raw.cpp index 087b227..e0a8c9a 100644 --- a/libusb/os/haiku_usb_raw.cpp +++ b/libusb/os/haiku_usb_raw.cpp @@ -30,7 +30,7 @@ USBRoster gUsbRoster; int32 gInitCount = 0; static int haiku_get_config_descriptor(struct libusb_device *, uint8_t, - unsigned char *, size_t, int *); + unsigned char *, size_t); static int haiku_init(struct libusb_context *ctx) @@ -79,19 +79,18 @@ haiku_get_device_descriptor(struct libusb_device *device, unsigned char *buffer, { USBDevice *dev = *((USBDevice **)usbi_get_device_priv(device)); memcpy(buffer, dev->Descriptor(), LIBUSB_DT_DEVICE_SIZE); - *host_endian = 0; return LIBUSB_SUCCESS; } static int -haiku_get_active_config_descriptor(struct libusb_device *device, unsigned char *buffer, size_t len, int *host_endian) +haiku_get_active_config_descriptor(struct libusb_device *device, unsigned char *buffer, size_t len) { USBDevice *dev = *((USBDevice **)usbi_get_device_priv(device)); - return haiku_get_config_descriptor(device, dev->ActiveConfigurationIndex(), buffer, len, host_endian); + return haiku_get_config_descriptor(device, dev->ActiveConfigurationIndex(), buffer, len); } static int -haiku_get_config_descriptor(struct libusb_device *device, uint8_t config_index, unsigned char *buffer, size_t len, int *host_endian) +haiku_get_config_descriptor(struct libusb_device *device, uint8_t config_index, unsigned char *buffer, size_t len) { USBDevice *dev = *((USBDevice **)usbi_get_device_priv(device)); const usb_configuration_descriptor *config = dev->ConfigurationDescriptor(config_index); @@ -103,7 +102,6 @@ haiku_get_config_descriptor(struct libusb_device *device, uint8_t config_index, len = config->total_length; } memcpy(buffer, config, len); - *host_endian = 0; return len; } diff --git a/libusb/os/linux_usbfs.c b/libusb/os/linux_usbfs.c index a1662e4..435a38b 100644 --- a/libusb/os/linux_usbfs.c +++ b/libusb/os/linux_usbfs.c @@ -694,7 +694,7 @@ static int seek_to_next_config(struct libusb_device *dev, } static int op_get_config_descriptor_by_value(struct libusb_device *dev, - uint8_t value, unsigned char **buffer, int *host_endian) + uint8_t value, unsigned char **buffer) { struct linux_device_priv *priv = usbi_get_device_priv(dev); unsigned char *descriptors = priv->descriptors; @@ -702,8 +702,6 @@ static int op_get_config_descriptor_by_value(struct libusb_device *dev, struct usbi_configuration_descriptor *config; *buffer = NULL; - /* Unlike the device desc. config descs. are always in raw format */ - *host_endian = 0; /* Skip device header */ descriptors += LIBUSB_DT_DEVICE_SIZE; @@ -726,7 +724,7 @@ static int op_get_config_descriptor_by_value(struct libusb_device *dev, } static int op_get_active_config_descriptor(struct libusb_device *dev, - unsigned char *buffer, size_t len, int *host_endian) + unsigned char *buffer, size_t len) { struct linux_device_priv *priv = usbi_get_device_priv(dev); int r, config; @@ -743,8 +741,7 @@ static int op_get_active_config_descriptor(struct libusb_device *dev, if (config == -1) return LIBUSB_ERROR_NOT_FOUND; - r = op_get_config_descriptor_by_value(dev, config, &config_desc, - host_endian); + r = op_get_config_descriptor_by_value(dev, config, &config_desc); if (r < 0) return r; @@ -754,15 +751,12 @@ static int op_get_active_config_descriptor(struct libusb_device *dev, } static int op_get_config_descriptor(struct libusb_device *dev, - uint8_t config_index, unsigned char *buffer, size_t len, int *host_endian) + uint8_t config_index, unsigned char *buffer, size_t len) { struct linux_device_priv *priv = usbi_get_device_priv(dev); unsigned char *descriptors = priv->descriptors; int i, r, size = priv->descriptors_len; - /* Unlike the device desc. config descs. are always in raw format */ - *host_endian = 0; - /* Skip device header */ descriptors += LIBUSB_DT_DEVICE_SIZE; size -= LIBUSB_DT_DEVICE_SIZE; diff --git a/libusb/os/netbsd_usb.c b/libusb/os/netbsd_usb.c index 49f4439..dab7692 100644 --- a/libusb/os/netbsd_usb.c +++ b/libusb/os/netbsd_usb.c @@ -55,9 +55,9 @@ static void netbsd_close(struct libusb_device_handle *); static int netbsd_get_device_descriptor(struct libusb_device *, unsigned char *, int *); static int netbsd_get_active_config_descriptor(struct libusb_device *, - unsigned char *, size_t, int *); + unsigned char *, size_t); static int netbsd_get_config_descriptor(struct libusb_device *, uint8_t, - unsigned char *, size_t, int *); + unsigned char *, size_t); static int netbsd_get_configuration(struct libusb_device_handle *, int *); static int netbsd_set_configuration(struct libusb_device_handle *, int); @@ -230,14 +230,12 @@ netbsd_get_device_descriptor(struct libusb_device *dev, unsigned char *buf, memcpy(buf, &dpriv->ddesc, LIBUSB_DT_DEVICE_SIZE); - *host_endian = 0; - return (LIBUSB_SUCCESS); } int netbsd_get_active_config_descriptor(struct libusb_device *dev, - unsigned char *buf, size_t len, int *host_endian) + unsigned char *buf, size_t len) { struct device_priv *dpriv = usbi_get_device_priv(dev); usb_config_descriptor_t *ucd; @@ -249,14 +247,12 @@ netbsd_get_active_config_descriptor(struct libusb_device *dev, memcpy(buf, dpriv->cdesc, len); - *host_endian = 0; - return len; } int netbsd_get_config_descriptor(struct libusb_device *dev, uint8_t idx, - unsigned char *buf, size_t len, int *host_endian) + unsigned char *buf, size_t len) { struct device_priv *dpriv = usbi_get_device_priv(dev); struct usb_full_desc ufd; @@ -287,8 +283,6 @@ netbsd_get_config_descriptor(struct libusb_device *dev, uint8_t idx, if (dpriv->fd < 0) close(fd); - *host_endian = 0; - return len; } diff --git a/libusb/os/null_usb.c b/libusb/os/null_usb.c index 7893b0c..bb6d981 100644 --- a/libusb/os/null_usb.c +++ b/libusb/os/null_usb.c @@ -45,14 +45,14 @@ null_get_device_descriptor(struct libusb_device *dev, unsigned char *buf, static int null_get_active_config_descriptor(struct libusb_device *dev, - unsigned char *buf, size_t len, int *host_endian) + unsigned char *buf, size_t len) { return LIBUSB_ERROR_NOT_SUPPORTED; } static int null_get_config_descriptor(struct libusb_device *dev, uint8_t idx, - unsigned char *buf, size_t len, int *host_endian) + unsigned char *buf, size_t len) { return LIBUSB_ERROR_NOT_SUPPORTED; } diff --git a/libusb/os/openbsd_usb.c b/libusb/os/openbsd_usb.c index 55db699..e10d656 100644 --- a/libusb/os/openbsd_usb.c +++ b/libusb/os/openbsd_usb.c @@ -55,9 +55,9 @@ static void obsd_close(struct libusb_device_handle *); static int obsd_get_device_descriptor(struct libusb_device *, unsigned char *, int *); static int obsd_get_active_config_descriptor(struct libusb_device *, - unsigned char *, size_t, int *); + unsigned char *, size_t); static int obsd_get_config_descriptor(struct libusb_device *, uint8_t, - unsigned char *, size_t, int *); + unsigned char *, size_t); static int obsd_get_configuration(struct libusb_device_handle *, int *); static int obsd_set_configuration(struct libusb_device_handle *, int); @@ -265,14 +265,12 @@ obsd_get_device_descriptor(struct libusb_device *dev, unsigned char *buf, memcpy(buf, &dpriv->ddesc, LIBUSB_DT_DEVICE_SIZE); - *host_endian = 0; - return (LIBUSB_SUCCESS); } int obsd_get_active_config_descriptor(struct libusb_device *dev, - unsigned char *buf, size_t len, int *host_endian) + unsigned char *buf, size_t len) { struct device_priv *dpriv = usbi_get_device_priv(dev); usb_config_descriptor_t *ucd = (usb_config_descriptor_t *)dpriv->cdesc; @@ -283,14 +281,12 @@ obsd_get_active_config_descriptor(struct libusb_device *dev, memcpy(buf, dpriv->cdesc, len); - *host_endian = 0; - return (len); } int obsd_get_config_descriptor(struct libusb_device *dev, uint8_t idx, - unsigned char *buf, size_t len, int *host_endian) + unsigned char *buf, size_t len) { struct usb_device_fdesc udf; int fd, err; @@ -313,8 +309,6 @@ obsd_get_config_descriptor(struct libusb_device *dev, uint8_t idx, } close(fd); - *host_endian = 0; - return (len); } diff --git a/libusb/os/sunos_usb.c b/libusb/os/sunos_usb.c index bc66859..0d8198f 100644 --- a/libusb/os/sunos_usb.c +++ b/libusb/os/sunos_usb.c @@ -63,11 +63,11 @@ static int sunos_get_device_list(struct libusb_context *, static int sunos_open(struct libusb_device_handle *); static void sunos_close(struct libusb_device_handle *); static int sunos_get_device_descriptor(struct libusb_device *, - uint8_t*, int *); + uint8_t *, int *); static int sunos_get_active_config_descriptor(struct libusb_device *, - uint8_t*, size_t, int *); + uint8_t *, size_t); static int sunos_get_config_descriptor(struct libusb_device *, uint8_t, - uint8_t*, size_t, int *); + uint8_t *, size_t); static int sunos_get_configuration(struct libusb_device_handle *, int *); static int sunos_set_configuration(struct libusb_device_handle *, int); static int sunos_claim_interface(struct libusb_device_handle *, int); @@ -1026,14 +1026,13 @@ sunos_get_device_descriptor(struct libusb_device *dev, uint8_t *buf, sunos_dev_priv_t *dpriv = usbi_get_device_priv(dev); memcpy(buf, &dpriv->dev_descr, LIBUSB_DT_DEVICE_SIZE); - *host_endian = 0; return (LIBUSB_SUCCESS); } int sunos_get_active_config_descriptor(struct libusb_device *dev, - uint8_t *buf, size_t len, int *host_endian) + uint8_t *buf, size_t len) { sunos_dev_priv_t *dpriv = usbi_get_device_priv(dev); struct libusb_config_descriptor *cfg; @@ -1070,7 +1069,6 @@ sunos_get_active_config_descriptor(struct libusb_device *dev, cfg = (struct libusb_config_descriptor *)dpriv->raw_cfgdescr; len = MIN(len, libusb_le16_to_cpu(cfg->wTotalLength)); memcpy(buf, dpriv->raw_cfgdescr, len); - *host_endian = 0; usbi_dbg("path:%s len %" PRIuPTR, dpriv->phypath, len); return (len); @@ -1078,10 +1076,10 @@ sunos_get_active_config_descriptor(struct libusb_device *dev, int sunos_get_config_descriptor(struct libusb_device *dev, uint8_t idx, - uint8_t *buf, size_t len, int *host_endian) + uint8_t *buf, size_t len) { /* XXX */ - return(sunos_get_active_config_descriptor(dev, buf, len, host_endian)); + return(sunos_get_active_config_descriptor(dev, buf, len)); } int diff --git a/libusb/os/windows_common.c b/libusb/os/windows_common.c index 418b6b7..3d1175d 100644 --- a/libusb/os/windows_common.c +++ b/libusb/os/windows_common.c @@ -602,31 +602,27 @@ static int windows_get_device_descriptor(struct libusb_device *dev, unsigned char *buffer, int *host_endian) { struct windows_context_priv *priv = usbi_get_context_priv(DEVICE_CTX(dev)); - *host_endian = 0; return priv->backend->get_device_descriptor(dev, buffer); } static int windows_get_active_config_descriptor(struct libusb_device *dev, - unsigned char *buffer, size_t len, int *host_endian) + unsigned char *buffer, size_t len) { struct windows_context_priv *priv = usbi_get_context_priv(DEVICE_CTX(dev)); - *host_endian = 0; return priv->backend->get_active_config_descriptor(dev, buffer, len); } static int windows_get_config_descriptor(struct libusb_device *dev, - uint8_t config_index, unsigned char *buffer, size_t len, int *host_endian) + uint8_t config_index, unsigned char *buffer, size_t len) { struct windows_context_priv *priv = usbi_get_context_priv(DEVICE_CTX(dev)); - *host_endian = 0; return priv->backend->get_config_descriptor(dev, config_index, buffer, len); } static int windows_get_config_descriptor_by_value(struct libusb_device *dev, - uint8_t bConfigurationValue, unsigned char **buffer, int *host_endian) + uint8_t bConfigurationValue, unsigned char **buffer) { struct windows_context_priv *priv = usbi_get_context_priv(DEVICE_CTX(dev)); - *host_endian = 0; return priv->backend->get_config_descriptor_by_value(dev, bConfigurationValue, buffer); } diff --git a/libusb/version_nano.h b/libusb/version_nano.h index 88eb388..f2e5eaa 100644 --- a/libusb/version_nano.h +++ b/libusb/version_nano.h @@ -1 +1 @@ -#define LIBUSB_NANO 11505 +#define LIBUSB_NANO 11506 |