summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libusb/descriptor.c110
-rw-r--r--libusb/libusbi.h14
-rw-r--r--libusb/os/darwin_usb.c13
-rw-r--r--libusb/os/haiku_usb_raw.cpp10
-rw-r--r--libusb/os/linux_usbfs.c14
-rw-r--r--libusb/os/netbsd_usb.c14
-rw-r--r--libusb/os/null_usb.c4
-rw-r--r--libusb/os/openbsd_usb.c14
-rw-r--r--libusb/os/sunos_usb.c14
-rw-r--r--libusb/os/windows_common.c10
-rw-r--r--libusb/version_nano.h2
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