diff --git a/sys/kern/subr_prf.c b/sys/kern/subr_prf.c index 13a4ade6a298..4fb776b3ef16 100644 --- a/sys/kern/subr_prf.c +++ b/sys/kern/subr_prf.c @@ -46,7 +46,6 @@ #include #include #include -#include #include #include @@ -121,53 +120,39 @@ uprintf(const char *fmt, ...) return retval; } -tpr_t -tprintf_open(p) - struct proc *p; -{ - - if (p->p_flag & P_CONTROLT && p->p_session->s_ttyvp) { - SESSHOLD(p->p_session); - return ((tpr_t) p->p_session); - } - return ((tpr_t) NULL); -} - -void -tprintf_close(sess) - tpr_t sess; -{ - - if (sess) - SESSRELE((struct session *) sess); -} - /* * tprintf prints on the controlling terminal associated - * with the given session. + * with the given session, possibly to the log as well. */ -int -tprintf(tpr_t tpr, const char *fmt, ...) +void +tprintf(struct proc *p, int pri, const char *fmt, ...) { - struct session *sess = (struct session *)tpr; struct tty *tp = NULL; - int flags = TOLOG; + int flags = 0, shld = 0; va_list ap; struct putchar_arg pca; int retval; - logpri(LOG_INFO); - if (sess && sess->s_ttyvp && ttycheckoutq(sess->s_ttyp, 0)) { - flags |= TOTTY; - tp = sess->s_ttyp; + if (pri != -1) { + logpri(pri); + flags |= TOLOG; + } + if (p->p_flag & P_CONTROLT && p->p_session->s_ttyvp) { + SESSHOLD(p->p_session); + shld++; + if (ttycheckoutq(p->p_session->s_ttyp, 0)) { + flags |= TOTTY; + tp = p->p_session->s_ttyp; + } } - va_start(ap, fmt); pca.tty = tp; pca.flags = flags; + va_start(ap, fmt); retval = kvprintf(fmt, putchar, &pca, 10, ap); va_end(ap); + if (shld) + SESSRELE(p->p_session); logwakeup(); - return retval; } /* @@ -222,7 +207,6 @@ log(int level, const char *fmt, ...) va_end(ap); } logwakeup(); - return retval; } static void diff --git a/sys/nfs/nfs_socket.c b/sys/nfs/nfs_socket.c index 7d8bec453643..f1ace4ea522b 100644 --- a/sys/nfs/nfs_socket.c +++ b/sys/nfs/nfs_socket.c @@ -53,7 +53,6 @@ #include #include #include -#include #include #include @@ -1969,14 +1968,8 @@ nfs_msg(p, server, msg) struct proc *p; char *server, *msg; { - tpr_t tpr; - if (p) - tpr = tprintf_open(p); - else - tpr = NULL; - tprintf(tpr, "nfs server %s: %s\n", server, msg); - tprintf_close(tpr); + tprintf(p, LOG_INFO, "nfs server %s: %s\n", server, msg); return (0); } diff --git a/sys/nfsclient/nfs_socket.c b/sys/nfsclient/nfs_socket.c index 7d8bec453643..f1ace4ea522b 100644 --- a/sys/nfsclient/nfs_socket.c +++ b/sys/nfsclient/nfs_socket.c @@ -53,7 +53,6 @@ #include #include #include -#include #include #include @@ -1969,14 +1968,8 @@ nfs_msg(p, server, msg) struct proc *p; char *server, *msg; { - tpr_t tpr; - if (p) - tpr = tprintf_open(p); - else - tpr = NULL; - tprintf(tpr, "nfs server %s: %s\n", server, msg); - tprintf_close(tpr); + tprintf(p, LOG_INFO, "nfs server %s: %s\n", server, msg); return (0); } diff --git a/sys/nfsserver/nfs_srvsock.c b/sys/nfsserver/nfs_srvsock.c index 7d8bec453643..f1ace4ea522b 100644 --- a/sys/nfsserver/nfs_srvsock.c +++ b/sys/nfsserver/nfs_srvsock.c @@ -53,7 +53,6 @@ #include #include #include -#include #include #include @@ -1969,14 +1968,8 @@ nfs_msg(p, server, msg) struct proc *p; char *server, *msg; { - tpr_t tpr; - if (p) - tpr = tprintf_open(p); - else - tpr = NULL; - tprintf(tpr, "nfs server %s: %s\n", server, msg); - tprintf_close(tpr); + tprintf(p, LOG_INFO, "nfs server %s: %s\n", server, msg); return (0); } diff --git a/sys/sys/systm.h b/sys/sys/systm.h index de83697d7b34..fc8b9b176e41 100644 --- a/sys/sys/systm.h +++ b/sys/sys/systm.h @@ -122,6 +122,7 @@ long strtol __P((const char *, char **, int)); u_long strtoul __P((const char *, char **, int)); quad_t strtoq __P((const char *, char **, int)); u_quad_t strtouq __P((const char *, char **, int)); +void tprintf __P((struct proc *p, int pri, const char *, ...)) __printflike(3, 4); void bcopy __P((const void *from, void *to, size_t len)); void ovbcopy __P((const void *from, void *to, size_t len)); diff --git a/sys/sys/tprintf.h b/sys/sys/tprintf.h deleted file mode 100644 index ef5660907adb..000000000000 --- a/sys/sys/tprintf.h +++ /dev/null @@ -1,49 +0,0 @@ -/*- - * Copyright (c) 1990, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)tprintf.h 8.1 (Berkeley) 6/2/93 - * $FreeBSD$ - */ - -#ifndef _SYS_TPRINTF_H_ -#define _SYS_TPRINTF_H_ - -typedef struct session *tpr_t; - -struct proc; - -tpr_t tprintf_open __P((struct proc *)); -void tprintf_close __P((tpr_t)); - -int tprintf __P((tpr_t, const char *fmt, ...)) __printflike(2, 3); - -#endif