Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | --- sysctl.3.orig 2010-04-28 23:38:49.000000000 -0700 +++ sysctl.3 2010-04-29 10:13:28.000000000 -0700 @@ -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 @@ -182,13 +182,21 @@ for (i = 0; i < 100; i++) { } .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 +205,8 @@ listed here, and described in separate s .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 +288,7 @@ privilege may change the value. .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 +305,16 @@ privilege may change the value. 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 +363,7 @@ information. .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 +457,8 @@ with which the system 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: @@ -456,16 +471,6 @@ The third and fourth level names are as .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, @@ -731,7 +736,6 @@ privilege may change the value. .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 +752,6 @@ privilege may change the value. 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 +848,7 @@ identifiers, and user level identifiers 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 |