Module Name: src
Committed By: christos
Date: Sun Apr 1 19:29:43 UTC 2018
Modified Files:
src/sys/kern: subr_prf.c
Log Message:
Add the ability to prepend a timestamp [ sec.nsec] relative to boottime
in kernel messages if KLOG_TIMESTAMP is enabled.
To generate a diff of this commit:
cvs rdiff -u -r1.164 -r1.165 src/sys/kern/subr_prf.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/kern/subr_prf.c
diff -u src/sys/kern/subr_prf.c:1.164 src/sys/kern/subr_prf.c:1.165
--- src/sys/kern/subr_prf.c:1.164 Sun Apr 1 15:28:17 2018
+++ src/sys/kern/subr_prf.c Sun Apr 1 15:29:43 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: subr_prf.c,v 1.164 2018/04/01 19:28:17 christos Exp $ */
+/* $NetBSD: subr_prf.c,v 1.165 2018/04/01 19:29:43 christos Exp $ */
/*-
* Copyright (c) 1986, 1988, 1991, 1993
@@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: subr_prf.c,v 1.164 2018/04/01 19:28:17 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_prf.c,v 1.165 2018/04/01 19:29:43 christos Exp $");
#ifdef _KERNEL_OPT
#include "opt_ddb.h"
@@ -482,6 +482,25 @@ putlogpri(int level)
putone('>', TOLOG, NULL);
}
+#ifdef KLOG_TIMESTAMP
+static int needtstamp = 1;
+
+static void
+addtstamp(int flags, struct tty *tp)
+{
+ char buf[64];
+ struct timespec ts;
+ int n;
+
+ getnanouptime(&ts);
+ n = snprintf(buf, sizeof(buf), "[% 9jd.%.9ld] ",
+ (intptr_t)ts.tv_sec, ts.tv_nsec);
+
+ for (int i = 0; i < n; i++)
+ putone(buf[i], flags, tp);
+}
+#endif
+
/*
* putchar: print a single character on console or user terminal.
*
@@ -497,6 +516,15 @@ putchar(int c, int flags, struct tty *tp
return;
}
+#ifdef KLOG_TIMESTAMP
+ if (needtstamp) {
+ addtstamp(flags, tp);
+ needtstamp = 0;
+ }
+
+ if (c == '\n')
+ needtstamp++;
+#endif
putone(c, flags, tp);
#ifdef DDB