X-Git-Url: https://git.ao2.it/libam7xxx.git/blobdiff_plain/80417f30dc0d1ff825d887032507511be4dcc11b..4b9cb6f91e33097c13b4dfa1b6f56a9510169c2a:/src/am7xxx.c?ds=sidebyside diff --git a/src/am7xxx.c b/src/am7xxx.c index 84d7e9c..8573a59 100644 --- a/src/am7xxx.c +++ b/src/am7xxx.c @@ -30,11 +30,22 @@ #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 + +/* + * Fix printf format when compiling for Windows with MinGW, see: + * https://sourceforge.net/p/mingw-w64/wiki2/gnu%20printf/ + */ +#ifdef __MINGW_PRINTF_FORMAT + #define AM7XXX_PRINTF_FORMAT __MINGW_PRINTF_FORMAT +#else + #define AM7XXX_PRINTF_FORMAT printf #endif /* Control shared library symbols visibility */ @@ -56,7 +67,7 @@ static void log_message(am7xxx_context *ctx, const char *function_name, int line, const char *fmt, - ...) __attribute__ ((format (printf, 5, 6))); + ...) __attribute__ ((format (AM7XXX_PRINTF_FORMAT, 5, 6))); #define fatal(...) log_message(NULL, AM7XXX_LOG_FATAL, __func__, __LINE__, __VA_ARGS__) #define error(ctx, ...) log_message(ctx, AM7XXX_LOG_ERROR, __func__, __LINE__, __VA_ARGS__) @@ -414,7 +425,7 @@ static int send_data(am7xxx_device *dev, uint8_t *buffer, unsigned int len) 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); @@ -1229,8 +1240,8 @@ AM7XXX_PUBLIC int am7xxx_get_device_info(am7xxx_device *dev, if (h.packet_type != AM7XXX_PACKET_TYPE_DEVINFO) { error(dev->ctx, "expected packet type: %d, got %d instead!\n", AM7XXX_PACKET_TYPE_DEVINFO, h.packet_type); - errno = ENOTSUP; - return -ENOTSUP; + errno = EINVAL; + return -EINVAL; } dev->device_info = malloc(sizeof(*dev->device_info));