Loading...
gen/FreeBSD/sysctl.3 Libc-1725.40.4 Libc-320
--- Libc/Libc-1725.40.4/gen/FreeBSD/sysctl.3
+++ Libc/Libc-320/gen/FreeBSD/sysctl.3
@@ -9,6 +9,10 @@
 .\" 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.
@@ -26,9 +30,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"	@(#)sysctl.3	8.4 (Berkeley) 5/9/95
-.\" $FreeBSD$
+.\" $FreeBSD: src/lib/libc/gen/sysctl.3,v 1.57 2002/12/19 09:40:21 ru Exp $
 .\"
-.Dd May 17, 2013
+.Dd January 23, 2001
 .Dt SYSCTL 3
 .Os
 .Sh NAME
@@ -79,8 +83,7 @@
 The
 .Fn sysctlbyname
 function accepts an ASCII representation of the name and internally
-looks up the integer name vector.
-Apart from that, it behaves the same
+looks up the integer name vector.  Apart from that, it behaves the same
 as the standard
 .Fn sysctl
 function.
@@ -151,41 +154,103 @@
 function runs in about a third the time as the same request made via the
 .Fn sysctlbyname
 function).
+The
+.Fn sysctlnametomib
+function is also useful for fetching mib prefixes and then adding
+a final component.
+For example, to fetch process information
+for processes with pid's less than 100:
+.Pp
+.Bd -literal -offset indent -compact
+int i, mib[4];
+size_t len;
+struct kinfo_proc kp;
+
+/* Fill out the first three components of the mib */
+len = 4;
+sysctlnametomib("kern.proc.pid", mib, &len);
+
+/* Fetch and print entries for pid's < 100 */
+for (i = 0; i < 100; i++) {
+	mib[3] = i;
+	len = sizeof(kp);
+	if (sysctl(mib, 4, &kp, &len, NULL, 0) == -1)
+		perror("sysctl");
+	else if (len > 0)
+		printkproc(&kp);
+}
+.Ed
 .Pp
 The top level names are defined with a CTL_ prefix in
-.In sys/sysctl.h ,
+.Aq Pa sys/sysctl.h ,
 and are as follows.
 The next and subsequent levels down are found in the include files
 listed here, and described in separate sections below.
+.Pp
 .Bl -column CTLXMACHDEPXXX "Next level namesXXXXXX" -offset indent
 .It Sy "Name	Next level names	Description"
-.It "CTL_DEBUG	sys/sysctl.h	Debugging"
-.It "CTL_VFS	sys/mount.h	File system"
-.It "CTL_HW	sys/sysctl.h	Generic CPU, I/O"
-.It "CTL_KERN	sys/sysctl.h	High kernel limits"
-.It "CTL_MACHDEP	sys/sysctl.h	Machine dependent"
-.It "CTL_NET	sys/socket.h	Networking"
-.It "CTL_USER	sys/sysctl.h	User-level"
-.It "CTL_VM	sys/resources.h	Virtual memory (struct loadavg)"
+.It "CTL\_DEBUG	sys/sysctl.h	Debugging"
+.It "CTL\_VFS	sys/mount.h	File system"
+.It "CTL\_HW	sys/sysctl.h	Generic CPU, I/O"
+.It "CTL\_KERN	sys/sysctl.h	High kernel limits"
+.It "CTL\_MACHDEP	sys/sysctl.h	Machine dependent"
+.It "CTL\_NET	sys/socket.h	Networking"
+.It "CTL\_USER	sys/sysctl.h	User-level"
+.It "CTL\_VM	vm/vm_param.h	Virtual memory"
 .El
 .Pp
 For example, the following retrieves the maximum number of processes allowed
 in the system:
 .Pp
 .Bd -literal -offset indent -compact
-int maxproc;
-size_t len = sizeof(maxproc);
-sysctlbyname("kern.maxproc", &maxproc, &len, NULL, 0);
+int mib[2], maxproc;
+size_t len;
+
+mib[0] = CTL_KERN;
+mib[1] = KERN_MAXPROC;
+len = sizeof(maxproc);
+sysctl(mib, 2, &maxproc, &len, NULL, 0);
 .Ed
 .Pp
 To retrieve the standard search path for the system utilities:
 .Pp
 .Bd -literal -offset indent -compact
+int mib[2];
+size_t len;
 char *p;
-size_t len;
-sysctlbyname("user.cs_path", NULL, &len, NULL, 0);
+
+mib[0] = CTL_USER;
+mib[1] = USER_CS_PATH;
+sysctl(mib, 2, NULL, &len, NULL, 0);
 p = malloc(len);
