1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-15 10:17:20 +00:00

Add sysctl 'machdep.msgbuf_clear'. Setting it to anything causes the

kernel message buffer to be cleared. It comes handy in situations when
the only logging facility you have is the msgbuf.

Reviewed by:	jkh
This commit is contained in:
Andrzej Bialecki 1998-09-29 11:20:16 +00:00
parent 8814fd974a
commit dede34d355
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=39760
2 changed files with 50 additions and 8 deletions

View File

@ -35,7 +35,7 @@
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91 * from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
* $Id: machdep.c,v 1.309 1998/09/14 22:43:32 jdp Exp $ * $Id: machdep.c,v 1.310 1998/09/25 17:34:48 peter Exp $
*/ */
#include "apm.h" #include "apm.h"
@ -207,8 +207,8 @@ sysctl_machdep_msgbuf SYSCTL_HANDLER_ARGS
{ {
int error; int error;
/* Unwind the buffer, so that is linear (possibly starting with /* Unwind the buffer, so that it's linear (possibly starting with
* some initial nulls. * some initial nulls).
*/ */
error=sysctl_handle_opaque(oidp,msgbufp->msg_ptr+msgbufp->msg_bufr, error=sysctl_handle_opaque(oidp,msgbufp->msg_ptr+msgbufp->msg_bufr,
msgbufp->msg_size-msgbufp->msg_bufr,req); msgbufp->msg_size-msgbufp->msg_bufr,req);
@ -221,7 +221,28 @@ sysctl_machdep_msgbuf SYSCTL_HANDLER_ARGS
} }
SYSCTL_PROC(_machdep, OID_AUTO, msgbuf, CTLTYPE_STRING|CTLFLAG_RD, SYSCTL_PROC(_machdep, OID_AUTO, msgbuf, CTLTYPE_STRING|CTLFLAG_RD,
0, 0, sysctl_machdep_msgbuf, "A",""); 0, 0, sysctl_machdep_msgbuf, "A","Contents of kernel message buffer");
static int msgbuf_clear;
static int
sysctl_machdep_msgbuf_clear SYSCTL_HANDLER_ARGS
{
int error;
error = sysctl_handle_int(oidp, oidp->oid_arg1, oidp->oid_arg2,
req);
if (!error && req->newptr) {
/* Clear the buffer and reset write pointer */
bzero(msgbufp->msg_ptr,msgbufp->msg_size);
msgbufp->msg_bufr=msgbufp->msg_bufx=0;
msgbuf_clear=0;
}
return (error);
}
SYSCTL_PROC(_machdep, OID_AUTO, msgbuf_clear, CTLTYPE_INT|CTLFLAG_RW,
&msgbuf_clear, 0, sysctl_machdep_msgbuf_clear, "I",
"Clear kernel message buffer");
int bootverbose = 0, Maxmem = 0; int bootverbose = 0, Maxmem = 0;
long dumplo; long dumplo;

View File

@ -35,7 +35,7 @@
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* from: @(#)machdep.c 7.4 (Berkeley) 6/3/91 * from: @(#)machdep.c 7.4 (Berkeley) 6/3/91
* $Id: machdep.c,v 1.309 1998/09/14 22:43:32 jdp Exp $ * $Id: machdep.c,v 1.310 1998/09/25 17:34:48 peter Exp $
*/ */
#include "apm.h" #include "apm.h"
@ -207,8 +207,8 @@ sysctl_machdep_msgbuf SYSCTL_HANDLER_ARGS
{ {
int error; int error;
/* Unwind the buffer, so that is linear (possibly starting with /* Unwind the buffer, so that it's linear (possibly starting with
* some initial nulls. * some initial nulls).
*/ */
error=sysctl_handle_opaque(oidp,msgbufp->msg_ptr+msgbufp->msg_bufr, error=sysctl_handle_opaque(oidp,msgbufp->msg_ptr+msgbufp->msg_bufr,
msgbufp->msg_size-msgbufp->msg_bufr,req); msgbufp->msg_size-msgbufp->msg_bufr,req);
@ -221,7 +221,28 @@ sysctl_machdep_msgbuf SYSCTL_HANDLER_ARGS
} }
SYSCTL_PROC(_machdep, OID_AUTO, msgbuf, CTLTYPE_STRING|CTLFLAG_RD, SYSCTL_PROC(_machdep, OID_AUTO, msgbuf, CTLTYPE_STRING|CTLFLAG_RD,
0, 0, sysctl_machdep_msgbuf, "A",""); 0, 0, sysctl_machdep_msgbuf, "A","Contents of kernel message buffer");
static int msgbuf_clear;
static int
sysctl_machdep_msgbuf_clear SYSCTL_HANDLER_ARGS
{
int error;
error = sysctl_handle_int(oidp, oidp->oid_arg1, oidp->oid_arg2,
req);
if (!error && req->newptr) {
/* Clear the buffer and reset write pointer */
bzero(msgbufp->msg_ptr,msgbufp->msg_size);
msgbufp->msg_bufr=msgbufp->msg_bufx=0;
msgbuf_clear=0;
}
return (error);
}
SYSCTL_PROC(_machdep, OID_AUTO, msgbuf_clear, CTLTYPE_INT|CTLFLAG_RW,
&msgbuf_clear, 0, sysctl_machdep_msgbuf_clear, "I",
"Clear kernel message buffer");
int bootverbose = 0, Maxmem = 0; int bootverbose = 0, Maxmem = 0;
long dumplo; long dumplo;