#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-/* If we're not using GNU C, elide __attribute__
+/*
+ * If we're not using GNU C, elide __attribute__
* taken from: http://unixwiz.net/techtips/gnu-c-attributes.html)
*/
#ifndef __GNUC__
-# define __attribute__(x) /* NOTHING */
+ #define __attribute__(x) /* NOTHING */
#endif
/* Control shared library symbols visibility */
return 0;
}
-static void send_data_async_complete_cb(struct libusb_transfer *transfer)
+static void LIBUSB_CALL send_data_async_complete_cb(struct libusb_transfer *transfer)
{
am7xxx_device *dev = (am7xxx_device *)(transfer->user_data);
int *completed = &(dev->transfer_completed);
* is the first one to be sent to the device in order for it to
* successfully return the correct device information.
*
- * So, if there is not a cached version of it (from a previous open),
- * we ask for device info at open time,
+ * NOTE: am7xxx_get_device_info() will fetch the actual device info
+ * from the device only the very first time it's called for a given
+ * device, otherwise, it'll return a cached version of the device info
+ * (from a previous call to am7xxx_open_device(), for instance).
*/
- if ((*dev)->device_info == NULL) {
- ret = am7xxx_get_device_info(*dev, NULL);
- if (ret < 0)
- error(ctx, "cannot get device info\n");
- }
+ ret = am7xxx_get_device_info(*dev, NULL);
+ if (ret < 0)
+ error(ctx, "cannot get device info\n");
out:
return ret;