-sysctlbyname("user.cs_path", p, &len, NULL, 0);
+sysctl(mib, 2, p, &len, NULL, 0);
+.Ed
+.Ss CTL_DEBUG
+The debugging variables vary from system to system.
+A debugging variable may be added or deleted without need to recompile
+.Fn sysctl
+to know about it.
+Each time it runs,
+.Fn sysctl
+gets the list of debugging variables from the kernel and
+displays their current values.
+The system defines twenty
+.Pq Vt "struct ctldebug"
+variables named
+.Va debug0
+through
+.Va debug19 .
+They are declared as separate variables so that they can be
+individually initialized at the location of their associated variable.
+The loader prevents multiple use of the same variable by issuing errors
+if a variable is initialized in more than one place.
+For example, to export the variable
+.Va dospecialcheck
+as a debugging variable, the following declaration would be used:
+.Pp
+.Bd -literal -offset indent -compact
+int dospecialcheck = 1;
+struct ctldebug debug5 = { "dospecialcheck", &dospecialcheck };
 .Ed
 .Ss CTL_VFS
 A distinguished second level name, VFS_GENERIC,
@@ -209,60 +274,42 @@
 is detailed below.
 The changeable column shows whether a process with appropriate
 privilege may change the value.
-.Bl -column "xxxxxxxxxxxxxxxxxxxxxxxxx" "xxxxxxxxxx" -offset indent
-.It Sy "Name	Type	Changeable"
-.It "hw.activecpu	int32_t	no"
-.It "hw.byteorder	int32_t	no"
-.It "hw.cacheconfig	uint64_t[] 	no"
-.It "hw.cachelinesize	int64_t	no"
-.It "hw.cachesize	uint64_t[] 	no"
-.It "hw.cpu64bit_capable	int32_t	no"
-.It "hw.cpufamily	uint32_t	no"
-.It "hw.cpufrequency	int64_t	no"
-.It "hw.cpufrequency_max	int64_t	no"
-.It "hw.cpufrequency_min	int64_t	no"
-.It "hw.cpusubtype	int32_t	no"
-.It "hw.cputhreadtype	int32_t	no"
-.It "hw.cputype	int32_t	no"
-.It "hw.l1dcachesize	int64_t	no"
-.It "hw.l1icachesize	int64_t	no"
-.It "hw.l2cachesize	int64_t	no"
-.It "hw.l3cachesize	int64_t	no"
-.It "hw.logicalcpu	int32_t	no"
-.It "hw.logicalcpu_max	int32_t	no"
-.It "hw.machine	char[]	no"
-.It "hw.memsize	int64_t	no"
-.It "hw.model	char[]	no"
-.It "hw.ncpu	int32_t	no"
-.It "hw.packages	int32_t	no"
-.It "hw.pagesize	int64_t	no"
-.It "hw.physicalcpu	int32_t	no"
-.It "hw.physicalcpu_max	int32_t	no"
-.It "hw.tbfrequency	int64_t	no"
-.El
+.Bl -column "Second level nameXXXXXX" integerXXX -offset indent
+.It Sy "Second level name	Type	Changeable"
+.It "HW\_MACHINE	string	no"
+.It "HW\_MODEL	string	no"
+.It "HW\_NCPU	integer	no"
+.It "HW\_BYTEORDER	integer	no"
+.It "HW\_PHYSMEM	integer	no"
+.It "HW\_USERMEM	integer	no"
+.It "HW\_PAGESIZE	integer	no"
+.It "HW\_FLOATINGPOINT	integer	no"
+.It "HW\_MACHINE\_ARCH	string	no"
+.\".It "HW\_DISKNAMES	integer	no"
+.\".It "HW\_DISKSTATS	integer	no"
+.El
+.Pp
 .Bl -tag -width 6n
-.It Li "hw.byteorder"
-The byte order (4321 or 1234).
-.It Li "hw.model"
-The machine model.
-.It Li "hw.ncpu"
-The number of cpus. This attribute is deprecated and it is recommended that
-.Va "hw.logicalcpu" ,
-.Va "hw.logicalcpu_max" ,
-.Va "hw.physicalcpu" ,
-or
-.Va "hw.physicalcpu_max"
-be used instead.
-.It Li "hw.logicalcpu"
-The number of logical processors available in the current power management mode.
-.It Li "hw.logicalcpu_max"
-The maximum number of logical processors that could be available this boot.
-.It Li "hw.physicalcpu"
-The number of physical processors available in the current power management mode.
-.It Li "hw.physicalcpu_max"
-The maximum number of physical processors that could be available this boot.
-.It Li "hw.pagesize"
-The software page size in bytes.
+.It Li HW_MACHINE
+The machine class.
+.It Li HW_MODEL
+The machine model
+.It Li HW_NCPU
+The number of cpus.
+.It Li HW_BYTEORDER
+The byteorder (4,321, or 1,234).
+.It Li HW_PHYSMEM
+The bytes of physical memory.
+.It Li HW_USERMEM
+The bytes of non-kernel memory.
+.It Li HW_PAGESIZE
+The software page size.
+.It Li HW_FLOATINGPOINT
+Nonzero if the floating point support is in hardware.
+.It Li HW_MACHINE_ARCH
+The machine dependent architecture type.
+.\".It Fa HW_DISKNAMES
+.\".It Fa HW_DISKSTATS
 .El
 .Ss CTL_KERN
 The string and integer information available for the CTL_KERN level
