xref: /dflybsd-src/share/man/man9/sysctl.9 (revision 2a1faf817b69e5a0cf9a1cf69981a94cda3c2316)
159308cc9SSascha Wildner.\"
259308cc9SSascha Wildner.\" Copyright (c) 2006 Robert N. M. Watson
359308cc9SSascha Wildner.\" All rights reserved.
459308cc9SSascha Wildner.\"
559308cc9SSascha Wildner.\" Redistribution and use in source and binary forms, with or without
659308cc9SSascha Wildner.\" modification, are permitted provided that the following conditions
759308cc9SSascha Wildner.\" are met:
859308cc9SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright
959308cc9SSascha Wildner.\"    notice, this list of conditions and the following disclaimer.
1059308cc9SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright
1159308cc9SSascha Wildner.\"    notice, this list of conditions and the following disclaimer in the
1259308cc9SSascha Wildner.\"    documentation and/or other materials provided with the distribution.
1359308cc9SSascha Wildner.\"
1459308cc9SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1559308cc9SSascha Wildner.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1659308cc9SSascha Wildner.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1759308cc9SSascha Wildner.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1859308cc9SSascha Wildner.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1959308cc9SSascha Wildner.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2059308cc9SSascha Wildner.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2159308cc9SSascha Wildner.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2259308cc9SSascha Wildner.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2359308cc9SSascha Wildner.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2459308cc9SSascha Wildner.\" SUCH DAMAGE.
2559308cc9SSascha Wildner.\"
2659308cc9SSascha Wildner.\" $FreeBSD: src/share/man/man9/sysctl.9,v 1.3 2006/04/28 23:21:36 keramida Exp $
278e1c6f81SMatthias Schmidt.\" $DragonFly: src/share/man/man9/sysctl.9,v 1.6 2008/09/02 11:50:46 matthias Exp $
2859308cc9SSascha Wildner.\"
298e1c6f81SMatthias Schmidt.Dd September 2, 2008
3059308cc9SSascha Wildner.Dt SYSCTL 9
3159308cc9SSascha Wildner.Os
3259308cc9SSascha Wildner.Sh NAME
3359308cc9SSascha Wildner.Nm SYSCTL_DECL ,
3459308cc9SSascha Wildner.Nm SYSCTL_INT ,
3559308cc9SSascha Wildner.Nm SYSCTL_LONG ,
3659308cc9SSascha Wildner.Nm SYSCTL_QUAD ,
3759308cc9SSascha Wildner.Nm SYSCTL_NODE ,
3859308cc9SSascha Wildner.Nm SYSCTL_OPAQUE ,
3959308cc9SSascha Wildner.Nm SYSCTL_PROC ,
4059308cc9SSascha Wildner.Nm SYSCTL_STRING ,
4159308cc9SSascha Wildner.Nm SYSCTL_STRUCT ,
4259308cc9SSascha Wildner.Nm SYSCTL_UINT ,
4359308cc9SSascha Wildner.Nm SYSCTL_ULONG ,
4459308cc9SSascha Wildner.Nm SYSCTL_UQUAD
4559308cc9SSascha Wildner.Nd Static sysctl declaration functions
4659308cc9SSascha Wildner.Sh SYNOPSIS
4759308cc9SSascha Wildner.In sys/types.h
4859308cc9SSascha Wildner.In sys/sysctl.h
4959308cc9SSascha Wildner.Fo SYSCTL_DECL
5059308cc9SSascha Wildner.Fa "name"
5159308cc9SSascha Wildner.Fc
5259308cc9SSascha Wildner.Fo SYSCTL_INT
5359308cc9SSascha Wildner.Fa "parent"
5459308cc9SSascha Wildner.Fa "nbr"
5559308cc9SSascha Wildner.Fa "name"
5659308cc9SSascha Wildner.Fa "access"
5759308cc9SSascha Wildner.Fa "ptr"
5859308cc9SSascha Wildner.Fa "val"
5959308cc9SSascha Wildner.Fa "descr"
6059308cc9SSascha Wildner.Fc
6159308cc9SSascha Wildner.Fo SYSCTL_LONG
6259308cc9SSascha Wildner.Fa "parent"
6359308cc9SSascha Wildner.Fa "nbr"
6459308cc9SSascha Wildner.Fa "name"
6559308cc9SSascha Wildner.Fa "access"
6659308cc9SSascha Wildner.Fa "ptr"
6759308cc9SSascha Wildner.Fa "val"
6859308cc9SSascha Wildner.Fa "descr"
6959308cc9SSascha Wildner.Fc
7059308cc9SSascha Wildner.Fo SYSCTL_QUAD
7159308cc9SSascha Wildner.Fa "parent"
7259308cc9SSascha Wildner.Fa "nbr"
7359308cc9SSascha Wildner.Fa "name"
7459308cc9SSascha Wildner.Fa "access"
7559308cc9SSascha Wildner.Fa "ptr"
7659308cc9SSascha Wildner.Fa "val"
7759308cc9SSascha Wildner.Fa "descr"
7859308cc9SSascha Wildner.Fc
7959308cc9SSascha Wildner.Fo SYSCTL_NODE
8059308cc9SSascha Wildner.Fa "parent"
8159308cc9SSascha Wildner.Fa "nbr"
8259308cc9SSascha Wildner.Fa "name"
8359308cc9SSascha Wildner.Fa "access"
8459308cc9SSascha Wildner.Fa "handler"
8559308cc9SSascha Wildner.Fa "descr"
8659308cc9SSascha Wildner.Fc
8759308cc9SSascha Wildner.Fo SYSCTL_OPAQUE
8859308cc9SSascha Wildner.Fa "parent"
8959308cc9SSascha Wildner.Fa "nbr"
9059308cc9SSascha Wildner.Fa "name"
9159308cc9SSascha Wildner.Fa "access"
9259308cc9SSascha Wildner.Fa "ptr"
9359308cc9SSascha Wildner.Fa "len"
9459308cc9SSascha Wildner.Fa "fmt"
9559308cc9SSascha Wildner.Fa "descr"
9659308cc9SSascha Wildner.Fc
9759308cc9SSascha Wildner.Fo SYSCTL_PROC
9859308cc9SSascha Wildner.Fa "parent"
9959308cc9SSascha Wildner.Fa "nbr"
10059308cc9SSascha Wildner.Fa "name"
10159308cc9SSascha Wildner.Fa "access"
10259308cc9SSascha Wildner.Fa "ptr"
10359308cc9SSascha Wildner.Fa "arg"
10459308cc9SSascha Wildner.Fa "handler"
10559308cc9SSascha Wildner.Fa "fmt"
10659308cc9SSascha Wildner.Fa "descr"
10759308cc9SSascha Wildner.Fc
10859308cc9SSascha Wildner.Fo SYSCTL_STRING
10959308cc9SSascha Wildner.Fa "parent"
11059308cc9SSascha Wildner.Fa "nbr"
11159308cc9SSascha Wildner.Fa "name"
11259308cc9SSascha Wildner.Fa "access"
11359308cc9SSascha Wildner.Fa "arg"
11459308cc9SSascha Wildner.Fa "len"
11559308cc9SSascha Wildner.Fa "descr"
11659308cc9SSascha Wildner.Fc
11759308cc9SSascha Wildner.Fo SYSCTL_STRUCT
11859308cc9SSascha Wildner.Fa "parent"
11959308cc9SSascha Wildner.Fa "nbr"
12059308cc9SSascha Wildner.Fa "name"
12159308cc9SSascha Wildner.Fa "access"
12259308cc9SSascha Wildner.Fa "ptr"
12359308cc9SSascha Wildner.Fa "type"
12459308cc9SSascha Wildner.Fa "descr"
12559308cc9SSascha Wildner.Fc
12659308cc9SSascha Wildner.Fo SYSCTL_UINT
12759308cc9SSascha Wildner.Fa "parent"
12859308cc9SSascha Wildner.Fa "nbr"
12959308cc9SSascha Wildner.Fa "name"
13059308cc9SSascha Wildner.Fa "access"
13159308cc9SSascha Wildner.Fa "ptr"
13259308cc9SSascha Wildner.Fa "val"
13359308cc9SSascha Wildner.Fa "descr"
13459308cc9SSascha Wildner.Fc
13559308cc9SSascha Wildner.Fo SYSCTL_ULONG
13659308cc9SSascha Wildner.Fa "parent"
13759308cc9SSascha Wildner.Fa "nbr"
13859308cc9SSascha Wildner.Fa "name"
13959308cc9SSascha Wildner.Fa "access"
14059308cc9SSascha Wildner.Fa "ptr"
14159308cc9SSascha Wildner.Fa "val"
14259308cc9SSascha Wildner.Fa "descr"
14359308cc9SSascha Wildner.Fc
14459308cc9SSascha Wildner.Fo SYSCTL_UQUAD
14559308cc9SSascha Wildner.Fa "parent"
14659308cc9SSascha Wildner.Fa "nbr"
14759308cc9SSascha Wildner.Fa "name"
14859308cc9SSascha Wildner.Fa "access"
14959308cc9SSascha Wildner.Fa "ptr"
15059308cc9SSascha Wildner.Fa "val"
15159308cc9SSascha Wildner.Fa "descr"
15259308cc9SSascha Wildner.Fc
15359308cc9SSascha Wildner.Sh DESCRIPTION
15459308cc9SSascha WildnerThe
15559308cc9SSascha Wildner.Nm
15659308cc9SSascha Wildnerkernel interfaces allow code to statically declare
15759308cc9SSascha Wildner.Xr sysctl 8
15859308cc9SSascha WildnerMIB entries, which will be initialized when the kernel module containing the
15959308cc9SSascha Wildnerdeclaration is initialized.
16059308cc9SSascha WildnerWhen the module is unloaded, the sysctl will be automatically destroyed.
16159308cc9SSascha Wildner.Pp
16259308cc9SSascha WildnerSysctl nodes are created in a hierarchical tree, with all static nodes being
16359308cc9SSascha Wildnerrepresented by named C data structures; in order to create a new node under
16459308cc9SSascha Wildneran existing node in the tree, the structure representing the desired parent
16559308cc9SSascha Wildnernode must be declared in the current context using
16659308cc9SSascha Wildner.Fn SYSCTL_DECL .
16759308cc9SSascha Wildner.Pp
16859308cc9SSascha WildnerNew nodes are declared using one of
16959308cc9SSascha Wildner.Nm SYSCTL_INT ,
17059308cc9SSascha Wildner.Nm SYSCTL_LONG ,
17159308cc9SSascha Wildner.Nm SYSCTL_QUAD ,
17259308cc9SSascha Wildner.Nm SYSCTL_NODE ,
17359308cc9SSascha Wildner.Nm SYSCTL_OPAQUE ,
17459308cc9SSascha Wildner.Nm SYSCTL_PROC ,
17559308cc9SSascha Wildner.Nm SYSCTL_STRING ,
17659308cc9SSascha Wildner.Nm SYSCTL_STRUCT ,
17759308cc9SSascha Wildner.Nm SYSCTL_UINT ,
17859308cc9SSascha Wildner.Nm SYSCTL_ULONG ,
17959308cc9SSascha Wildnerand
18059308cc9SSascha Wildner.Nm SYSCTL_UQUAD .
18159308cc9SSascha WildnerEach macro accepts a parent name, as declared using
18259308cc9SSascha Wildner.Nm SYSCTL_DECL ,
18359308cc9SSascha Wildneran OID number, typically
18459308cc9SSascha Wildner.Dv OID_AUTO ,
18559308cc9SSascha Wildnera node name, a set of control and access flags, and a description.
18659308cc9SSascha WildnerDepending on the macro, a pointer to a variable supporting the MIB entry, a
18759308cc9SSascha Wildnersize, a value, and a function pointer implementing the MIB entry may also be
18859308cc9SSascha Wildnerpresent.
18959308cc9SSascha Wildner.Pp
19059308cc9SSascha WildnerFor most of the above macros, declaring a type as part of the access flags is
19159308cc9SSascha Wildnernot necessary -- however, when declaring a sysctl implemented by a function,
19259308cc9SSascha Wildnerincluding a type in the access mask is required:
193f54c32e1SSascha Wildner.Bl -tag -width ".Dv CTLTYPE_STRING"
19459308cc9SSascha Wildner.It Dv CTLTYPE_NODE
19559308cc9SSascha WildnerThis is a node intended to be a parent for other nodes.
19659308cc9SSascha Wildner.It Dv CTLTYPE_INT
19759308cc9SSascha WildnerThis is a signed integer.
19859308cc9SSascha Wildner.It Dv CTLTYPE_STRING
19959308cc9SSascha WildnerThis is a nul-terminated string stored in a character array.
20059308cc9SSascha Wildner.It Dv CTLTYPE_QUAD
20159308cc9SSascha WildnerThis is a 64-bit signed integer.
20259308cc9SSascha Wildner.It Dv CTLTYPE_OPAQUE
20359308cc9SSascha WildnerThis is an opaque data structure.
20459308cc9SSascha Wildner.It Dv CTLTYPE_STRUCT
20559308cc9SSascha WildnerAlias for
20659308cc9SSascha Wildner.Dv CTLTYPE_OPAQUE .
20759308cc9SSascha Wildner.It Dv CTLTYPE_UINT
20859308cc9SSascha WildnerThis is an unsigned integer.
20959308cc9SSascha Wildner.It Dv CTLTYPE_LONG
21059308cc9SSascha WildnerThis is a signed long.
21159308cc9SSascha Wildner.It Dv CTLTYPE_ULONG
21259308cc9SSascha WildnerThis is an unsigned long.
21359308cc9SSascha Wildner.It Dv CTLTYPE_UQUAD
21459308cc9SSascha WildnerThis is a 64-bit unsigned integer.
21559308cc9SSascha Wildner.El
21659308cc9SSascha Wildner.Pp
21759308cc9SSascha WildnerAll sysctl types except for new node declarations require one or more flags
21859308cc9SSascha Wildnerto be set indicating the read and write disposition of the sysctl:
219f54c32e1SSascha Wildner.Bl -tag -width ".Dv CTLFLAG_ANYBODY"
22059308cc9SSascha Wildner.It Dv CTLFLAG_RD
22159308cc9SSascha WildnerThis is a read-only sysctl.
2226d600fe3SHasso Tepper.It Dv CTLFLAG_WR
22359308cc9SSascha WildnerThis is a writable sysctl.
22459308cc9SSascha Wildner.It Dv CTLFLAG_RW
22559308cc9SSascha WildnerThis sysctl is readable and writable.
22659308cc9SSascha Wildner.It Dv CTLFLAG_ANYBODY
22759308cc9SSascha WildnerAny user or process can write to this sysctl.
22859308cc9SSascha Wildner.It Dv CTLFLAG_SECURE
22959308cc9SSascha WildnerThis sysctl can be written to only if the effective securelevel of the
23059308cc9SSascha Wildnerprocess is <= 0.
23159308cc9SSascha Wildner.It Dv CTLFLAG_PRISON
23259308cc9SSascha WildnerThis sysctl can be written to by processes in
23359308cc9SSascha Wildner.Xr jail 2 .
234afc5c1adSSascha Wildner.\".It Dv CTLFLAG_SKIP
235afc5c1adSSascha Wildner.\"When iterating the sysctl name space, do not list this sysctl.
23659308cc9SSascha Wildner.El
23759308cc9SSascha Wildner.Pp
23859308cc9SSascha WildnerWhen creating new sysctls, careful attention should be paid to the security
23959308cc9SSascha Wildnerimplications of the monitoring or management interface being created.
24059308cc9SSascha WildnerMost sysctls present in the kernel are read-only or writable only by the
24159308cc9SSascha Wildnersuperuser.
24259308cc9SSascha WildnerSysctls exporting extensive information on system data structures and
24359308cc9SSascha Wildneroperation, especially those implemented using procedures, will wish to
24459308cc9SSascha Wildnerimplement access control to limit the undesired exposure of information about
24559308cc9SSascha Wildnerother processes, network connections, etc.
24659308cc9SSascha Wildner.Pp
24759308cc9SSascha WildnerThe following top level sysctl name spaces are commonly used:
248afc5c1adSSascha Wildner.Bl -tag -width ".Va machdep"
249afc5c1adSSascha Wildner.It Va compat
25059308cc9SSascha WildnerCompatibility layer information.
251afc5c1adSSascha Wildner.It Va debug
25259308cc9SSascha WildnerDebugging information.
25359308cc9SSascha WildnerVarious name spaces exist under
254afc5c1adSSascha Wildner.Va debug .
255afc5c1adSSascha Wildner.It Va hw
25659308cc9SSascha WildnerHardware and device driver information.
257afc5c1adSSascha Wildner.It Va lwkt
25859308cc9SSascha WildnerInformation about the
25959308cc9SSascha Wildner.Xr lwkt 9
26059308cc9SSascha Wildnersubsystem.
261afc5c1adSSascha Wildner.It Va kern
26259308cc9SSascha WildnerKernel behavior tuning; generally deprecated in favor of more specific
26359308cc9SSascha Wildnername spaces.
264afc5c1adSSascha Wildner.It Va machdep
26559308cc9SSascha WildnerMachine-dependent configuration parameters.
266afc5c1adSSascha Wildner.It Va net
26759308cc9SSascha WildnerNetwork subsystem.
26859308cc9SSascha WildnerVarious protocols have name spaces under
269afc5c1adSSascha Wildner.Va net .
270afc5c1adSSascha Wildner.It Va sysctl
27159308cc9SSascha WildnerReserved name space for the implementation of sysctl.
272afc5c1adSSascha Wildner.It Va user
27359308cc9SSascha WildnerConfiguration settings relating to user application behavior.
27459308cc9SSascha WildnerGenerally, configuring applications using kernel sysctls is discouraged.
275afc5c1adSSascha Wildner.It Va vfs
27659308cc9SSascha WildnerVirtual file system configuration and information.
277afc5c1adSSascha Wildner.It Va vm
27859308cc9SSascha WildnerVirtual memory subsystem configuration and information.
27959308cc9SSascha Wildner.El
28059308cc9SSascha Wildner.Sh EXAMPLES
28159308cc9SSascha WildnerSample use of
28259308cc9SSascha Wildner.Nm SYSCTL_DECL
28359308cc9SSascha Wildnerto declare the "machdep" sysctl tree for use by new nodes:
28459308cc9SSascha Wildner.Bd -literal -offset indent
28559308cc9SSascha WildnerSYSCTL_DECL(_machdep);
28659308cc9SSascha Wildner.Ed
28759308cc9SSascha Wildner.Pp
28859308cc9SSascha WildnerExamples of integer, opaque, string, and procedure sysctls follow:
28959308cc9SSascha Wildner.Bd -literal -offset indent
29059308cc9SSascha Wildner/*
29159308cc9SSascha Wildner * Example of a constant integer value.  Notice that the control
29259308cc9SSascha Wildner * flags are CTLFLAG_RD, the variable pointer is NULL, and the
29359308cc9SSascha Wildner * value is declared.
29459308cc9SSascha Wildner */
29559308cc9SSascha WildnerSYSCTL_INT(_debug_sizeof, OID_AUTO, bio, CTLFLAG_RD, NULL,
29659308cc9SSascha Wildner    sizeof(struct bio), "sizeof(struct bio)");
29759308cc9SSascha Wildner
29859308cc9SSascha Wildner/*
29959308cc9SSascha Wildner * Example of a variable integer value.  Notice that the control
30059308cc9SSascha Wildner * flags are CTLFLAG_RW, the variable pointer is set, and the
30159308cc9SSascha Wildner * value is 0.
30259308cc9SSascha Wildner */
30359308cc9SSascha Wildnerstatic int	doingcache = 1;		/* 1 => enable the cache */
30459308cc9SSascha WildnerSYSCTL_INT(_debug, OID_AUTO, vfscache, CTLFLAG_RW, &doingcache, 0,
30559308cc9SSascha Wildner    "Enable name cache");
30659308cc9SSascha Wildner
30759308cc9SSascha Wildner/*
30859308cc9SSascha Wildner * Example of a variable string value.  Notice that the control
30959308cc9SSascha Wildner * flags are CTLFLAG_RW, that the variable pointer and string
31059308cc9SSascha Wildner * size are set.  Unlike newer sysctls, this older sysctl uses a
31159308cc9SSascha Wildner * static oid number.
31259308cc9SSascha Wildner */
3138e1c6f81SMatthias Schmidtchar kernelname[MAXPATHLEN] = "/boot/kernel";	/* XXX bloat */
31459308cc9SSascha WildnerSYSCTL_STRING(_kern, KERN_BOOTFILE, bootfile, CTLFLAG_RW,
31559308cc9SSascha Wildner    kernelname, sizeof(kernelname), "Name of kernel file booted");
31659308cc9SSascha Wildner
31759308cc9SSascha Wildner/*
31859308cc9SSascha Wildner * Example of an opaque data type exported by sysctl.  Notice that
31959308cc9SSascha Wildner * the variable pointer and size are provided, as well as a format
32059308cc9SSascha Wildner * string for sysctl(8).
32159308cc9SSascha Wildner */
322*2a1faf81SSascha Wildnerstatic l_fp pps_freq;	/* scaled frequency offset (ns/s) */
32359308cc9SSascha WildnerSYSCTL_OPAQUE(_kern_ntp_pll, OID_AUTO, pps_freq, CTLFLAG_RD,
32459308cc9SSascha Wildner    &pps_freq, sizeof(pps_freq), "I", "");
32559308cc9SSascha Wildner
32659308cc9SSascha Wildner/*
32759308cc9SSascha Wildner * Example of a procedure based sysctl exporting string
32859308cc9SSascha Wildner * information.  Notice that the data type is declared, the NULL
32959308cc9SSascha Wildner * variable pointer and 0 size, the function pointer, and the
33059308cc9SSascha Wildner * format string for sysctl(8).
33159308cc9SSascha Wildner */
33259308cc9SSascha WildnerSYSCTL_PROC(_kern, OID_AUTO, msgbuf, CTLTYPE_STRING | CTLFLAG_RD,
33359308cc9SSascha Wildner    0, 0, sysctl_kern_msgbuf, "A", "Contents of kernel message buffer");
33459308cc9SSascha Wildner.Ed
33559308cc9SSascha Wildner.Pp
33659308cc9SSascha WildnerWhen adding, modifying, or removing sysctl names, it is important to be
33759308cc9SSascha Wildneraware that these interfaces may be used by users, libraries, applications,
33859308cc9SSascha Wildneror documentation (such as published books), and are implicitly published
33959308cc9SSascha Wildnerapplication interfaces.
34059308cc9SSascha WildnerAs with other application interfaces, caution must be taken not to break
34159308cc9SSascha Wildnerexisting applications, and to think about future use of new name spaces so as
34259308cc9SSascha Wildnerto avoid the need to rename or remove interfaces that might be depended on in
34359308cc9SSascha Wildnerthe future.
34459308cc9SSascha Wildner.Sh SEE ALSO
34559308cc9SSascha Wildner.Xr sysctl 8 ,
34659308cc9SSascha Wildner.Xr sysctl_add_oid 9 ,
34759308cc9SSascha Wildner.Xr sysctl_ctx_free 9 ,
34859308cc9SSascha Wildner.Xr sysctl_ctx_init 9 ,
34959308cc9SSascha Wildner.Xr sysctl_remove_oid 9
35059308cc9SSascha Wildner.Sh HISTORY
35159308cc9SSascha Wildner.Xr sysctl 8
35259308cc9SSascha Wildnerfirst appeared in
35359308cc9SSascha Wildner.Bx 4.4 .
35459308cc9SSascha Wildner.Sh AUTHORS
35518dfd54eSSascha Wildner.An -nosplit
35659308cc9SSascha WildnerThe sysctl implementation originally found in
35759308cc9SSascha Wildner.Bx
35859308cc9SSascha Wildnerhas been extensively rewritten by
35959308cc9SSascha Wildner.An Poul-Henning Kamp
36059308cc9SSascha Wildnerin order to add support for name lookups, name space iteration, and dynamic
36159308cc9SSascha Wildneraddition of MIB nodes.
36259308cc9SSascha Wildner.Pp
36359308cc9SSascha WildnerThis man page was written by
36459308cc9SSascha Wildner.An Robert N. M. Watson .
365