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 <[email protected]>
---
platform/linux-generic/include/api/odp_debug.h | 37 ++++----------------
.../linux-generic/include/odp_debug_internal.h | 6 ++--
platform/linux-generic/odp_weak.c | 5 ++-
3 files changed, 14 insertions(+), 34 deletions(-)
diff --git a/platform/linux-generic/include/api/odp_debug.h
b/platform/linux-generic/include/api/odp_debug.h
index cb5bc83..0fbd6b9 100644
--- a/platform/linux-generic/include/api/odp_debug.h
+++ b/platform/linux-generic/include/api/odp_debug.h
@@ -99,36 +99,8 @@ 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, "%s:%d:%s():" fmt, __FILE__, \
- __LINE__, __func__, ##__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
@@ -141,7 +113,10 @@ do { \
* 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..006e8ab 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;
}