@@ -273,170 +320,200 @@
 system vnodes, the open file entries, routing table entries,
 virtual memory statistics, load average history, and clock rate
 information.
-.Bl -column "xxxxxxxxxxxxxxxxxxxxxxxxx" "xxxxxxxxxxxxxxxxxxxx" -offset indent
-.It Sy "Name	Type	Changeable"
-.It "kern.argmax	int32_t	no"
-.It "kern.bootargs	char[]	no"
-.It "kern.boottime	struct timeval	no"
-.It "kern.check_openevt	int32_t	yes"
-.It "kern.clockrate	struct clockinfo	no"
-.It "kern.coredump	int32_t	yes"
-.It "kern.corefile	char[]	yes"
-.It "kern.flush_cache_on_write	int32_t	yes"
-.It "kern.hostid	int32_t	yes"
-.It "kern.hostname	char[]	yes"
-.It "kern.job_control	int32_t	no"
-.It "kern.maxfiles	int32_t	yes"
-.It "kern.maxfilesperproc	int32_t	yes"
-.It "kern.maxnbuf	int32_t	yes"
-.It "kern.maxproc	int32_t	yes"
-.It "kern.maxprocperuid	int32_t	yes"
-.It "kern.maxvnodes	int32_t	yes"
-.It "kern.msgbuf	int32_t	yes"
-.It "kern.nbuf	int32_t	no"
-.It "kern.netboot	int32_t	no"
-.It "kern.ngroups	int32_t	no"
-.It "kern.nisdomainname	char[]	yes"
-.It "kern.num_files	int32_t	no"
-.It "kern.num_tasks	int32_t	no"
-.It "kern.num_taskthreads	int32_t	no"
-.It "kern.num_threads	int32_t	no"
-.It "kern.num_vnodes	int32_t	no"
-.It "kern.nx	int32_t	yes"
-.It "kern.osrelease	char[]	no"
-.It "kern.osrevision	int32_t	no"
-.It "kern.ostype	char[]	no"
-.It "kern.osversion	char[]	yes"
-.It "kern.posix1version	int32_t	no"
-.It "kern.procname	char[]	yes"
-.It "kern.safeboot	int32_t	no"
-.It "kern.saved_ids	int32_t	no"
-.It "kern.secure_kernel	int32_t	no"
-.It "kern.securelevel	int32_t	yes"
-.It "kern.singleuser	int32_t	no"
-.It "kern.sleeptime	struct timeval	no"
-.It "kern.slide	int32_t	no"
-.It "kern.stack_depth_max	int32_t	no"
-.It "kern.stack_size	int32_t	no"
-.It "kern.sugid_coredump	int32_t	yes"
-.It "kern.sugid_scripts	int32_t	yes"
-.It "kern.symfile	char[]	no"
-.It "kern.usrstack	int32_t	no"
-.It "kern.usrstack64	int64_t	no"
-.It "kern.uuid	char[]	no"
-.It "kern.version	char[]	no"
-.It "kern.waketime	struct timeval	no"
-.El
+.Bl -column "KERNXMAXFILESPERPROCXXX" "struct clockrateXXX" -offset indent
+.It Sy "Second level name	Type	Changeable"
+.It "KERN\_ARGMAX	integer	no"
+.It "KERN\_BOOTFILE	string	yes"
+.It "KERN\_BOOTTIME	struct timeval	no"
+.It "KERN\_CLOCKRATE	struct clockinfo	no"
+.It "KERN\_FILE	struct file	no"
+.It "KERN\_HOSTID	integer	yes"
+.It "KERN\_HOSTNAME	string	yes"
+.It "KERN\_JOB\_CONTROL	integer	no"
+.It "KERN\_MAXFILES	integer	yes"
+.It "KERN\_MAXFILESPERPROC	integer	yes"
+.It "KERN\_MAXPROC	integer	no"
+.It "KERN\_MAXPROCPERUID	integer	yes"
+.It "KERN\_MAXVNODES	integer	yes"
+.It "KERN\_NGROUPS	integer	no"
+.It "KERN\_NISDOMAINNAME	string	yes"
+.It "KERN\_OSRELDATE	integer	no"
+.It "KERN\_OSRELEASE	string	no"
+.It "KERN\_OSREV	integer	no"
+.It "KERN\_OSTYPE	string	no"
+.It "KERN\_POSIX1	integer	no"
+.It "KERN\_PROC	struct proc	no"
+.It "KERN\_PROF	node	not applicable"
+.It "KERN\_QUANTUM	integer	yes"
+.It "KERN\_SAVED\_IDS	integer	no"
+.It "KERN\_SECURELVL	integer	raise only"
+.It "KERN\_UPDATEINTERVAL	integer	no"
+.It "KERN\_VERSION	string	no"
+.It "KERN\_VNODE	struct vnode	no"
+.El
+.Pp
 .Bl -tag -width 6n
