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:
parent
8814fd974a
commit
dede34d355
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=39760
@ -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;
|
||||||
|
@ -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;
|
||||||
|
Loading…
Reference in New Issue
Block a user