]> sigrok.org Git - libserialport.git/blobdiff - libserialport_internal.h
Specialise RETURN_VALUE macro into RETURN_{INT,STRING,POINTER}.
[libserialport.git] / libserialport_internal.h
index bb1af1a4e37f280b86410a3c86a48f9e289eb39c..78b727b7a2dbbb7a506786092c77e9a8e0e372f9 100644 (file)
@@ -176,9 +176,19 @@ extern void (*sp_debug_handler)(const char *format, ...);
 #define RETURN_OK() RETURN_CODE(SP_OK);
 #define RETURN_ERROR(err, ...) do { DEBUG_ERROR(err, __VA_ARGS__); return err; } while (0)
 #define RETURN_FAIL(...) do { DEBUG_FAIL(__VA_ARGS__); return SP_ERR_FAIL; } while (0)
-#define RETURN_VALUE(fmt, x) do { \
-       typeof(x) _x = x; \
-       DEBUG("%s returning " fmt, __func__, _x); \
+#define RETURN_INT(x) do { \
+       int _x = x; \
+       DEBUG("%s returning %d", __func__, _x); \
+       return _x; \
+} while (0)
+#define RETURN_STRING(x) do { \
+       char *_x = x; \
+       DEBUG("%s returning %s", __func__, _x); \
+       return _x; \
+} while (0)
+#define RETURN_POINTER(x) do { \
+       void *_x = x; \
+       DEBUG("%s returning %p", __func__, _x); \
        return _x; \
 } while (0)
 #define SET_ERROR(val, err, msg) do { DEBUG_ERROR(err, msg); val = err; } while (0)