-.It Li "kern.argmax"
+.It Li KERN_ARGMAX
 The maximum bytes of argument to
 .Xr execve 2 .
-.It Li "kern.boottime"
+.It Li KERN_BOOTFILE
+The full pathname of the file from which the kernel was loaded.
+.It Li KERN_BOOTTIME
 A
 .Va struct timeval
 structure is returned.
 This structure contains the time that the system was booted.
-.It Li "kern.clockrate"
+.It Li KERN_CLOCKRATE
 A
 .Va struct clockinfo
 structure is returned.
 This structure contains the clock, statistics clock and profiling clock
 frequencies, the number of micro-seconds per hz tick and the skew rate.
-.It Li "kern.hostid"
+.It Li KERN_FILE
+Return the entire file table.
+The returned data consists of a single
+.Va struct filehead
+followed by an array of
+.Va struct file ,
+whose size depends on the current number of such objects in the system.
+.It Li KERN_HOSTID
 Get or set the host id.
-.It Li "kern.hostname"
+.It Li KERN_HOSTNAME
 Get or set the hostname.
-.It Li "kern.job_control"
+.It Li KERN_JOB_CONTROL
 Return 1 if job control is available on this system, otherwise 0.
-.It Li "kern.maxfiles"
+.It Li KERN_MAXFILES
 The maximum number of files that may be open in the system.
-.It Li "kern.maxfilesperproc"
+.It Li KERN_MAXFILESPERPROC
 The maximum number of files that may be open for a single process.
 This limit only applies to processes with an effective uid of nonzero
 at the time of the open request.
 Files that have already been opened are not affected if the limit
 or the effective uid is changed.
-.It Li "kern.maxproc"
+.It Li KERN_MAXPROC
 The maximum number of concurrent processes the system will allow.
-.It Li "kern.maxprocperuid"
+.It Li KERN_MAXPROCPERUID
 The maximum number of concurrent processes the system will allow
 for a single effective uid.
 This limit only applies to processes with an effective uid of nonzero
 at the time of a fork request.
 Processes that have already been started are not affected if the limit
 is changed.
-.It Li "kern.maxvnodes"
+.It Li KERN_MAXVNODES
 The maximum number of vnodes available on the system.
-.It Li "kern.ngroups"
+.It Li KERN_NGROUPS
 The maximum number of supplemental groups.
-.It Li "kern.nisdomainname"
+.It Li KERN_NISDOMAINNAME
 The name of the current YP/NIS domain.
-.It Li "kern.osrelease"
+.It Li KERN_OSRELDATE
+The system release date in YYYYMM format
+(January 1996 is encoded as 199601).
+.It Li KERN_OSRELEASE
 The system release string.
-.It Li "kern.osrevision"
-The system revision number.
-.It Li "kern.ostype"
+.It Li KERN_OSREV
+The system revision string.
+.It Li KERN_OSTYPE
 The system type string.
-.It Li "kern.posix1version"
+.It Li KERN_POSIX1
 The version of
 .St -p1003.1
 with which the system
 attempts to comply.
-.It Li "kern.saved_ids"
+.It Li KERN_PROC
+Return the entire process table, or a subset of it.
+An array of pairs of
+.Va struct proc
+followed by corresponding
+.Va struct eproc
+structures is returned,
+whose size depends on the current number of such objects in the system.
+The third and fourth level names are as follows:
+.Bl -column "Third level nameXXXXXX" "Fourth level is:XXXXXX" -offset indent
+.It "Third level name	Fourth level is:"
+.It "KERN\_PROC\_ALL	None"
+.It "KERN\_PROC\_PID	A process ID"
+.It "KERN\_PROC\_PGRP	A process group"
+.It "KERN\_PROC\_TTY	A tty device"
+.It "KERN\_PROC\_UID	A user ID"
+.It "KERN\_PROC\_RUID	A real user ID"
+.El
+.Pp
+If the third level name is KERN_PROC_ARGS then the command line argument
+array is returned in a flattened form, i.e. zero-terminated arguments
+follow each other.
+The total size of array is returned.
+It is also possible for a process to set its own process title this way.
+.Bl -column "Third level nameXXXXXX" "Fourth level is:XXXXXX" -offset indent
+.It Sy "Third level name	Fourth level is:"
+.It "KERN\_PROC\_ARGS	A process ID"
+.El
+.It Li KERN_PROF
+Return profiling information about the kernel.
+If the kernel is not compiled for profiling,
+attempts to retrieve any of the KERN_PROF values will
+fail with
+.Er ENOENT .
+The third level names for the string and integer profiling information
+is detailed below.
+The changeable column shows whether a process with appropriate
+privilege may change the value.
+.Bl -column "GPROFXGMONPARAMXXX" "struct gmonparamXXX" -offset indent
+.It Sy "Third level name	Type	Changeable"
+.It "GPROF\_STATE	integer	yes"
+.It "GPROF\_COUNT	u_short[\|]	yes"
+.It "GPROF\_FROMS	u_short[\|]	yes"
+.It "GPROF\_TOS	struct tostruct	yes"
+.It "GPROF\_GMONPARAM	struct gmonparam	no"
+.El
+.Pp
+The variables are as follows:
+.Bl -tag -width 6n
+.It Li GPROF_STATE
+Returns GMON_PROF_ON or GMON_PROF_OFF to show that profiling
+is running or stopped.
+.It Li GPROF_COUNT
+Array of statistical program counter counts.
+.It Li GPROF_FROMS
+Array indexed by program counter of call-from points.
+.It Li GPROF_TOS
+Array of
+.Va struct tostruct
+describing destination of calls and their counts.
+.It Li GPROF_GMONPARAM
+Structure giving the sizes of the above arrays.
+.El
+.It Li KERN_QUANTUM
+The maximum period of time, in microseconds, for which a process is allowed
+to run without being preempted if other processes are in the run queue.
+.It Li KERN_SAVED_IDS
 Returns 1 if saved set-group and saved set-user ID is available.
