diff mbox

[PATCHv3,2/2] platform: debug: Simplify ODP_LOG() macro

Message ID 1417098200-28258-3-git-send-email-taras.kondratiuk@linaro.org
State New
Headers show

Commit Message

Taras Kondratiuk Nov. 27, 2014, 2:23 p.m. UTC
Move additional functionality out of ODP_LOG. Move abort() call to
odp_override_log(), so application will be able to implement custom
abort handling.

Signed-off-by: Taras Kondratiuk <taras.kondratiuk@linaro.org>
---
 platform/linux-generic/include/api/odp_debug.h     |   38 ++++----------------
 .../linux-generic/include/odp_debug_internal.h     |    6 ++--
 platform/linux-generic/odp_weak.c                  |    5 ++-
 3 files changed, 15 insertions(+), 34 deletions(-)
diff mbox

Patch

diff --git a/platform/linux-generic/include/api/odp_debug.h b/platform/linux-generic/include/api/odp_debug.h
index 4b51038..875c813 100644
--- a/platform/linux-generic/include/api/odp_debug.h
+++ b/platform/linux-generic/include/api/odp_debug.h
@@ -99,48 +99,24 @@  extern int odp_override_log(odp_log_level_e level, const char *fmt, ...);
  * ODP LOG macro.
  */
 #define ODP_LOG(level, fmt, ...) \
-do { \
-	switch (level) { \
-	case ODP_LOG_ERR: \
-		odp_override_log(level, "%s:%d:%s():" fmt, __FILE__, \
-		__LINE__, __func__, ##__VA_ARGS__); \
-		break; \
-	case ODP_LOG_DBG: \
-		if (ODP_DEBUG_PRINT == 1) \
-			odp_override_log(level, "%s:%d:%s():" fmt, __FILE__, \
-			__LINE__, __func__, ##__VA_ARGS__); \
-		break; \
-	case ODP_LOG_PRINT: \
-		odp_override_log(level, " " fmt, ##__VA_ARGS__); \
-		break; \
-	case ODP_LOG_ABORT: \
-		odp_override_log(level, "%s:%d:%s(): " fmt, __FILE__, \
-		__LINE__, __func__, ##__VA_ARGS__); \
-		abort(); \
-		break; \
-	case ODP_LOG_UNIMPLEMENTED: \
-		odp_override_log(level, \
-			"%s:%d:The function %s() is not implemented\n" \
-			fmt, __FILE__, __LINE__, __func__, ##__VA_ARGS__); \
-		break; \
-	default: \
-		odp_override_log(level, "Unknown LOG level"); \
-		break;\
-	} \
-} while (0)
+	odp_override_log(level, "%s:%d:%s():" fmt, __FILE__, \
+		__LINE__, __func__, ##__VA_ARGS__)
 
 /**
  * Log print message when the application calls one of the ODP APIs
  * specifically for dumping internal data.
  */
 #define ODP_PRINT(fmt, ...) \
-		ODP_LOG(ODP_LOG_PRINT, fmt, ##__VA_ARGS__)
+		odp_override_log(ODP_LOG_PRINT, " " fmt, ##__VA_ARGS__)
 
 /**
  * Log debug message if DEBUG flag is set.
  */
 #define ODP_DBG(fmt, ...) \
-		ODP_LOG(ODP_LOG_DBG, fmt, ##__VA_ARGS__)
+	do { \
+		if (ODP_DEBUG_PRINT == 1) \
+			ODP_LOG(ODP_LOG_DBG, fmt, ##__VA_ARGS__);\
+	} while (0)
 
 /**
  * Log error message.
diff --git a/platform/linux-generic/include/odp_debug_internal.h b/platform/linux-generic/include/odp_debug_internal.h
index a87552f..ee3c543 100644
--- a/platform/linux-generic/include/odp_debug_internal.h
+++ b/platform/linux-generic/include/odp_debug_internal.h
@@ -25,8 +25,10 @@  extern "C" {
 /**
  * This macro is used to indicate when a given function is not implemented
  */
-#define ODP_UNIMPLEMENTED(fmt, ...) \
-		ODP_LOG(ODP_LOG_UNIMPLEMENTED, fmt, ##__VA_ARGS__)
+#define ODP_UNIMPLEMENTED() \
+		odp_override_log(ODP_LOG_UNIMPLEMENTED, \
+			"%s:%d:The function %s() is not implemented\n", \
+			__FILE__, __LINE__, __func__)
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/odp_weak.c b/platform/linux-generic/odp_weak.c
index fccbc3f..3cc3d45 100644
--- a/platform/linux-generic/odp_weak.c
+++ b/platform/linux-generic/odp_weak.c
@@ -9,7 +9,7 @@ 
 #include <odp_debug_internal.h>
 #include <odp_hints.h>
 
-ODP_WEAK_SYMBOL int odp_override_log(odp_log_level_e level ODP_UNUSED,
+ODP_WEAK_SYMBOL int odp_override_log(odp_log_level_e level,
 				     const char *fmt, ...)
 {
 	va_list args;
@@ -19,5 +19,8 @@  ODP_WEAK_SYMBOL int odp_override_log(odp_log_level_e level ODP_UNUSED,
 	r = vfprintf(stderr, fmt, args);
 	va_end(args);
 
+	if (level == ODP_LOG_ABORT)
+		abort();
+
 	return r;
 }