From fc5132ca74d4a6fc9a8ae942451bc107b25497be Mon Sep 17 00:00:00 2001 From: Chris Dickens Date: Fri, 17 Apr 2020 14:21:44 -0700 Subject: core: Change pointer type from 'unsigned char' to 'void' This removes the need for pointer casts when calling backend functions. Signed-off-by: Chris Dickens --- libusb/descriptor.c | 6 +++--- libusb/libusbi.h | 17 ++++++++--------- libusb/os/darwin_usb.c | 8 ++++---- libusb/os/haiku_usb_raw.cpp | 8 ++++---- libusb/os/linux_usbfs.c | 19 +++++++++---------- libusb/os/netbsd_usb.c | 23 ++++++++++------------- libusb/os/null_usb.c | 6 +++--- libusb/os/openbsd_usb.c | 25 +++++++++++-------------- libusb/os/sunos_usb.c | 12 ++++++------ libusb/os/windows_common.c | 8 ++++---- libusb/os/windows_common.h | 8 ++++---- libusb/os/windows_usbdk.c | 10 +++++----- libusb/os/windows_winusb.c | 21 ++++++++++----------- libusb/version_nano.h | 2 +- 14 files changed, 82 insertions(+), 91 deletions(-) diff --git a/libusb/descriptor.c b/libusb/descriptor.c index b65557f..c926544 100644 --- a/libusb/descriptor.c +++ b/libusb/descriptor.c @@ -489,8 +489,7 @@ int usbi_device_cache_descriptor(libusb_device *dev) { int r, host_endian = 0; - r = usbi_backend.get_device_descriptor(dev, (unsigned char *) &dev->device_descriptor, - &host_endian); + r = usbi_backend.get_device_descriptor(dev, &dev->device_descriptor, &host_endian); if (r < 0) return r; @@ -669,9 +668,10 @@ int API_EXPORTED libusb_get_config_descriptor_by_value(libusb_device *dev, uint8_t bConfigurationValue, struct libusb_config_descriptor **config) { int r, idx; - unsigned char *buf = NULL; if (usbi_backend.get_config_descriptor_by_value) { + void *buf; + r = usbi_backend.get_config_descriptor_by_value(dev, bConfigurationValue, &buf); if (r < 0) diff --git a/libusb/libusbi.h b/libusb/libusbi.h index 9d1528f..88db762 100644 --- a/libusb/libusbi.h +++ b/libusb/libusbi.h @@ -872,8 +872,8 @@ struct usbi_os_backend { * * Return 0 on success or a LIBUSB_ERROR code on failure. */ - int (*get_device_descriptor)(struct libusb_device *device, - unsigned char *buffer, int *host_endian); + int (*get_device_descriptor)(struct libusb_device *device, void *buffer, + int *host_endian); /* Get the ACTIVE configuration descriptor for a device. * @@ -895,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); + void *buffer, size_t len); /* Get a specific configuration descriptor for a device. * @@ -918,7 +918,7 @@ struct usbi_os_backend { * 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); + uint8_t config_index, void *buffer, size_t len); /* Like get_config_descriptor but then by bConfigurationValue instead * of by index. @@ -933,7 +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); + uint8_t bConfigurationValue, void **buffer); /* Get the bConfigurationValue for the active configuration for a device. * Optional. This should only be implemented if you can retrieve it from @@ -1067,12 +1067,11 @@ struct usbi_os_backend { /* Allocate persistent DMA memory for the given device, suitable for * zerocopy. May return NULL on failure. Optional to implement. */ - unsigned char *(*dev_mem_alloc)(struct libusb_device_handle *handle, - size_t len); + void *(*dev_mem_alloc)(struct libusb_device_handle *handle, size_t len); /* Free memory allocated by dev_mem_alloc. */ - int (*dev_mem_free)(struct libusb_device_handle *handle, - unsigned char *buffer, size_t len); + int (*dev_mem_free)(struct libusb_device_handle *handle, void *buffer, + size_t len); /* Determine if a kernel driver is active on an interface. Optional. * diff --git a/libusb/os/darwin_usb.c b/libusb/os/darwin_usb.c index bbac912..61722c0 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); +static int darwin_get_config_descriptor(struct libusb_device *dev, uint8_t config_index, void *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); @@ -661,7 +661,7 @@ static void darwin_exit (struct libusb_context *ctx) { pthread_mutex_unlock (&libusb_darwin_init_mutex); } -static int darwin_get_device_descriptor(struct libusb_device *dev, unsigned char *buffer, int *host_endian) { +static int darwin_get_device_descriptor(struct libusb_device *dev, void *buffer, int *host_endian) { struct darwin_cached_device *priv = DARWIN_CACHED_DEVICE(dev); /* return cached copy */ @@ -692,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) { +static int darwin_get_active_config_descriptor(struct libusb_device *dev, void *buffer, size_t len) { struct darwin_cached_device *priv = DARWIN_CACHED_DEVICE(dev); int config_index; @@ -707,7 +707,7 @@ static int darwin_get_active_config_descriptor(struct libusb_device *dev, unsign 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) { +static int darwin_get_config_descriptor(struct libusb_device *dev, uint8_t config_index, void *buffer, size_t len) { struct darwin_cached_device *priv = DARWIN_CACHED_DEVICE(dev); IOUSBConfigurationDescriptorPtr desc; IOReturn kresult; diff --git a/libusb/os/haiku_usb_raw.cpp b/libusb/os/haiku_usb_raw.cpp index e0a8c9a..b4348e2 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); + void *, size_t); static int haiku_init(struct libusb_context *ctx) @@ -75,7 +75,7 @@ haiku_close(struct libusb_device_handle *dev_handle) } static int -haiku_get_device_descriptor(struct libusb_device *device, unsigned char *buffer, int *host_endian) +haiku_get_device_descriptor(struct libusb_device *device, void *buffer, int *host_endian) { USBDevice *dev = *((USBDevice **)usbi_get_device_priv(device)); memcpy(buffer, dev->Descriptor(), LIBUSB_DT_DEVICE_SIZE); @@ -83,14 +83,14 @@ haiku_get_device_descriptor(struct libusb_device *device, unsigned char *buffer, } static int -haiku_get_active_config_descriptor(struct libusb_device *device, unsigned char *buffer, size_t len) +haiku_get_active_config_descriptor(struct libusb_device *device, void *buffer, size_t len) { USBDevice *dev = *((USBDevice **)usbi_get_device_priv(device)); 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) +haiku_get_config_descriptor(struct libusb_device *device, uint8_t config_index, void *buffer, size_t len) { USBDevice *dev = *((USBDevice **)usbi_get_device_priv(device)); const usb_configuration_descriptor *config = dev->ConfigurationDescriptor(config_index); diff --git a/libusb/os/linux_usbfs.c b/libusb/os/linux_usbfs.c index 435a38b..14963d2 100644 --- a/libusb/os/linux_usbfs.c +++ b/libusb/os/linux_usbfs.c @@ -517,7 +517,7 @@ static int read_sysfs_attr(struct libusb_context *ctx, } static int op_get_device_descriptor(struct libusb_device *dev, - unsigned char *buffer, int *host_endian) + void *buffer, int *host_endian) { struct linux_device_priv *priv = usbi_get_device_priv(dev); @@ -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) + uint8_t value, void **buffer) { struct linux_device_priv *priv = usbi_get_device_priv(dev); unsigned char *descriptors = priv->descriptors; @@ -724,11 +724,11 @@ 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) + void *buffer, size_t len) { struct linux_device_priv *priv = usbi_get_device_priv(dev); int r, config; - unsigned char *config_desc; + void *config_desc; if (priv->sysfs_dir) { r = sysfs_get_active_config(dev, &config); @@ -751,7 +751,7 @@ 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) + uint8_t config_index, void *buffer, size_t len) { struct linux_device_priv *priv = usbi_get_device_priv(dev); unsigned char *descriptors = priv->descriptors; @@ -1570,11 +1570,10 @@ static int op_free_streams(struct libusb_device_handle *handle, endpoints, num_endpoints); } -static unsigned char *op_dev_mem_alloc(struct libusb_device_handle *handle, - size_t len) +static void *op_dev_mem_alloc(struct libusb_device_handle *handle, size_t len) { struct linux_device_handle_priv *hpriv = usbi_get_device_handle_priv(handle); - unsigned char *buffer; + void *buffer; buffer = mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_SHARED, hpriv->fd, 0); if (buffer == MAP_FAILED) { @@ -1584,8 +1583,8 @@ static unsigned char *op_dev_mem_alloc(struct libusb_device_handle *handle, return buffer; } -static int op_dev_mem_free(struct libusb_device_handle *handle, - unsigned char *buffer, size_t len) +static int op_dev_mem_free(struct libusb_device_handle *handle, void *buffer, + size_t len) { if (munmap(buffer, len) != 0) { usbi_err(HANDLE_CTX(handle), "free dev mem failed, errno=%d", errno); diff --git a/libusb/os/netbsd_usb.c b/libusb/os/netbsd_usb.c index dab7692..91f2472 100644 --- a/libusb/os/netbsd_usb.c +++ b/libusb/os/netbsd_usb.c @@ -36,7 +36,7 @@ struct device_priv { char devnode[16]; int fd; - unsigned char *cdesc; /* active config descriptor */ + usb_config_descriptor_t *cdesc; /* active config descriptor */ usb_device_descriptor_t ddesc; /* usb device descriptor */ }; @@ -52,12 +52,12 @@ static int netbsd_get_device_list(struct libusb_context *, static int netbsd_open(struct libusb_device_handle *); static void netbsd_close(struct libusb_device_handle *); -static int netbsd_get_device_descriptor(struct libusb_device *, unsigned char *, +static int netbsd_get_device_descriptor(struct libusb_device *, void *, int *); static int netbsd_get_active_config_descriptor(struct libusb_device *, - unsigned char *, size_t); + void *, size_t); static int netbsd_get_config_descriptor(struct libusb_device *, uint8_t, - unsigned char *, size_t); + void *, size_t); static int netbsd_get_configuration(struct libusb_device_handle *, int *); static int netbsd_set_configuration(struct libusb_device_handle *, int); @@ -162,7 +162,6 @@ netbsd_get_device_list(struct libusb_context * ctx, goto error; } - dpriv->cdesc = NULL; if (_cache_active_config_descriptor(dev, fd)) { err = errno; goto error; @@ -221,7 +220,7 @@ netbsd_close(struct libusb_device_handle *handle) } int -netbsd_get_device_descriptor(struct libusb_device *dev, unsigned char *buf, +netbsd_get_device_descriptor(struct libusb_device *dev, void *buf, int *host_endian) { struct device_priv *dpriv = usbi_get_device_priv(dev); @@ -235,13 +234,11 @@ netbsd_get_device_descriptor(struct libusb_device *dev, unsigned char *buf, int netbsd_get_active_config_descriptor(struct libusb_device *dev, - unsigned char *buf, size_t len) + void *buf, size_t len) { struct device_priv *dpriv = usbi_get_device_priv(dev); - usb_config_descriptor_t *ucd; - ucd = (usb_config_descriptor_t *) dpriv->cdesc; - len = MIN(len, UGETW(ucd->wTotalLength)); + len = MIN(len, UGETW(dpriv->cdesc->wTotalLength)); usbi_dbg("len %d", len); @@ -252,7 +249,7 @@ netbsd_get_active_config_descriptor(struct libusb_device *dev, int netbsd_get_config_descriptor(struct libusb_device *dev, uint8_t idx, - unsigned char *buf, size_t len) + void *buf, size_t len) { struct device_priv *dpriv = usbi_get_device_priv(dev); struct usb_full_desc ufd; @@ -477,7 +474,7 @@ _cache_active_config_descriptor(struct libusb_device *dev, int fd) struct device_priv *dpriv = usbi_get_device_priv(dev); struct usb_config_desc ucd; struct usb_full_desc ufd; - unsigned char* buf; + void *buf; int len; usbi_dbg("fd %d", fd); @@ -490,7 +487,7 @@ _cache_active_config_descriptor(struct libusb_device *dev, int fd) usbi_dbg("active bLength %d", ucd.ucd_desc.bLength); len = UGETW(ucd.ucd_desc.wTotalLength); - buf = malloc(len); + buf = malloc((size_t)len); if (buf == NULL) return (LIBUSB_ERROR_NO_MEM); diff --git a/libusb/os/null_usb.c b/libusb/os/null_usb.c index bb6d981..8952f3b 100644 --- a/libusb/os/null_usb.c +++ b/libusb/os/null_usb.c @@ -37,7 +37,7 @@ null_close(struct libusb_device_handle *handle) } static int -null_get_device_descriptor(struct libusb_device *dev, unsigned char *buf, +null_get_device_descriptor(struct libusb_device *dev, void *buf, int *host_endian) { return LIBUSB_ERROR_NOT_SUPPORTED; @@ -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) + void *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) + void *buf, size_t len) { return LIBUSB_ERROR_NOT_SUPPORTED; } diff --git a/libusb/os/openbsd_usb.c b/libusb/os/openbsd_usb.c index e10d656..8f9c4e7 100644 --- a/libusb/os/openbsd_usb.c +++ b/libusb/os/openbsd_usb.c @@ -36,7 +36,7 @@ struct device_priv { char *devname; /* name of the ugen(4) node */ int fd; /* device file descriptor */ - unsigned char *cdesc; /* active config descriptor */ + usb_config_descriptor_t *cdesc; /* active config descriptor */ usb_device_descriptor_t ddesc; /* usb device descriptor */ }; @@ -52,12 +52,12 @@ static int obsd_get_device_list(struct libusb_context *, static int obsd_open(struct libusb_device_handle *); static void obsd_close(struct libusb_device_handle *); -static int obsd_get_device_descriptor(struct libusb_device *, unsigned char *, +static int obsd_get_device_descriptor(struct libusb_device *, void *, int *); static int obsd_get_active_config_descriptor(struct libusb_device *, - unsigned char *, size_t); + void *, size_t); static int obsd_get_config_descriptor(struct libusb_device *, uint8_t, - unsigned char *, size_t); + void *, size_t); static int obsd_get_configuration(struct libusb_device_handle *, int *); static int obsd_set_configuration(struct libusb_device_handle *, int); @@ -180,7 +180,6 @@ obsd_get_device_list(struct libusb_context * ctx, dpriv = usbi_get_device_priv(dev); dpriv->fd = -1; - dpriv->cdesc = NULL; dpriv->devname = udevname; dd.udd_bus = di.udi_bus; @@ -256,7 +255,7 @@ obsd_close(struct libusb_device_handle *handle) } int -obsd_get_device_descriptor(struct libusb_device *dev, unsigned char *buf, +obsd_get_device_descriptor(struct libusb_device *dev, void *buf, int *host_endian) { struct device_priv *dpriv = usbi_get_device_priv(dev); @@ -270,12 +269,11 @@ obsd_get_device_descriptor(struct libusb_device *dev, unsigned char *buf, int obsd_get_active_config_descriptor(struct libusb_device *dev, - unsigned char *buf, size_t len) + void *buf, size_t len) { struct device_priv *dpriv = usbi_get_device_priv(dev); - usb_config_descriptor_t *ucd = (usb_config_descriptor_t *)dpriv->cdesc; - len = MIN(len, UGETW(ucd->wTotalLength)); + len = MIN(len, UGETW(dpriv->cdesc->wTotalLength)); usbi_dbg("len %zu", len); @@ -286,7 +284,7 @@ obsd_get_active_config_descriptor(struct libusb_device *dev, int obsd_get_config_descriptor(struct libusb_device *dev, uint8_t idx, - unsigned char *buf, size_t len) + void *buf, size_t len) { struct usb_device_fdesc udf; int fd, err; @@ -316,9 +314,8 @@ int obsd_get_configuration(struct libusb_device_handle *handle, int *config) { struct device_priv *dpriv = usbi_get_device_priv(handle->dev); - usb_config_descriptor_t *ucd = (usb_config_descriptor_t *)dpriv->cdesc; - *config = ucd->bConfigurationValue; + *config = dpriv->cdesc->bConfigurationValue; usbi_dbg("bConfigurationValue %d", *config); @@ -515,7 +512,7 @@ _cache_active_config_descriptor(struct libusb_device *dev) struct device_priv *dpriv = usbi_get_device_priv(dev); struct usb_device_cdesc udc; struct usb_device_fdesc udf; - unsigned char* buf; + void *buf; int fd, len, err; if ((fd = _bus_open(dev->bus_number)) < 0) @@ -535,7 +532,7 @@ _cache_active_config_descriptor(struct libusb_device *dev) usbi_dbg("active bLength %d", udc.udc_desc.bLength); len = UGETW(udc.udc_desc.wTotalLength); - buf = malloc(len); + buf = malloc((size_t)len); if (buf == NULL) return (LIBUSB_ERROR_NO_MEM); diff --git a/libusb/os/sunos_usb.c b/libusb/os/sunos_usb.c index 0d8198f..9a148ca 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 *); + void *, int *); static int sunos_get_active_config_descriptor(struct libusb_device *, - uint8_t *, size_t); + void *, size_t); static int sunos_get_config_descriptor(struct libusb_device *, uint8_t, - uint8_t *, size_t); + void *, 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); @@ -1020,7 +1020,7 @@ sunos_close(struct libusb_device_handle *handle) } int -sunos_get_device_descriptor(struct libusb_device *dev, uint8_t *buf, +sunos_get_device_descriptor(struct libusb_device *dev, void *buf, int *host_endian) { sunos_dev_priv_t *dpriv = usbi_get_device_priv(dev); @@ -1032,7 +1032,7 @@ sunos_get_device_descriptor(struct libusb_device *dev, uint8_t *buf, int sunos_get_active_config_descriptor(struct libusb_device *dev, - uint8_t *buf, size_t len) + void *buf, size_t len) { sunos_dev_priv_t *dpriv = usbi_get_device_priv(dev); struct libusb_config_descriptor *cfg; @@ -1076,7 +1076,7 @@ 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) + void *buf, size_t len) { /* XXX */ return(sunos_get_active_config_descriptor(dev, buf, len)); diff --git a/libusb/os/windows_common.c b/libusb/os/windows_common.c index 3d1175d..9352091 100644 --- a/libusb/os/windows_common.c +++ b/libusb/os/windows_common.c @@ -599,28 +599,28 @@ static void windows_close(struct libusb_device_handle *dev_handle) } static int windows_get_device_descriptor(struct libusb_device *dev, - unsigned char *buffer, int *host_endian) + void *buffer, int *host_endian) { struct windows_context_priv *priv = usbi_get_context_priv(DEVICE_CTX(dev)); 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) + void *buffer, size_t len) { struct windows_context_priv *priv = usbi_get_context_priv(DEVICE_CTX(dev)); 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) + uint8_t config_index, void *buffer, size_t len) { struct windows_context_priv *priv = usbi_get_context_priv(DEVICE_CTX(dev)); 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) + uint8_t bConfigurationValue, void **buffer) { struct windows_context_priv *priv = usbi_get_context_priv(DEVICE_CTX(dev)); return priv->backend->get_config_descriptor_by_value(dev, bConfigurationValue, buffer); diff --git a/libusb/os/windows_common.h b/libusb/os/windows_common.h index b2da4d9..e48f7a9 100644 --- a/libusb/os/windows_common.h +++ b/libusb/os/windows_common.h @@ -299,13 +299,13 @@ struct windows_backend { struct discovered_devs **discdevs); int (*open)(struct libusb_device_handle *dev_handle); void (*close)(struct libusb_device_handle *dev_handle); - int (*get_device_descriptor)(struct libusb_device *device, unsigned char *buffer); + int (*get_device_descriptor)(struct libusb_device *device, void *buffer); int (*get_active_config_descriptor)(struct libusb_device *device, - unsigned char *buffer, size_t len); + void *buffer, size_t len); int (*get_config_descriptor)(struct libusb_device *device, - uint8_t config_index, unsigned char *buffer, size_t len); + uint8_t config_index, void *buffer, size_t len); int (*get_config_descriptor_by_value)(struct libusb_device *device, - uint8_t bConfigurationValue, unsigned char **buffer); + uint8_t bConfigurationValue, void **buffer); int (*get_configuration)(struct libusb_device_handle *dev_handle, int *config); int (*set_configuration)(struct libusb_device_handle *dev_handle, int config); int (*claim_interface)(struct libusb_device_handle *dev_handle, int interface_number); diff --git a/libusb/os/windows_usbdk.c b/libusb/os/windows_usbdk.c index ac11496..15783b0 100644 --- a/libusb/os/windows_usbdk.c +++ b/libusb/os/windows_usbdk.c @@ -357,7 +357,7 @@ func_exit: return r; } -static int usbdk_get_device_descriptor(struct libusb_device *dev, unsigned char *buffer) +static int usbdk_get_device_descriptor(struct libusb_device *dev, void *buffer) { struct usbdk_device_priv *priv = usbi_get_device_priv(dev); @@ -366,7 +366,7 @@ static int usbdk_get_device_descriptor(struct libusb_device *dev, unsigned char return LIBUSB_SUCCESS; } -static int usbdk_get_config_descriptor(struct libusb_device *dev, uint8_t config_index, unsigned char *buffer, size_t len) +static int usbdk_get_config_descriptor(struct libusb_device *dev, uint8_t config_index, void *buffer, size_t len) { struct usbdk_device_priv *priv = usbi_get_device_priv(dev); PUSB_CONFIGURATION_DESCRIPTOR config_header; @@ -380,7 +380,7 @@ static int usbdk_get_config_descriptor(struct libusb_device *dev, uint8_t config } static int usbdk_get_config_descriptor_by_value(struct libusb_device *dev, uint8_t bConfigurationValue, - unsigned char **buffer) + void **buffer) { struct usbdk_device_priv *priv = usbi_get_device_priv(dev); PUSB_CONFIGURATION_DESCRIPTOR config_header; @@ -389,7 +389,7 @@ static int usbdk_get_config_descriptor_by_value(struct libusb_device *dev, uint8 for (index = 0; index < dev->device_descriptor.bNumConfigurations; index++) { config_header = priv->config_descriptors[index]; if (config_header->bConfigurationValue == bConfigurationValue) { - *buffer = (unsigned char *)priv->config_descriptors[index]; + *buffer = priv->config_descriptors[index]; return (int)config_header->wTotalLength; } } @@ -397,7 +397,7 @@ static int usbdk_get_config_descriptor_by_value(struct libusb_device *dev, uint8 return LIBUSB_ERROR_NOT_FOUND; } -static int usbdk_get_active_config_descriptor(struct libusb_device *dev, unsigned char *buffer, size_t len) +static int usbdk_get_active_config_descriptor(struct libusb_device *dev, void *buffer, size_t len) { struct usbdk_device_priv *priv = usbi_get_device_priv(dev); diff --git a/libusb/os/windows_winusb.c b/libusb/os/windows_winusb.c index ec7c025..d2e3893 100644 --- a/libusb/os/windows_winusb.c +++ b/libusb/os/windows_winusb.c @@ -1515,7 +1515,7 @@ static int winusb_get_device_list(struct libusb_context *ctx, struct discovered_ return r; } -static int winusb_get_device_descriptor(struct libusb_device *dev, unsigned char *buffer) +static int winusb_get_device_descriptor(struct libusb_device *dev, void *buffer) { struct winusb_device_priv *priv = usbi_get_device_priv(dev); @@ -1523,24 +1523,23 @@ static int winusb_get_device_descriptor(struct libusb_device *dev, unsigned char return LIBUSB_SUCCESS; } -static int winusb_get_config_descriptor(struct libusb_device *dev, uint8_t config_index, unsigned char *buffer, size_t len) +static int winusb_get_config_descriptor(struct libusb_device *dev, uint8_t config_index, void *buffer, size_t len) { struct winusb_device_priv *priv = usbi_get_device_priv(dev); PUSB_CONFIGURATION_DESCRIPTOR config_header; - size_t size; if ((priv->config_descriptor == NULL) || (priv->config_descriptor[config_index] == NULL)) return LIBUSB_ERROR_NOT_FOUND; config_header = priv->config_descriptor[config_index]; - size = MIN(config_header->wTotalLength, len); - memcpy(buffer, priv->config_descriptor[config_index], size); - return (int)size; + len = MIN(len, config_header->wTotalLength); + memcpy(buffer, config_header, len); + return (int)len; } static int winusb_get_config_descriptor_by_value(struct libusb_device *dev, uint8_t bConfigurationValue, - unsigned char **buffer) + void **buffer) { struct winusb_device_priv *priv = usbi_get_device_priv(dev); PUSB_CONFIGURATION_DESCRIPTOR config_header; @@ -1554,7 +1553,7 @@ static int winusb_get_config_descriptor_by_value(struct libusb_device *dev, uint if (config_header == NULL) continue; if (config_header->bConfigurationValue == bConfigurationValue) { - *buffer = (unsigned char *)priv->config_descriptor[index]; + *buffer = config_header; return (int)config_header->wTotalLength; } } @@ -1565,10 +1564,10 @@ static int winusb_get_config_descriptor_by_value(struct libusb_device *dev, uint /* * return the cached copy of the active config descriptor */ -static int winusb_get_active_config_descriptor(struct libusb_device *dev, unsigned char *buffer, size_t len) +static int winusb_get_active_config_descriptor(struct libusb_device *dev, void *buffer, size_t len) { struct winusb_device_priv *priv = usbi_get_device_priv(dev); - unsigned char *config_desc; + void *config_desc; int r; if (priv->active_config == 0) @@ -1578,7 +1577,7 @@ static int winusb_get_active_config_descriptor(struct libusb_device *dev, unsign if (r < 0) return r; - len = MIN((size_t)r, len); + len = MIN(len, (size_t)r); memcpy(buffer, config_desc, len); return (int)len; } diff --git a/libusb/version_nano.h b/libusb/version_nano.h index 49b7a05..6188f4f 100644 --- a/libusb/version_nano.h +++ b/libusb/version_nano.h @@ -1 +1 @@ -#define LIBUSB_NANO 11507 +#define LIBUSB_NANO 11508 -- cgit v1.2.1