-.It Li "kern.securelevel"
+.It Li KERN_SECURELVL
 The system security level.
 This level may be raised by processes with appropriate privilege.
 It may not be lowered.
-.It Li "kern.version"
+.It Li KERN_VERSION
 The system version string.
+.It Li KERN_VNODE
+Return the entire vnode table.
+Note, the vnode table is not necessarily a consistent snapshot of
+the system.
+The returned data consists of an array whose size depends on the
+current number of such objects in the system.
+Each element of the array contains the kernel address of a vnode
+.Va struct vnode *
+followed by the vnode itself
+.Va struct vnode .
 .El
 .Ss CTL_MACHDEP
 The set of variables defined is architecture dependent.
 The following variables are defined for the i386 architecture.
-.Bl -column "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "xxxxxxxxxx" -offset indent
-.It Sy "Name	Type	Changeable"
-.It "machdep.cpu.address_bits.physical	int32_t	no"
-.It "machdep.cpu.address_bits.virtual	int32_t	no"
-.It "machdep.cpu.brand	int32_t	no"
-.It "machdep.cpu.brand_string	char[]	no"
-.It "machdep.cpu.cache.L2_associativity	int32_t	no"
-.It "machdep.cpu.cache.linesize	int32_t	no"
-.It "machdep.cpu.cache.size	int32_t	no"
-.It "machdep.cpu.core_count	int32_t	no"
-.It "machdep.cpu.cores_per_package	int32_t	no"
-.It "machdep.cpu.extfamily	int32_t	no"
-.It "machdep.cpu.extfeature_bits	int64_t	no"
-.It "machdep.cpu.extfeatures	char[]	no"
-.It "machdep.cpu.extmodel	int32_t	no"
-.It "machdep.cpu.family	int32_t	no"
-.It "machdep.cpu.feature_bits	int64_t	no"
-.It "machdep.cpu.features	char[]	no"
-.It "machdep.cpu.leaf7_feature_bits	uint32_t	no"
-.It "machdep.cpu.leaf7_features	char[]	no"
-.It "machdep.cpu.logical_per_package	int32_t	no"
-.It "machdep.cpu.max_basic	uint32_t	no"
-.It "machdep.cpu.max_ext	uint32_t	no"
-.It "machdep.cpu.microcode_version	int32_t	no"
-.It "machdep.cpu.model	int32_t	no"
-.It "machdep.cpu.processor_flag	int32_t	no"
-.It "machdep.cpu.signature	int32_t	no"
-.It "machdep.cpu.stepping	int32_t	no"
-.It "machdep.cpu.thread_count	int32_t	no"
-.It "machdep.cpu.tlb.data.large	int32_t	no"
-.It "machdep.cpu.tlb.data.large_level1	int32_t	no"
-.It "machdep.cpu.tlb.data.small	int32_t	no"
-.It "machdep.cpu.tlb.data.small_level1	int32_t	no"
-.It "machdep.cpu.tlb.inst.large	int32_t	no"
-.It "machdep.cpu.tlb.inst.small	int32_t	no"
-.It "machdep.cpu.tlb.shared	int32_t	no"
-.It "machdep.cpu.ucupdate	int32_t	yes"
-.It "machdep.cpu.vendor	char[]	no"
-.It "machdep.cpu.xsave.extended_state	uint32_t	no"
-.It "machdep.tsc.deep_idle_rebase	uint32_t	yes"
-.It "machdep.tsc.frequency	int64_t	no"
-.It "machdep.tsc.nanotime.generation	uint32_t	no"
-.It "machdep.tsc.nanotime.shift	uint32_t	no"
+.Bl -column "CONSOLE_DEVICEXXX" "struct bootinfoXXX" -offset indent
+.It Sy "Second level name	Type	Changeable"
+.It Li "CPU_CONSDEV	dev_t	no"
+.It Li "CPU_ADJKERNTZ	int	yes"
+.It Li "CPU_DISRTCSET	int	yes"
+.It Li "CPU_BOOTINFO	struct bootinfo	no"
+.It Li "CPU_WALLCLOCK	int	yes"
 .El
 .Ss CTL_NET
 The string and integer information available for the CTL_NET level
