Module Name: src Committed By: martin Date: Mon Jan 7 13:09:48 UTC 2019
Modified Files: src/sys/kern: subr_prf.c src/sys/sys: kprintf.h systm.h Log Message: Introduce new helper printf functions that get passed output flags. Add a new kprintf flag to avoid adding time stamps when outputing to the console. Mostly from Christos, any bugs added by me. Use above to print the "twiddle" (when using boot -z) without timestamps. To generate a diff of this commit: cvs rdiff -u -r1.174 -r1.175 src/sys/kern/subr_prf.c cvs rdiff -u -r1.12 -r1.13 src/sys/sys/kprintf.h cvs rdiff -u -r1.280 -r1.281 src/sys/sys/systm.h 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.174 src/sys/kern/subr_prf.c:1.175 --- src/sys/kern/subr_prf.c:1.174 Sun Jul 15 07:24:11 2018 +++ src/sys/kern/subr_prf.c Mon Jan 7 13:09:48 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: subr_prf.c,v 1.174 2018/07/15 07:24:11 martin Exp $ */ +/* $NetBSD: subr_prf.c,v 1.175 2019/01/07 13:09:48 martin Exp $ */ /*- * Copyright (c) 1986, 1988, 1991, 1993 @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: subr_prf.c,v 1.174 2018/07/15 07:24:11 martin Exp $"); +__KERNEL_RCSID(0, "$NetBSD: subr_prf.c,v 1.175 2019/01/07 13:09:48 martin Exp $"); #ifdef _KERNEL_OPT #include "opt_ddb.h" @@ -232,8 +232,8 @@ twiddle(void) kprintf_lock(); - putchar(twiddle_chars[pos++ & 3], TOCONS, NULL); - putchar('\b', TOCONS, NULL); + putchar(twiddle_chars[pos++ & 3], TOCONS|NOTSTAMP, NULL); + putchar('\b', TOCONS|NOTSTAMP, NULL); kprintf_unlock(); } @@ -526,7 +526,7 @@ putchar(int c, int flags, struct tty *tp } #ifndef KLOG_NOTIMESTAMP - if (c != '\0' && c != '\n' && needtstamp) { + if (c != '\0' && c != '\n' && needtstamp && (flags & NOTSTAMP) == 0) { addtstamp(flags, tp); needtstamp = 0; } @@ -1052,17 +1052,31 @@ aprint_debug_ifnet(struct ifnet *ifp, co } void -printf_tolog(const char *fmt, ...) +vprintf_flags(int flags, const char *fmt, va_list ap) { - va_list ap; - kprintf_lock(); + kprintf(fmt, flags, NULL, NULL, ap); + kprintf_unlock(); +} + +void +printf_flags(int flags, const char *fmt, ...) +{ + va_list ap; va_start(ap, fmt); - kprintf(fmt, TOLOG, NULL, NULL, ap); + vprintf_flags(flags, fmt, ap); va_end(ap); +} - kprintf_unlock(); +void +printf_tolog(const char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + vprintf_flags(TOLOG, fmt, ap); + va_end(ap); } /* @@ -1074,13 +1088,9 @@ printf_nolog(const char *fmt, ...) { va_list ap; - kprintf_lock(); - va_start(ap, fmt); - kprintf(fmt, TOCONS, NULL, NULL, ap); + vprintf_flags(TOCONS, fmt, ap); va_end(ap); - - kprintf_unlock(); } /* @@ -1095,16 +1105,9 @@ printf(const char *fmt, ...) { va_list ap; - kprintf_lock(); - va_start(ap, fmt); - kprintf(fmt, TOCONS | TOLOG, NULL, NULL, ap); + vprintf_flags(TOCONS | TOLOG, fmt, ap); va_end(ap); - - kprintf_unlock(); - - if (!panicstr) - logwakeup(); } /* @@ -1115,11 +1118,7 @@ printf(const char *fmt, ...) void vprintf(const char *fmt, va_list ap) { - kprintf_lock(); - - kprintf(fmt, TOCONS | TOLOG, NULL, NULL, ap); - - kprintf_unlock(); + vprintf_flags(TOCONS | TOLOG, fmt, ap); if (!panicstr) logwakeup(); Index: src/sys/sys/kprintf.h diff -u src/sys/sys/kprintf.h:1.12 src/sys/sys/kprintf.h:1.13 --- src/sys/sys/kprintf.h:1.12 Sun Aug 10 16:44:36 2014 +++ src/sys/sys/kprintf.h Mon Jan 7 13:09:47 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: kprintf.h,v 1.12 2014/08/10 16:44:36 tls Exp $ */ +/* $NetBSD: kprintf.h,v 1.13 2019/01/07 13:09:47 martin Exp $ */ /*- * Copyright (c) 1986, 1988, 1991, 1993 @@ -55,6 +55,7 @@ #define TOBUFONLY 0x0008 /* to the buffer (only) [for snprintf] */ #define TODDB 0x0010 /* to ddb console */ #define NOLOCK 0x1000 /* don't acquire a tty lock */ +#define NOTSTAMP 0x2000 /* no time stamp on console */ void kprintf_init(void); void kprintf_init_callout(void); Index: src/sys/sys/systm.h diff -u src/sys/sys/systm.h:1.280 src/sys/sys/systm.h:1.281 --- src/sys/sys/systm.h:1.280 Sun Dec 2 21:00:13 2018 +++ src/sys/sys/systm.h Mon Jan 7 13:09:47 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: systm.h,v 1.280 2018/12/02 21:00:13 maxv Exp $ */ +/* $NetBSD: systm.h,v 1.281 2019/01/07 13:09:47 martin Exp $ */ /*- * Copyright (c) 1982, 1988, 1991, 1993 @@ -240,6 +240,10 @@ void vprintf(const char *, va_list) __pr int vsnprintf(char *, size_t, const char *, va_list) __printflike(3, 0); +void vprintf_flags(int, const char *, va_list) __printflike(2, 0); + +void printf_flags(int, const char *, ...) __printflike(2, 3); + int humanize_number(char *, size_t, uint64_t, const char *, int); void twiddle(void);