summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2011-02-09 12:46:26 +0100
committerHans de Goede <hdegoede@redhat.com>2011-06-17 10:59:26 +0200
commit5765476148dff10f3de7c8888e3eef59455a3255 (patch)
treeb45da428784012c937cbd7e358e59f98ac4eac24
parent751621e9a69cdbb43bd20f81a86c64af6436255b (diff)
claimed_interfaces is a long so any masks should be a long too
Otherwise things will go wrong on 64 bit for interfaces >= 32 (which we happily accept with some functions on 64 bit machines). Signed-off-by: Hans de Goede <hdegoede@redhat.com>
-rw-r--r--libusb/core.c10
-rw-r--r--libusb/os/darwin_usb.c8
2 files changed, 9 insertions, 9 deletions
diff --git a/libusb/core.c b/libusb/core.c
index afe9e6e..ccfaa87 100644
--- a/libusb/core.c
+++ b/libusb/core.c
@@ -1274,12 +1274,12 @@ int API_EXPORTED libusb_claim_interface(libusb_device_handle *dev,
return LIBUSB_ERROR_INVALID_PARAM;
usbi_mutex_lock(&dev->lock);
- if (dev->claimed_interfaces & (1 << interface_number))
+ if (dev->claimed_interfaces & (1L << interface_number))
goto out;
r = usbi_backend->claim_interface(dev, interface_number);
if (r == 0)
- dev->claimed_interfaces |= 1 << interface_number;
+ dev->claimed_interfaces |= 1L << interface_number;
out:
usbi_mutex_unlock(&dev->lock);
@@ -1311,14 +1311,14 @@ int API_EXPORTED libusb_release_interface(libusb_device_handle *dev,
return LIBUSB_ERROR_INVALID_PARAM;
usbi_mutex_lock(&dev->lock);
- if (!(dev->claimed_interfaces & (1 << interface_number))) {
+ if (!(dev->claimed_interfaces & (1L << interface_number))) {
r = LIBUSB_ERROR_NOT_FOUND;
goto out;
}
r = usbi_backend->release_interface(dev, interface_number);
if (r == 0)
- dev->claimed_interfaces &= ~(1 << interface_number);
+ dev->claimed_interfaces &= ~(1L << interface_number);
out:
usbi_mutex_unlock(&dev->lock);
@@ -1355,7 +1355,7 @@ int API_EXPORTED libusb_set_interface_alt_setting(libusb_device_handle *dev,
return LIBUSB_ERROR_INVALID_PARAM;
usbi_mutex_lock(&dev->lock);
- if (!(dev->claimed_interfaces & (1 << interface_number))) {
+ if (!(dev->claimed_interfaces & (1L << interface_number))) {
usbi_mutex_unlock(&dev->lock);
return LIBUSB_ERROR_NOT_FOUND;
}
diff --git a/libusb/os/darwin_usb.c b/libusb/os/darwin_usb.c
index 480ec52..be9a8af 100644
--- a/libusb/os/darwin_usb.c
+++ b/libusb/os/darwin_usb.c
@@ -132,7 +132,7 @@ static int ep_to_pipeRef(struct libusb_device_handle *dev_handle, uint8_t ep, ui
for (iface = 0 ; iface < USB_MAXINTERFACES ; iface++) {
cInterface = &priv->interfaces[iface];
- if (dev_handle->claimed_interfaces & (1 << iface)) {
+ if (dev_handle->claimed_interfaces & (1L << iface)) {
for (i = 0 ; i < cInterface->num_endpoints ; i++) {
if (cInterface->endpoint_addrs[i] == ep) {
*pipep = i + 1;
@@ -749,7 +749,7 @@ static void darwin_close (struct libusb_device_handle *dev_handle) {
/* make sure all interfaces are released */
for (i = 0 ; i < USB_MAXINTERFACES ; i++)
- if (dev_handle->claimed_interfaces & (1 << i))
+ if (dev_handle->claimed_interfaces & (1L << i))
libusb_release_interface (dev_handle, i);
if (0 == dpriv->open_count) {
@@ -803,7 +803,7 @@ static int darwin_set_configuration(struct libusb_device_handle *dev_handle, int
/* Setting configuration will invalidate the interface, so we need
to reclaim it. First, dispose of existing interfaces, if any. */
for (i = 0 ; i < USB_MAXINTERFACES ; i++)
- if (dev_handle->claimed_interfaces & (1 << i))
+ if (dev_handle->claimed_interfaces & (1L << i))
darwin_release_interface (dev_handle, i);
kresult = (*(dpriv->device))->SetConfiguration (dpriv->device, config);
@@ -812,7 +812,7 @@ static int darwin_set_configuration(struct libusb_device_handle *dev_handle, int
/* Reclaim any interfaces. */
for (i = 0 ; i < USB_MAXINTERFACES ; i++)
- if (dev_handle->claimed_interfaces & (1 << i))
+ if (dev_handle->claimed_interfaces & (1L << i))
darwin_claim_interface (dev_handle, i);
dpriv->active_config = config;