@@ -445,10 +522,11 @@
 privilege may change the value.
 .Bl -column "Second level nameXXXXXX" "routing messagesXXX" -offset indent
 .It Sy "Second level name	Type	Changeable"
-.It "PF_ROUTE	routing messages	no"
-.It "PF_INET	IPv4 values	yes"
-.It "PF_INET6	IPv6 values	yes"
-.El
+.It "PF\_ROUTE	routing messages	no"
+.It "PF\_INET	IPv4 values	yes"
+.It "PF\_INET6	IPv6 values	yes"
+.El
+.Pp
 .Bl -tag -width 6n
 .It Li PF_ROUTE
 Return the entire routing table or a subset of it.
@@ -460,21 +538,13 @@
 The third level name is a protocol number, which is currently always 0.
 The fourth level name is an address family, which may be set to 0 to
 select all address families.
-The fifth, sixth, and seventh level names are as follows:
-.Bl -column -offset indent "Fifth level      Sixth level" "Seventh level"
-.It Sy "Fifth level      Sixth level" Ta Sy "Seventh level"
-.It "NET_RT_FLAGS     rtflags" Ta "None"
-.It "NET_RT_DUMP      None" Ta "None or fib number"
-.It "NET_RT_IFLIST    0 or if_index" Ta None
-.It "NET_RT_IFMALIST  0 or if_index" Ta None
-.It "NET_RT_IFLISTL   0 or if_index" Ta None
-.El
-.Pp
-The
-.Dv NET_RT_IFMALIST
-name returns information about multicast group memberships on all interfaces
-if 0 is specified, or for the interface specified by
-.Va if_index .
+The fifth and sixth level names are as follows:
+.Bl -column "Fifth level nameXXXXXX" "Sixth level is:XXX" -offset indent
+.It Sy "Fifth level name	Sixth level is:"
+.It "NET\_RT\_FLAGS	rtflags"
+.It "NET\_RT\_DUMP	None"
+.It "NET\_RT\_IFLIST	0 or if_index"
+.El
 .It Li PF_INET
 Get or set various global information about the IPv4
 (Internet Protocol version 4).
@@ -532,98 +602,98 @@
 is detailed below.
 The changeable column shows whether a process with appropriate
 privilege may change the value.
-.Bl -column "xxxxxxxxxxxxxxxxxxxxxxxxx" "xxxxxxxxxx" -offset indent
-.It Sy "Name	Type	Changeable"
-.It "user.bc_base_max	int32_t	no"
-.It "user.bc_dim_max	int32_t	no"
-.It "user.bc_scale_max	int32_t	no"
-.It "user.bc_string_max	int32_t	no"
-.It "user.coll_weights_max	int32_t	no"
-.It "user.cs_path	char[]	no"
-.It "user.expr_nest_max	int32_t	no"
-.It "user.line_max	int32_t	no"
-.It "user.posix2_c_bind	int32_t	no"
-.It "user.posix2_c_dev	int32_t	no"
-.It "user.posix2_char_term	int32_t	no"
-.It "user.posix2_fort_dev	int32_t	no"
-.It "user.posix2_fort_run	int32_t	no"
-.It "user.posix2_localedef	int32_t	no"
-.It "user.posix2_sw_dev	int32_t	no"
-.It "user.posix2_upe	int32_t	no"
-.It "user.posix2_version	int32_t	no"
-.It "user.re_dup_max	int32_t	no"
-.It "user.stream_max	int32_t	no"
-.It "user.tzname_max	int32_t	no"
+.Bl -column "USER_COLL_WEIGHTS_MAXXXX" "integerXXX" -offset indent
+.It Sy "Second level name	Type	Changeable"
+.It "USER\_BC\_BASE\_MAX	integer	no"
+.It "USER\_BC\_DIM\_MAX	integer	no"
+.It "USER\_BC\_SCALE\_MAX	integer	no"
+.It "USER\_BC\_STRING\_MAX	integer	no"
+.It "USER\_COLL\_WEIGHTS\_MAX	integer	no"
+.It "USER\_CS\_PATH	string	no"
+.It "USER\_EXPR\_NEST\_MAX	integer	no"
+.It "USER\_LINE\_MAX	integer	no"
+.It "USER\_POSIX2\_CHAR\_TERM	integer	no"
+.It "USER\_POSIX2\_C\_BIND	integer	no"
+.It "USER\_POSIX2\_C\_DEV	integer	no"
+.It "USER\_POSIX2\_FORT\_DEV	integer	no"
+.It "USER\_POSIX2\_FORT\_RUN	integer	no"
+.It "USER\_POSIX2\_LOCALEDEF	integer	no"
+.It "USER\_POSIX2\_SW\_DEV	integer	no"
+.It "USER\_POSIX2\_UPE	integer	no"
+.It "USER\_POSIX2\_VERSION	integer	no"
+.It "USER\_RE\_DUP\_MAX	integer	no"
+.It "USER\_STREAM\_MAX	integer	no"
+.It "USER\_TZNAME\_MAX	integer	no"
 .El
 .Bl -tag -width 6n
 .Pp
