Loading...
gen/FreeBSD/sysctl.3 Libc-583 Libc-997.90.3
--- Libc/Libc-583/gen/FreeBSD/sysctl.3
+++ Libc/Libc-997.90.3/gen/FreeBSD/sysctl.3
@@ -32,7 +32,7 @@
 .\"	@(#)sysctl.3	8.4 (Berkeley) 5/9/95
 .\" $FreeBSD: src/lib/libc/gen/sysctl.3,v 1.63 2004/07/02 23:52:10 ru Exp $
 .\"
-.Dd January 23, 2001
+.Dd October 21, 2008
 .Dt SYSCTL 3
 .Os
 .Sh NAME
@@ -88,6 +88,8 @@
 as the standard
 .Fn sysctl
 function.
+For a list of ASCII representations of commonly used sysctl names, please see
+.Xr sysctl 1 .
 .Pp
 The information is copied into the buffer specified by
 .Fa oldp .
@@ -182,13 +184,21 @@
 }
 .Ed
 .Pp
+Note:  Implementation of
+.Fn printkproc
+-- to print whatever data deemed necessary from the large
+.Vt kinfo_proc
+structure (
+.In sys/sysctl.h
+) -- is left as an exercise for the reader.
+.Pp
 The top level names are defined with a CTL_ prefix in
 .In 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
+.Bl -column CTLXMACHDEP "Next level names" -offset indent
 .It Sy "Name	Next level names	Description"
 .It "CTL_DEBUG	sys/sysctl.h	Debugging"
 .It "CTL_VFS	sys/mount.h	File system"
@@ -197,7 +207,8 @@
 .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"
+.It "CTL_VM	sys/resources.h	Virtual memory (struct loadavg)"
+.It "CTL_VM	sys/vmmeter.h	Virtual memory (struct vmtotal)"
 .El
 .Pp
 For example, the following retrieves the maximum number of processes allowed
@@ -279,7 +290,7 @@
 .It Sy "Second level name	Type	Changeable"
 .It "HW_MACHINE	string	no"
 .It "HW_MODEL	string	no"
-.It "HW_NCPU	integer	no"
+.It "HW_NCPU	integer	no (DEPRECATED)"
 .It "HW_BYTEORDER	integer	no"
 .It "HW_PHYSMEM	integer	no"
 .It "HW_MEMSIZE	integer	no"
@@ -296,8 +307,16 @@
 The machine class.
 .It Li HW_MODEL
 The machine model
-.It Li HW_NCPU
-The number of cpus.
+.It Li HW_NCPU (DEPRECATED)
+The number of cpus.  It is recommended that you use "hw.physicalcpu" "hw.physicalcpu_max" "hw.logicalcpu" or "hw.logicalcpu_max" instead.
+.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.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_BYTEORDER
 The byteorder (4,321, or 1,234).
 .It Li HW_PHYSMEM
@@ -346,7 +365,7 @@
 .It "KERN_OSREV	integer	no"
 .It "KERN_OSTYPE	string	no"
 .It "KERN_POSIX1	integer	no"
-.It "KERN_PROC	struct proc	no"
+.It "KERN_PROC	struct kinfo_proc	no"
 .It "KERN_PROF	node	not applicable"
 .It "KERN_QUANTUM	integer	yes"
 .It "KERN_SAVED_IDS	integer	no"
@@ -440,10 +459,8 @@
 attempts to comply.
 .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
+An array of
+.Va struct kinfo_proc
 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:
@@ -455,16 +472,6 @@
 .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.
@@ -731,7 +738,6 @@
 .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"
@@ -748,10 +754,6 @@
 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.
@@ -848,7 +850,7 @@
 definitions for second level network identifiers
 .It In sys/gmon.h
 definitions for third level profiling identifiers
-.It In vm/vm_param.h
+.It In mach/vm_param.h
 definitions for second level virtual memory identifiers
 .It In netinet/in.h
 definitions for third level IPv4/IPv6 identifiers and
@@ -861,6 +863,7 @@
 definitions for fourth level UDP identifiers
 .El
 .Sh SEE ALSO
+.Xr sysctl 1 ,
 .Xr sysconf 3 ,
 .Xr sysctl 8
 .Sh HISTORY