core: Change pointer type from 'unsigned char' to 'void'
authorChris Dickens <christopher.a.dickens@gmail.com>
Fri, 17 Apr 2020 21:21:44 +0000 (14:21 -0700)
committerChris Dickens <christopher.a.dickens@gmail.com>
Fri, 17 Apr 2020 21:21:44 +0000 (14:21 -0700)
This removes the need for pointer casts when calling backend functions.

Signed-off-by: Chris Dickens <christopher.a.dickens@gmail.com>
14 files changed:
libusb/descriptor.c
libusb/libusbi.h
libusb/os/darwin_usb.c
libusb/os/haiku_usb_raw.cpp
libusb/os/linux_usbfs.c
libusb/os/netbsd_usb.c
libusb/os/null_usb.c
libusb/os/openbsd_usb.c
libusb/os/sunos_usb.c
libusb/os/windows_common.c
libusb/os/windows_common.h
libusb/os/windows_usbdk.c
libusb/os/windows_winusb.c
libusb/version_nano.h

index b65557f..c926544 100644 (file)
@@ -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)
index 9d1528f..88db762 100644 (file)
@@ -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.
         *
index bbac912..61722c0 100644 (file)
@@ -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;
index e0a8c9a..b4348e2 100644 (file)
@@ -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);
index 435a38b..14963d2 100644 (file)
@@ -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);
index dab7692..91f2472 100644 (file)
@@ -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);
 
index bb6d981..8952f3b 100644 (file)
@@ -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;
 }
index e10d656..8f9c4e7 100644 (file)
@@ -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);
 
index 0d8198f..9a148ca 100644 (file)
@@ -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));
index 3d1175d..9352091 100644 (file)
@@ -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);
index b2da4d9..e48f7a9 100644 (file)
@@ -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);
index ac11496..15783b0 100644 (file)
@@ -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);
 
index ec7c025..d2e3893 100644 (file)
@@ -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;
 }
index 49b7a05..6188f4f 100644 (file)
@@ -1 +1 @@
-#define LIBUSB_NANO 11507
+#define LIBUSB_NANO 11508