-.It Li "user.bc_base_max"
+.It Li USER_BC_BASE_MAX
 The maximum ibase/obase values in the
 .Xr bc 1
 utility.
-.It Li "user.bc_dim_max"
+.It Li USER_BC_DIM_MAX
 The maximum array size in the
 .Xr bc 1
 utility.
-.It Li "user.bc_scale_max"
+.It Li USER_BC_SCALE_MAX
 The maximum scale value in the
 .Xr bc 1
 utility.
-.It Li "user.bc_string_max"
+.It Li USER_BC_STRING_MAX
 The maximum string length in the
 .Xr bc 1
 utility.
-.It Li "user.coll_weights_max"
+.It Li USER_COLL_WEIGHTS_MAX
 The maximum number of weights that can be assigned to any entry of
 the LC_COLLATE order keyword in the locale definition file.
-.It Li "user.cs_path"
+.It Li USER_CS_PATH
 Return a value for the
 .Ev PATH
 environment variable that finds all the standard utilities.
-.It Li "user.expr_nest_max"
+.It Li USER_EXPR_NEST_MAX
 The maximum number of expressions that can be nested within
 parenthesis by the
 .Xr expr 1
 utility.
-.It Li "user.line_max"
+.It Li USER_LINE_MAX
 The maximum length in bytes of a text-processing utility's input
 line.
-.It Li "user.posix2_c_bind"
-Return 1 if the system's C-language development facilities support the
-C-Language Bindings Option, otherwise 0.
-.It Li "user.posix2_c_dev"
-Return 1 if the system supports the C-Language Development Utilities Option,
-otherwise 0.
-.It Li "user.posix2_char_term"
+.It Li USER_POSIX2_CHAR_TERM
 Return 1 if the system supports at least one terminal type capable of
 all operations described in
 .St -p1003.2 ,
 otherwise 0.
-.It Li "user.posix2_fort_dev"
+.It Li USER_POSIX2_C_BIND
+Return 1 if the system's C-language development facilities support the
+C-Language Bindings Option, otherwise 0.
+.It Li USER_POSIX2_C_DEV
+Return 1 if the system supports the C-Language Development Utilities Option,
+otherwise 0.
+.It Li USER_POSIX2_FORT_DEV
 Return 1 if the system supports the FORTRAN Development Utilities Option,
 otherwise 0.
-.It Li "user.posix2_fort_run"
+.It Li USER_POSIX2_FORT_RUN
 Return 1 if the system supports the FORTRAN Runtime Utilities Option,
 otherwise 0.
-.It Li "user.posix2_localedef"
+.It Li USER_POSIX2_LOCALEDEF
 Return 1 if the system supports the creation of locales, otherwise 0.
-.It Li "user.posix2_sw_dev"
+.It Li USER_POSIX2_SW_DEV
 Return 1 if the system supports the Software Development Utilities Option,
 otherwise 0.
-.It Li "user.posix2_upe"
+.It Li USER_POSIX2_UPE
 Return 1 if the system supports the User Portability Utilities Option,
 otherwise 0.
-.It Li "user.posix2_version"
+.It Li USER_POSIX2_VERSION
 The version of
 .St -p1003.2
 with which the system attempts to comply.
-.It Li "user.re_dup_max"
+.It Li USER_RE_DUP_MAX
 The maximum number of repeated occurrences of a regular expression
 permitted when using interval notation.
-.It Li "user.stream_max"
+.It Li USER_STREAM_MAX
 The minimum maximum number of streams that a process may have open
 at any one time.
-.It Li "user.tzname_max"
+.It Li USER_TZNAME_MAX
 The minimum maximum number of types supported for the name of a
 timezone.
 .El
@@ -632,37 +702,61 @@
 is detailed below.
 The changeable column shows whether a process with appropriate
 privilege may change the value.
-.Bl -column "xxxxxxxxxxxxxxxxxxxxxxxxx" "xxxxxxxxxx" -offset indent
-.It Sy "Name	Type	Changeable"
-.It "vm.loadavg	struct loadavg	no"
-.It "vm.swapusage	struct xsw_usage	no"
+.Bl -column "Second level nameXXXXXX" "struct loadavgXXX" -offset indent
+.It Sy "Second level name	Type	Changeable"
+.It "VM\_LOADAVG	struct loadavg	no"
+.It "VM\_METER	struct vmtotal	no"
+.It "VM\_PAGEOUT\_ALGORITHM	integer	yes"
+.It "VM\_SWAPPING\_ENABLED	integer	maybe"
+.It "VM\_V\_CACHE\_MAX	integer	yes"
+.It "VM\_V\_CACHE\_MIN	integer	yes"
+.It "VM\_V\_FREE\_MIN	integer	yes"
+.It "VM\_V\_FREE\_RESERVED	integer	yes"
+.It "VM\_V\_FREE\_TARGET	integer	yes"
+.It "VM\_V\_INACTIVE\_TARGET	integer	yes"
+.It "VM\_V\_PAGEOUT\_FREE\_MIN	integer	yes"
 .El
 .Pp
 .Bl -tag -width 6n
