diff options
| -rw-r--r-- | mos/sys/inc/kern/trace.h | 11 | ||||
| -rw-r--r-- | mos/sys/kern/kern_trace.c | 12 |
2 files changed, 23 insertions, 0 deletions
diff --git a/mos/sys/inc/kern/trace.h b/mos/sys/inc/kern/trace.h index 820478e..bf60380 100644 --- a/mos/sys/inc/kern/trace.h +++ b/mos/sys/inc/kern/trace.h @@ -6,6 +6,8 @@ #ifndef _KERN_TRACE_H_ #define _KERN_TRACE_H_ +#define TRACE_BUF_LEN 256 + /* * Write a raw null terminated string to the system * trace logs @@ -14,4 +16,13 @@ */ void trace_raw(const char *str); +/* + * Write a formatted string to the system trace + * logs + * + * @fmt: Format string + * @<...>: Args + */ +void trace(const char *fmt, ...); + #endif /* !_KERN_TRACE_H_ */ diff --git a/mos/sys/kern/kern_trace.c b/mos/sys/kern/kern_trace.c index 65f32a6..ee4f6c7 100644 --- a/mos/sys/kern/kern_trace.c +++ b/mos/sys/kern/kern_trace.c @@ -20,3 +20,15 @@ trace_raw(const char *str) len = strlen(str); mu_uart_writed(str, len); } + +void +trace(const char *fmt, ...) +{ + char buf[TRACE_BUF_LEN]; + va_list ap; + + va_start(ap, fmt); + vsnprintf(buf, sizeof(buf), fmt, ap); + trace_raw(buf); + va_end(ap); +} |
