xref: /dflybsd-src/share/man/man9/sysctl.9 (revision c48b2bac286ed1aaa6b974adfbc844e82bc65f38)
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 $
2759308cc9SSascha Wildner.\"
28*c48b2bacSSascha Wildner.Dd July 20, 2018
2959308cc9SSascha Wildner.Dt SYSCTL 9
3059308cc9SSascha Wildner.Os
3159308cc9SSascha Wildner.Sh NAME
3259308cc9SSascha Wildner.Nm SYSCTL_DECL ,
3359308cc9SSascha Wildner.Nm SYSCTL_INT ,
3459308cc9SSascha Wildner.Nm SYSCTL_LONG ,
3559308cc9SSascha Wildner.Nm SYSCTL_QUAD ,
3659308cc9SSascha Wildner.Nm SYSCTL_NODE ,
3759308cc9SSascha Wildner.Nm SYSCTL_OPAQUE ,
3859308cc9SSascha Wildner.Nm SYSCTL_PROC ,
3959308cc9SSascha Wildner.Nm SYSCTL_STRING ,
4059308cc9SSascha Wildner.Nm SYSCTL_STRUCT ,
41*c48b2bacSSascha Wildner.Nm SYSCTL_U32 ,
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
126*c48b2bacSSascha Wildner.Fo SYSCTL_U32
127*c48b2bacSSascha Wildner.Fa "parent"
128*c48b2bacSSascha Wildner.Fa "number"
129*c48b2bacSSascha Wildner.Fa "name"
130*c48b2bacSSascha Wildner.Fa "access"
131*c48b2bacSSascha Wildner.Fa "ptr"
132*c48b2bacSSascha Wildner.Fa "val"
133*c48b2bacSSascha Wildner.Fa "descr"
134*c48b2bacSSascha Wildner.Fc
13559308cc9SSascha Wildner.Fo SYSCTL_UINT
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_ULONG
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.Fo SYSCTL_UQUAD
15459308cc9SSascha Wildner.Fa "parent"
15559308cc9SSascha Wildner.Fa "nbr"
15659308cc9SSascha Wildner.Fa "name"
15759308cc9SSascha Wildner.Fa "access"
15859308cc9SSascha Wildner.Fa "ptr"
15959308cc9SSascha Wildner.Fa "val"
16059308cc9SSascha Wildner.Fa "descr"
16159308cc9SSascha Wildner.Fc
16259308cc9SSascha Wildner.Sh DESCRIPTION
16359308cc9SSascha WildnerThe
16459308cc9SSascha Wildner.Nm
16559308cc9SSascha Wildnerkernel interfaces allow code to statically declare
16659308cc9SSascha Wildner.Xr sysctl 8
16759308cc9SSascha WildnerMIB entries, which will be initialized when the kernel module containing the
16859308cc9SSascha Wildnerdeclaration is initialized.
16959308cc9SSascha WildnerWhen the module is unloaded, the sysctl will be automatically destroyed.
17059308cc9SSascha Wildner.Pp
17159308cc9SSascha WildnerSysctl nodes are created in a hierarchical tree, with all static nodes being
17259308cc9SSascha Wildnerrepresented by named C data structures; in order to create a new node under
17359308cc9SSascha Wildneran existing node in the tree, the structure representing the desired parent
17459308cc9SSascha Wildnernode must be declared in the current context using
17559308cc9SSascha Wildner.Fn SYSCTL_DECL .
17659308cc9SSascha Wildner.Pp
17759308cc9SSascha WildnerNew nodes are declared using one of
17859308cc9SSascha Wildner.Nm SYSCTL_INT ,
17959308cc9SSascha Wildner.Nm SYSCTL_LONG ,
18059308cc9SSascha Wildner.Nm SYSCTL_QUAD ,
18159308cc9SSascha Wildner.Nm SYSCTL_NODE ,
18259308cc9SSascha Wildner.Nm SYSCTL_OPAQUE ,
18359308cc9SSascha Wildner.Nm SYSCTL_PROC ,
18459308cc9SSascha Wildner.Nm SYSCTL_STRING ,
18559308cc9SSascha Wildner.Nm SYSCTL_STRUCT ,
186*c48b2bacSSascha Wildner.Nm SYSCTL_U32 ,
18759308cc9SSascha Wildner.Nm SYSCTL_UINT ,
18859308cc9SSascha Wildner.Nm SYSCTL_ULONG ,
18959308cc9SSascha Wildnerand
19059308cc9SSascha Wildner.Nm SYSCTL_UQUAD .
19159308cc9SSascha WildnerEach macro accepts a parent name, as declared using
19259308cc9SSascha Wildner.Nm SYSCTL_DECL ,
19359308cc9SSascha Wildneran OID number, typically
19459308cc9SSascha Wildner.Dv OID_AUTO ,
19559308cc9SSascha Wildnera node name, a set of control and access flags, and a description.
19659308cc9SSascha WildnerDepending on the macro, a pointer to a variable supporting the MIB entry, a
19759308cc9SSascha Wildnersize, a value, and a function pointer implementing the MIB entry may also be
19859308cc9SSascha Wildnerpresent.
19959308cc9SSascha Wildner.Pp
20059308cc9SSascha WildnerFor most of the above macros, declaring a type as part of the access flags is
20159308cc9SSascha Wildnernot necessary -- however, when declaring a sysctl implemented by a function,
20259308cc9SSascha Wildnerincluding a type in the access mask is required:
203f54c32e1SSascha Wildner.Bl -tag -width ".Dv CTLTYPE_STRING"
20459308cc9SSascha Wildner.It Dv CTLTYPE_NODE
20559308cc9SSascha WildnerThis is a node intended to be a parent for other nodes.
20659308cc9SSascha Wildner.It Dv CTLTYPE_INT
20759308cc9SSascha WildnerThis is a signed integer.
20859308cc9SSascha Wildner.It Dv CTLTYPE_STRING
20959308cc9SSascha WildnerThis is a nul-terminated string stored in a character array.
21059308cc9SSascha Wildner.It Dv CTLTYPE_QUAD
21159308cc9SSascha WildnerThis is a 64-bit signed integer.
21259308cc9SSascha Wildner.It Dv CTLTYPE_OPAQUE
21359308cc9SSascha WildnerThis is an opaque data structure.
21459308cc9SSascha Wildner.It Dv CTLTYPE_STRUCT
21559308cc9SSascha WildnerAlias for
21659308cc9SSascha Wildner.Dv CTLTYPE_OPAQUE .
217*c48b2bacSSascha Wildner.It Dv CTLTYPE_U32
218*c48b2bacSSascha WildnerThis is a 32-bit unsigned integer.
21959308cc9SSascha Wildner.It Dv CTLTYPE_UINT
22059308cc9SSascha WildnerThis is an unsigned integer.
22159308cc9SSascha Wildner.It Dv CTLTYPE_LONG
22259308cc9SSascha WildnerThis is a signed long.
22359308cc9SSascha Wildner.It Dv CTLTYPE_ULONG
22459308cc9SSascha WildnerThis is an unsigned long.
22559308cc9SSascha Wildner.It Dv CTLTYPE_UQUAD
22659308cc9SSascha WildnerThis is a 64-bit unsigned integer.
22759308cc9SSascha Wildner.El
22859308cc9SSascha Wildner.Pp
22959308cc9SSascha WildnerAll sysctl types except for new node declarations require one or more flags
23059308cc9SSascha Wildnerto be set indicating the read and write disposition of the sysctl:
231f54c32e1SSascha Wildner.Bl -tag -width ".Dv CTLFLAG_ANYBODY"
23259308cc9SSascha Wildner.It Dv CTLFLAG_RD
23359308cc9SSascha WildnerThis is a read-only sysctl.
2346d600fe3SHasso Tepper.It Dv CTLFLAG_WR
23559308cc9SSascha WildnerThis is a writable sysctl.
23659308cc9SSascha Wildner.It Dv CTLFLAG_RW
23759308cc9SSascha WildnerThis sysctl is readable and writable.
23859308cc9SSascha Wildner.It Dv CTLFLAG_ANYBODY
23959308cc9SSascha WildnerAny user or process can write to this sysctl.
24059308cc9SSascha Wildner.It Dv CTLFLAG_SECURE
24159308cc9SSascha WildnerThis sysctl can be written to only if the effective securelevel of the
24259308cc9SSascha Wildnerprocess is <= 0.
24359308cc9SSascha Wildner.It Dv CTLFLAG_PRISON
24459308cc9SSascha WildnerThis sysctl can be written to by processes in
24559308cc9SSascha Wildner.Xr jail 2 .
246afc5c1adSSascha Wildner.\".It Dv CTLFLAG_SKIP
247afc5c1adSSascha Wildner.\"When iterating the sysctl name space, do not list this sysctl.
24859308cc9SSascha Wildner.El
24959308cc9SSascha Wildner.Pp
25059308cc9SSascha WildnerWhen creating new sysctls, careful attention should be paid to the security
25159308cc9SSascha Wildnerimplications of the monitoring or management interface being created.
25259308cc9SSascha WildnerMost sysctls present in the kernel are read-only or writable only by the
25359308cc9SSascha Wildnersuperuser.
25459308cc9SSascha WildnerSysctls exporting extensive information on system data structures and
25559308cc9SSascha Wildneroperation, especially those implemented using procedures, will wish to
25659308cc9SSascha Wildnerimplement access control to limit the undesired exposure of information about
25759308cc9SSascha Wildnerother processes, network connections, etc.
25859308cc9SSascha Wildner.Pp
25959308cc9SSascha WildnerThe following top level sysctl name spaces are commonly used:
260afc5c1adSSascha Wildner.Bl -tag -width ".Va machdep"
261afc5c1adSSascha Wildner.It Va compat
26259308cc9SSascha WildnerCompatibility layer information.
263afc5c1adSSascha Wildner.It Va debug
26459308cc9SSascha WildnerDebugging information.
26559308cc9SSascha WildnerVarious name spaces exist under
266afc5c1adSSascha Wildner.Va debug .
267afc5c1adSSascha Wildner.It Va hw
26859308cc9SSascha WildnerHardware and device driver information.
269afc5c1adSSascha Wildner.It Va lwkt
27059308cc9SSascha WildnerInformation about the
27159308cc9SSascha Wildner.Xr lwkt 9
27259308cc9SSascha Wildnersubsystem.
273afc5c1adSSascha Wildner.It Va kern
27459308cc9SSascha WildnerKernel behavior tuning; generally deprecated in favor of more specific
27559308cc9SSascha Wildnername spaces.
276afc5c1adSSascha Wildner.It Va machdep
27759308cc9SSascha WildnerMachine-dependent configuration parameters.
278afc5c1adSSascha Wildner.It Va net
27959308cc9SSascha WildnerNetwork subsystem.
28059308cc9SSascha WildnerVarious protocols have name spaces under
281afc5c1adSSascha Wildner.Va net .
282afc5c1adSSascha Wildner.It Va sysctl
28359308cc9SSascha WildnerReserved name space for the implementation of sysctl.
284afc5c1adSSascha Wildner.It Va user
28559308cc9SSascha WildnerConfiguration settings relating to user application behavior.
28659308cc9SSascha WildnerGenerally, configuring applications using kernel sysctls is discouraged.
287afc5c1adSSascha Wildner.It Va vfs
28859308cc9SSascha WildnerVirtual file system configuration and information.
289afc5c1adSSascha Wildner.It Va vm
29059308cc9SSascha WildnerVirtual memory subsystem configuration and information.
29159308cc9SSascha Wildner.El
29259308cc9SSascha Wildner.Sh EXAMPLES
29359308cc9SSascha WildnerSample use of
29459308cc9SSascha Wildner.Nm SYSCTL_DECL
29559308cc9SSascha Wildnerto declare the "machdep" sysctl tree for use by new nodes:
29659308cc9SSascha Wildner.Bd -literal -offset indent
29759308cc9SSascha WildnerSYSCTL_DECL(_machdep);
29859308cc9SSascha Wildner.Ed
29959308cc9SSascha Wildner.Pp
30059308cc9SSascha WildnerExamples of integer, opaque, string, and procedure sysctls follow:
30159308cc9SSascha Wildner.Bd -literal -offset indent
30259308cc9SSascha Wildner/*
30359308cc9SSascha Wildner * Example of a constant integer value.  Notice that the control
30459308cc9SSascha Wildner * flags are CTLFLAG_RD, the variable pointer is NULL, and the
30559308cc9SSascha Wildner * value is declared.
30659308cc9SSascha Wildner */
30759308cc9SSascha WildnerSYSCTL_INT(_debug_sizeof, OID_AUTO, bio, CTLFLAG_RD, NULL,
30859308cc9SSascha Wildner    sizeof(struct bio), "sizeof(struct bio)");
30959308cc9SSascha Wildner
31059308cc9SSascha Wildner/*
31159308cc9SSascha Wildner * Example of a variable integer value.  Notice that the control
31259308cc9SSascha Wildner * flags are CTLFLAG_RW, the variable pointer is set, and the
31359308cc9SSascha Wildner * value is 0.
31459308cc9SSascha Wildner */
31559308cc9SSascha Wildnerstatic int	doingcache = 1;		/* 1 => enable the cache */
31659308cc9SSascha WildnerSYSCTL_INT(_debug, OID_AUTO, vfscache, CTLFLAG_RW, &doingcache, 0,
31759308cc9SSascha Wildner    "Enable name cache");
31859308cc9SSascha Wildner
31959308cc9SSascha Wildner/*
32059308cc9SSascha Wildner * Example of a variable string value.  Notice that the control
32159308cc9SSascha Wildner * flags are CTLFLAG_RW, that the variable pointer and string
32259308cc9SSascha Wildner * size are set.  Unlike newer sysctls, this older sysctl uses a
32359308cc9SSascha Wildner * static oid number.
32459308cc9SSascha Wildner */
3258e1c6f81SMatthias Schmidtchar kernelname[MAXPATHLEN] = "/boot/kernel";	/* XXX bloat */
32659308cc9SSascha WildnerSYSCTL_STRING(_kern, KERN_BOOTFILE, bootfile, CTLFLAG_RW,
32759308cc9SSascha Wildner    kernelname, sizeof(kernelname), "Name of kernel file booted");
32859308cc9SSascha Wildner
32959308cc9SSascha Wildner/*
33059308cc9SSascha Wildner * Example of an opaque data type exported by sysctl.  Notice that
33159308cc9SSascha Wildner * the variable pointer and size are provided, as well as a format
33259308cc9SSascha Wildner * string for sysctl(8).
33359308cc9SSascha Wildner */
3342a1faf81SSascha Wildnerstatic l_fp pps_freq;	/* scaled frequency offset (ns/s) */
33559308cc9SSascha WildnerSYSCTL_OPAQUE(_kern_ntp_pll, OID_AUTO, pps_freq, CTLFLAG_RD,
33659308cc9SSascha Wildner    &pps_freq, sizeof(pps_freq), "I", "");
33759308cc9SSascha Wildner
33859308cc9SSascha Wildner/*
33959308cc9SSascha Wildner * Example of a procedure based sysctl exporting string
34059308cc9SSascha Wildner * information.  Notice that the data type is declared, the NULL
34159308cc9SSascha Wildner * variable pointer and 0 size, the function pointer, and the
34259308cc9SSascha Wildner * format string for sysctl(8).
34359308cc9SSascha Wildner */
34459308cc9SSascha WildnerSYSCTL_PROC(_kern, OID_AUTO, msgbuf, CTLTYPE_STRING | CTLFLAG_RD,
34559308cc9SSascha Wildner    0, 0, sysctl_kern_msgbuf, "A", "Contents of kernel message buffer");
34659308cc9SSascha Wildner.Ed
34759308cc9SSascha Wildner.Pp
34859308cc9SSascha WildnerWhen adding, modifying, or removing sysctl names, it is important to be
34959308cc9SSascha Wildneraware that these interfaces may be used by users, libraries, applications,
35059308cc9SSascha Wildneror documentation (such as published books), and are implicitly published
35159308cc9SSascha Wildnerapplication interfaces.
35259308cc9SSascha WildnerAs with other application interfaces, caution must be taken not to break
35359308cc9SSascha Wildnerexisting applications, and to think about future use of new name spaces so as
35459308cc9SSascha Wildnerto avoid the need to rename or remove interfaces that might be depended on in
35559308cc9SSascha Wildnerthe future.
35659308cc9SSascha Wildner.Sh SEE ALSO
35759308cc9SSascha Wildner.Xr sysctl 8 ,
35859308cc9SSascha Wildner.Xr sysctl_add_oid 9 ,
35959308cc9SSascha Wildner.Xr sysctl_ctx_free 9 ,
36059308cc9SSascha Wildner.Xr sysctl_ctx_init 9 ,
36159308cc9SSascha Wildner.Xr sysctl_remove_oid 9
36259308cc9SSascha Wildner.Sh HISTORY
36359308cc9SSascha Wildner.Xr sysctl 8
36459308cc9SSascha Wildnerfirst appeared in
36559308cc9SSascha Wildner.Bx 4.4 .
36659308cc9SSascha Wildner.Sh AUTHORS
36718dfd54eSSascha Wildner.An -nosplit
36859308cc9SSascha WildnerThe sysctl implementation originally found in
36959308cc9SSascha Wildner.Bx
37059308cc9SSascha Wildnerhas been extensively rewritten by
37159308cc9SSascha Wildner.An Poul-Henning Kamp
37259308cc9SSascha Wildnerin order to add support for name lookups, name space iteration, and dynamic
37359308cc9SSascha Wildneraddition of MIB nodes.
37459308cc9SSascha Wildner.Pp
37559308cc9SSascha WildnerThis man page was written by
37659308cc9SSascha Wildner.An Robert N. M. Watson .
377