MLBEDSW-2596 Add support to set driver log severity
The driver can log at one of the following levels: 0=emerg,
1=alert, 2=crit, 3=err, 4=warning, 5=notice, 6=info, 7=debug.
The logs at or below the set level are printed whereas
the higher level logs are not printed.
Change-Id: I05a498d4c8c78112207187d9dceaa2386b138c5d
diff --git a/src/ethosu_common.h b/src/ethosu_common.h
index ce7a663..a5ea197 100644
--- a/src/ethosu_common.h
+++ b/src/ethosu_common.h
@@ -22,15 +22,65 @@
#include "ethosu55_interface.h"
#include "ethosu_device.h"
-#if !defined(LOG_ENABLED)
-#define LOG_INFO(format, ...)
-#define LOG_ERR(format, ...)
+#include <stdio.h>
+
+#if defined(DRIVER_LOG_SEVERITY) && (DRIVER_LOG_SEVERITY >= LOG_SEVERITY_EMERG)
+#define LOG_EMERG(format, ...) \
+ fprintf(stderr, format, ##__VA_ARGS__); \
+ fflush(stderr); \
+ exit(-1)
#else
-#define LOG_INFO(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
+#define LOG_EMERG(format, ...)
+#endif
+
+#if defined(DRIVER_LOG_SEVERITY) && (DRIVER_LOG_SEVERITY >= LOG_SEVERITY_ALERT)
+#define LOG_ALERT(format, ...) \
+ fprintf(stderr, format, ##__VA_ARGS__); \
+ fflush(stderr); \
+ exit(-1)
+#else
+#define LOG_ALERT(format, ...)
+#endif
+
+#if defined(DRIVER_LOG_SEVERITY) && (DRIVER_LOG_SEVERITY >= LOG_SEVERITY_CRIT)
+#define LOG_CRIT(format, ...) \
+ fprintf(stderr, format, ##__VA_ARGS__); \
+ fflush(stderr); \
+ exit(-1)
+#else
+#define LOG_CRIT(format, ...)
+#endif
+
+#if defined(DRIVER_LOG_SEVERITY) && (DRIVER_LOG_SEVERITY >= LOG_SEVERITY_ERR)
#define LOG_ERR(format, ...) \
fprintf(stderr, format, ##__VA_ARGS__); \
fflush(stderr)
+#else
+#define LOG_ERR(format, ...)
+#endif
+#if defined(DRIVER_LOG_SEVERITY) && (DRIVER_LOG_SEVERITY >= LOG_SEVERITY_WARN)
+#define LOG_WARN(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
+#else
+#define LOG_WARN(format, ...)
+#endif
+
+#if defined(DRIVER_LOG_SEVERITY) && (DRIVER_LOG_SEVERITY >= LOG_SEVERITY_NOTICE)
+#define LOG_NOTICE(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
+#else
+#define LOG_NOTICE(format, ...)
+#endif
+
+#if defined(DRIVER_LOG_SEVERITY) && (DRIVER_LOG_SEVERITY >= LOG_SEVERITY_INFO)
+#define LOG_INFO(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
+#else
+#define LOG_INFO(format, ...)
+#endif
+
+#if defined(DRIVER_LOG_SEVERITY) && (DRIVER_LOG_SEVERITY >= LOG_SEVERITY_DEBUG)
+#define LOG_DEBUG(format, ...) fprintf(stdout, format, ##__VA_ARGS__)
+#else
+#define LOG_DEBUG(format, ...)
#endif
#if defined(ASSERT_DISABLE)