diff options
-rw-r--r-- | libusb/core.c | 12 | ||||
-rw-r--r-- | libusb/descriptor.c | 9 | ||||
-rw-r--r-- | libusb/io.c | 2 | ||||
-rw-r--r-- | libusb/libusb.h | 4 | ||||
-rw-r--r-- | libusb/libusbi.h | 6 |
5 files changed, 17 insertions, 16 deletions
diff --git a/libusb/core.c b/libusb/core.c index 3ffeb19..3cae35e 100644 --- a/libusb/core.c +++ b/libusb/core.c @@ -596,8 +596,7 @@ API_EXPORTED ssize_t libusb_get_device_list(libusb_context *ctx, struct discovered_devs *discdevs = discovered_devs_alloc(); struct libusb_device **ret; int r = 0; - size_t i; - ssize_t len; + ssize_t i, len; USBI_GET_CONTEXT(ctx); usbi_dbg(""); @@ -864,6 +863,7 @@ API_EXPORTED int libusb_open(libusb_device *dev, libusb_device_handle **handle) size_t priv_size = usbi_backend->device_handle_priv_size; unsigned char dummy = 1; int r; + ssize_t tmp; usbi_dbg("open %d.%d", dev->bus_number, dev->device_address); _handle = malloc(sizeof(*_handle) + priv_size); @@ -907,8 +907,8 @@ API_EXPORTED int libusb_open(libusb_device *dev, libusb_device_handle **handle) usbi_mutex_unlock(&ctx->pollfd_modify_lock); /* write some data on control pipe to interrupt event handlers */ - r = write(ctx->ctrl_pipe[1], &dummy, sizeof(dummy)); - if (r <= 0) { + tmp = write(ctx->ctrl_pipe[1], &dummy, sizeof(dummy)); + if (tmp <= 0) { usbi_warn(ctx, "internal signalling write failed"); usbi_mutex_lock(&ctx->pollfd_modify_lock); ctx->pollfd_modify--; @@ -920,8 +920,8 @@ API_EXPORTED int libusb_open(libusb_device *dev, libusb_device_handle **handle) libusb_lock_events(ctx); /* read the dummy data */ - r = read(ctx->ctrl_pipe[0], &dummy, sizeof(dummy)); - if (r <= 0) + tmp = read(ctx->ctrl_pipe[0], &dummy, sizeof(dummy)); + if (tmp <= 0) usbi_warn(ctx, "internal signalling read failed"); /* we're done with modifying poll fds */ diff --git a/libusb/descriptor.c b/libusb/descriptor.c index acd7668..8f2d8e0 100644 --- a/libusb/descriptor.c +++ b/libusb/descriptor.c @@ -65,7 +65,7 @@ int usbi_parse_descriptor(unsigned char *source, char *descriptor, void *dest, } } - return sp - source; + return (int) (sp - source); } static void clear_endpoint(struct libusb_endpoint_descriptor *endpoint) @@ -592,7 +592,7 @@ err: int usbi_get_config_index_by_value(struct libusb_device *dev, uint8_t bConfigurationValue, int *idx) { - int i; + uint8_t i; usbi_dbg("value %d", bConfigurationValue); for (i = 0; i < dev->num_configurations; i++) { @@ -639,7 +639,7 @@ API_EXPORTED int libusb_get_config_descriptor_by_value(libusb_device *dev, else if (idx == -1) return LIBUSB_ERROR_NOT_FOUND; else - return libusb_get_config_descriptor(dev, idx, config); + return libusb_get_config_descriptor(dev, (uint8_t) idx, config); } /** \ingroup desc @@ -676,7 +676,8 @@ API_EXPORTED int libusb_get_string_descriptor_ascii(libusb_device_handle *dev, uint8_t desc_index, unsigned char *data, int length) { unsigned char tbuf[255]; /* Some devices choke on size > 255 */ - int r, langid, si, di; + int r, si, di; + uint16_t langid; /* Asking for the zero'th index is special - it returns a string * descriptor that contains all the language IDs supported by the device. diff --git a/libusb/io.c b/libusb/io.c index 8505f1e..6ea816c 100644 --- a/libusb/io.c +++ b/libusb/io.c @@ -1179,7 +1179,7 @@ API_EXPORTED struct libusb_transfer *libusb_alloc_transfer(int iso_packets) { size_t os_alloc_size = usbi_backend->transfer_priv_size + (usbi_backend->add_iso_packet_size * iso_packets); - int alloc_size = sizeof(struct usbi_transfer) + size_t alloc_size = sizeof(struct usbi_transfer) + sizeof(struct libusb_transfer) + (sizeof(struct libusb_iso_packet_descriptor) * iso_packets) + os_alloc_size; diff --git a/libusb/libusb.h b/libusb/libusb.h index cfc9e92..18ec0cd 100644 --- a/libusb/libusb.h +++ b/libusb/libusb.h @@ -1153,7 +1153,7 @@ static inline int libusb_get_descriptor(libusb_device_handle *dev, { return libusb_control_transfer(dev, LIBUSB_ENDPOINT_IN, LIBUSB_REQUEST_GET_DESCRIPTOR, (desc_type << 8) | desc_index, 0, data, - length, 1000); + (uint16_t) length, 1000); } /** \ingroup desc @@ -1175,7 +1175,7 @@ static inline int libusb_get_string_descriptor(libusb_device_handle *dev, { return libusb_control_transfer(dev, LIBUSB_ENDPOINT_IN, LIBUSB_REQUEST_GET_DESCRIPTOR, (LIBUSB_DT_STRING << 8) | desc_index, - langid, data, length, 1000); + langid, data, (uint16_t) length, 1000); } int libusb_get_string_descriptor_ascii(libusb_device_handle *dev, diff --git a/libusb/libusbi.h b/libusb/libusbi.h index 9dcca2f..74466c2 100644 --- a/libusb/libusbi.h +++ b/libusb/libusbi.h @@ -270,15 +270,15 @@ struct usbi_transfer { }; #define __USBI_TRANSFER_TO_LIBUSB_TRANSFER(transfer) \ - ((struct libusb_transfer *)(((void *)(transfer)) \ + ((struct libusb_transfer *)(((unsigned char *)(transfer)) \ + sizeof(struct usbi_transfer))) #define __LIBUSB_TRANSFER_TO_USBI_TRANSFER(transfer) \ - ((struct usbi_transfer *)(((void *)(transfer)) \ + ((struct usbi_transfer *)(((unsigned char *)(transfer)) \ - sizeof(struct usbi_transfer))) static inline void *usbi_transfer_get_os_priv(struct usbi_transfer *transfer) { - return ((void *)transfer) + sizeof(struct usbi_transfer) + return ((unsigned char *)transfer) + sizeof(struct usbi_transfer) + sizeof(struct libusb_transfer) + (transfer->num_iso_packets * sizeof(struct libusb_iso_packet_descriptor)); |