[PATCH] log: Add helpers for calling log_msg_ret() et al
Simon Glass
sjg at chromium.org
Wed Mar 19 12:49:27 CET 2025
Logging of function return-values is used very frequently in U-Boot now.
Add a few helper macros to make it less verbose to use.
It turns out that the log_ret() variants are not so useful, since it is
not obviously where the error is coming from. So only the log_msg_ret()
variants are worthy of these macros.
Signed-off-by: Simon Glass <sjg at chromium.org>
---
include/log.h | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/include/log.h b/include/log.h
index 4f6d6a2c2cf..bdda7af570c 100644
--- a/include/log.h
+++ b/include/log.h
@@ -380,6 +380,32 @@ void __assert_fail(const char *assertion, const char *file, unsigned int line,
#define log_msg_retz(_msg, _ret) ((void)(_msg), _ret)
#endif
+/*
+ * LOGR() - helper macro for calling a function and logging error returns
+ *
+ * Logs if the function returns a negative value
+ *
+ * Usage: LOGR("abc", my_function(...));
+ */
+#define LOGR(_msg, _expr) do { \
+ int _ret = _expr; \
+ if (_ret < 0) \
+ return log_msg_ret(_msg, _ret); \
+ } while (0)
+
+/*
+ * LOGZ() - helper macro for calling a function and logging error returns
+ *
+ * Logs if the function returns a non-zero value
+ *
+ * Usage: LOGZ("abc", my_function(...));
+ */
+#define LOGZ(_msg, _expr) do { \
+ int _ret = _expr; \
+ if (_ret) \
+ return log_msg_retz(_msg, _ret); \
+ } while (0)
+
/** * enum log_rec_flags - Flags for a log record */
enum log_rec_flags {
/** @LOGRECF_FORCE_DEBUG: Force output of debug record */
--
2.43.0
More information about the U-Boot
mailing list