log: Add a way to log a return value with a message
authorSimon Glass <sjg@chromium.org>
Mon, 11 Jun 2018 19:07:14 +0000 (13:07 -0600)
committerSimon Glass <sjg@chromium.org>
Mon, 9 Jul 2018 15:11:00 +0000 (09:11 -0600)
It is sometimes useful to show a message when logging an error return
value, perhaps to add a few details about the problem. Add a function to
support this.

Signed-off-by: Simon Glass <sjg@chromium.org>
include/log.h

index 3e99d6e62b69db48976cc7d3f8f09ae6104f5314..653fb8d853ec77ca96283f2f3f2487185ff55f12 100644 (file)
@@ -166,8 +166,16 @@ void __assert_fail(const char *assertion, const char *file, unsigned int line,
                log(LOG_CATEGORY, LOGL_ERR, "returning err=%d\n", __ret); \
        __ret; \
        })
+#define log_msg_ret(_msg, _ret) ({ \
+       int __ret = (_ret); \
+       if (__ret < 0) \
+               log(LOG_CATEGORY, LOGL_ERR, "%s: returning err=%d\n", _msg, \
+                   __ret); \
+       __ret; \
+       })
 #else
 #define log_ret(_ret) (_ret)
+#define log_msg_ret(_ret) (_ret)
 #endif
 
 /**