summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPete Batard <pbatard@gmail.com>2010-05-17 19:30:27 -0300
committerDaniel Drake <dan@reactivated.net>2010-05-17 19:30:27 -0300
commitd7031ee8e1c449af23b2674fe18d9fc652c9bd80 (patch)
treed7f7a791881bde1892d6d9ab73a5e90a1522d10c
parent9996ccaed740f8fcec4287a478ccaaa573f9865a (diff)
downloadlibusbx-d7031ee8e1c449af23b2674fe18d9fc652c9bd80.tar.gz
Stricter types and casts
-rw-r--r--libusb/core.c12
-rw-r--r--libusb/descriptor.c9
-rw-r--r--libusb/io.c2
-rw-r--r--libusb/libusb.h4
-rw-r--r--libusb/libusbi.h6
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));