summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/common.h26
1 files changed, 16 insertions, 10 deletions
diff --git a/include/common.h b/include/common.h
index fb41d7a..5ca8820 100644
--- a/include/common.h
+++ b/include/common.h
@@ -116,21 +116,27 @@ typedef volatile unsigned char vu_char;
#include <flash.h>
#include <image.h>
-#ifdef DEBUG
-#define debug(fmt,args...) printf (fmt ,##args)
-#define debugX(level,fmt,args...) if (DEBUG>=level) printf(fmt,##args);
-#else
-#define debug(fmt,args...)
-#define debugX(level,fmt,args...)
-#endif /* DEBUG */
-
#ifdef DEBUG
-# define _DEBUG 1
+#define _DEBUG 1
#else
-# define _DEBUG 0
+#define _DEBUG 0
#endif
/*
+ * Output a debug text when condition "cond" is met. The "cond" should be
+ * computed by a preprocessor in the best case, allowing for the best
+ * optimization.
+ */
+#define debug_cond(cond, fmt, args...) \
+ do { \
+ if (cond) \
+ printf(fmt, ##args); \
+ } while (0)
+
+#define debug(fmt, args...) \
+ debug_cond(_DEBUG, fmt, ##args)
+
+/*
* An assertion is run-time check done in debug mode only. If DEBUG is not
* defined then it is skipped. If DEBUG is defined and the assertion fails,
* then it calls panic*( which may or may not reset/halt U-Boot (see