summaryrefslogtreecommitdiff
path: root/include/common/debug.h
diff options
context:
space:
mode:
authordavidcunado-arm <david.cunado@arm.com>2017-09-18 12:17:33 +0100
committerGitHub <noreply@github.com>2017-09-18 12:17:33 +0100
commitb4f4a2f06ce4da2b7856abb71ad38e726aa7ec68 (patch)
treef1e70250154010f18994c4d1ea68ce0c133bd722 /include/common/debug.h
parent756f9bb86ea71b5816da53e4a40ee6e3fe9e5625 (diff)
parent7f56e9a31c91099cd0147883a0282ec89ae0b346 (diff)
Merge pull request #1093 from soby-mathew/eb/log_fw
Implement log framework
Diffstat (limited to 'include/common/debug.h')
-rw-r--r--include/common/debug.h27
1 files changed, 21 insertions, 6 deletions
diff --git a/include/common/debug.h b/include/common/debug.h
index 814cf840..3f0f84a1 100644
--- a/include/common/debug.h
+++ b/include/common/debug.h
@@ -24,47 +24,62 @@
#define LOG_LEVEL_VERBOSE 50
#ifndef __ASSEMBLY__
+#include <stdarg.h>
#include <stdio.h>
+/*
+ * Define Log Markers corresponding to each log level which will
+ * be embedded in the format string and is expected by tf_log() to determine
+ * the log level.
+ */
+#define LOG_MARKER_ERROR "\xa" /* 10 */
+#define LOG_MARKER_NOTICE "\x14" /* 20 */
+#define LOG_MARKER_WARNING "\x1e" /* 30 */
+#define LOG_MARKER_INFO "\x28" /* 40 */
+#define LOG_MARKER_VERBOSE "\x32" /* 50 */
+
#if LOG_LEVEL >= LOG_LEVEL_NOTICE
-# define NOTICE(...) tf_printf("NOTICE: " __VA_ARGS__)
+# define NOTICE(...) tf_log(LOG_MARKER_NOTICE __VA_ARGS__)
#else
# define NOTICE(...)
#endif
#if LOG_LEVEL >= LOG_LEVEL_ERROR
-# define ERROR(...) tf_printf("ERROR: " __VA_ARGS__)
+# define ERROR(...) tf_log(LOG_MARKER_ERROR __VA_ARGS__)
#else
# define ERROR(...)
#endif
#if LOG_LEVEL >= LOG_LEVEL_WARNING
-# define WARN(...) tf_printf("WARNING: " __VA_ARGS__)
+# define WARN(...) tf_log(LOG_MARKER_WARNING __VA_ARGS__)
#else
# define WARN(...)
#endif
#if LOG_LEVEL >= LOG_LEVEL_INFO
-# define INFO(...) tf_printf("INFO: " __VA_ARGS__)
+# define INFO(...) tf_log(LOG_MARKER_INFO __VA_ARGS__)
#else
# define INFO(...)
#endif
#if LOG_LEVEL >= LOG_LEVEL_VERBOSE
-# define VERBOSE(...) tf_printf("VERBOSE: " __VA_ARGS__)
+# define VERBOSE(...) tf_log(LOG_MARKER_VERBOSE __VA_ARGS__)
#else
# define VERBOSE(...)
#endif
-
void __dead2 do_panic(void);
#define panic() do_panic()
/* Function called when stack protection check code detects a corrupted stack */
void __dead2 __stack_chk_fail(void);
+void tf_log(const char *fmt, ...) __printflike(1, 2);
void tf_printf(const char *fmt, ...) __printflike(1, 2);
int tf_snprintf(char *s, size_t n, const char *fmt, ...) __printflike(3, 4);
+void tf_vprintf(const char *fmt, va_list args);
+void tf_string_print(const char *str);
+void tf_log_set_max_level(unsigned int log_level);
#endif /* __ASSEMBLY__ */
#endif /* __DEBUG_H__ */