-.It Li "vm.loadavg"
+.It Li VM_LOADAVG
 Return the load average history.
 The returned data consists of a
 .Va struct loadavg .
+.It Li VM_METER
+Return the system wide virtual memory statistics.
+The returned data consists of a
+.Va struct vmtotal .
+.It Li VM_PAGEOUT_ALGORITHM
+0 if the statistics-based page management algorithm is in use
+or 1 if the near-LRU algorithm is in use.
+.It Li VM_SWAPPING_ENABLED
+1 if process swapping is enabled or 0 if disabled.  This variable is
+permanently set to 0 if the kernel was built with swapping disabled.
+.It Li VM_V_CACHE_MAX
+Maximum desired size of the cache queue.
+.It Li VM_V_CACHE_MIN
+Minimum desired size of the cache queue.  If the cache queue size
+falls very far below this value, the pageout daemon is awakened.
+.It Li VM_V_FREE_MIN
+Minimum amount of memory (cache memory plus free memory)
+required to be available before a process waiting on memory will be
+awakened.
+.It Li VM_V_FREE_RESERVED
+Processes will awaken the pageout daemon and wait for memory if the
+number of free and cached pages drops below this value.
+.It Li VM_V_FREE_TARGET
+The total amount of free memory (including cache memory) that the
+pageout daemon tries to maintain.
+.It Li VM_V_INACTIVE_TARGET
+The desired number of inactive pages that the pageout daemon should
+achieve when it runs.  Inactive pages can be quickly inserted into
+process address space when needed.
+.It Li VM_V_PAGEOUT_FREE_MIN
+If the amount of free and cache memory falls below this value, the
+pageout daemon will enter "memory conserving mode" to avoid deadlock.
 .El
 .Sh RETURN VALUES
 .Rv -std
-.Sh FILES
-.Bl -tag -width <netinet/icmpXvar.h> -compact
-.It In sys/sysctl.h
-definitions for top level identifiers, second level kernel and hardware
-identifiers, and user level identifiers
-.It In sys/socket.h
-definitions for second level network identifiers
-.It In netinet/in.h
-definitions for third level IPv4/IPv6 identifiers and
-fourth level IPv4/v6 identifiers
-.It In netinet/icmp_var.h
-definitions for fourth level ICMP identifiers
-.It In netinet/icmp6.h
-definitions for fourth level ICMPv6 identifiers
-.It In netinet/udp_var.h
-definitions for fourth level UDP identifiers
-.El
 .Sh ERRORS
 The following errors may be reported:
 .Bl -tag -width Er
@@ -688,17 +782,6 @@
 The length pointed to by
 .Fa oldlenp
 is too short to hold the requested value.
-.It Bq Er ENOMEM
-The smaller of either the length pointed to by
-.Fa oldlenp
-or the estimated size of the returned data exceeds the
-system limit on locked memory.
-.It Bq Er ENOMEM
-Locking the buffer
-.Fa oldp ,
-or a portion of the buffer if the estimated size of the data
-to be returned is smaller,
-would cause the process to exceed its per-process locked memory limit.
 .It Bq Er ENOTDIR
 The
 .Fa name
@@ -716,8 +799,28 @@
 .It Bq Er EPERM
 A process without appropriate privilege attempts to set a value.
 .El
+.Sh FILES
+.Bl -tag -width <netinet/icmpXvar.h> -compact
+.It Aq Pa sys/sysctl.h
+definitions for top level identifiers, second level kernel and hardware
+identifiers, and user level identifiers
+.It Aq Pa sys/socket.h
+definitions for second level network identifiers
+.It Aq Pa sys/gmon.h
+definitions for third level profiling identifiers
+.It Aq Pa vm/vm_param.h
+definitions for second level virtual memory identifiers
+.It Aq Pa netinet/in.h
+definitions for third level IPv4/IPv6 identifiers and
+fourth level IPv4/v6 identifiers
+.It Aq Pa netinet/icmp_var.h
+definitions for fourth level ICMP identifiers
+.It Aq Pa netinet/icmp6.h
+definitions for fourth level ICMPv6 identifiers
+.It Aq Pa netinet/udp_var.h
+definitions for fourth level UDP identifiers
+.El
 .Sh SEE ALSO
-.Xr confstr 3 ,
 .Xr sysconf 3 ,
 .Xr sysctl 8
 .Sh HISTORY