kern_mib.c (217326) | kern_mib.c (224159) |
---|---|
1/*- 2 * Copyright (c) 1982, 1986, 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Mike Karels at Berkeley Software Design, Inc. 7 * 8 * Quite extensively rewritten by Poul-Henning Kamp of the FreeBSD --- 22 unchanged lines hidden (view full) --- 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * SUCH DAMAGE. 34 * 35 * @(#)kern_sysctl.c 8.4 (Berkeley) 4/14/94 36 */ 37 38#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 1982, 1986, 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Mike Karels at Berkeley Software Design, Inc. 7 * 8 * Quite extensively rewritten by Poul-Henning Kamp of the FreeBSD --- 22 unchanged lines hidden (view full) --- 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * SUCH DAMAGE. 34 * 35 * @(#)kern_sysctl.c 8.4 (Berkeley) 4/14/94 36 */ 37 38#include <sys/cdefs.h> |
39__FBSDID("$FreeBSD: head/sys/kern/kern_mib.c 217326 2011-01-12 19:54:19Z mdf $"); | 39__FBSDID("$FreeBSD: head/sys/kern/kern_mib.c 224159 2011-07-17 23:05:24Z rwatson $"); |
40 41#include "opt_compat.h" 42#include "opt_posix.h" 43#include "opt_config.h" 44 45#include <sys/param.h> 46#include <sys/kernel.h> 47#include <sys/sbuf.h> --- 4 unchanged lines hidden (view full) --- 52#include <sys/mutex.h> 53#include <sys/jail.h> 54#include <sys/smp.h> 55#include <sys/sx.h> 56#include <sys/unistd.h> 57 58SYSCTL_NODE(, 0, sysctl, CTLFLAG_RW, 0, 59 "Sysctl internal magic"); | 40 41#include "opt_compat.h" 42#include "opt_posix.h" 43#include "opt_config.h" 44 45#include <sys/param.h> 46#include <sys/kernel.h> 47#include <sys/sbuf.h> --- 4 unchanged lines hidden (view full) --- 52#include <sys/mutex.h> 53#include <sys/jail.h> 54#include <sys/smp.h> 55#include <sys/sx.h> 56#include <sys/unistd.h> 57 58SYSCTL_NODE(, 0, sysctl, CTLFLAG_RW, 0, 59 "Sysctl internal magic"); |
60SYSCTL_NODE(, CTL_KERN, kern, CTLFLAG_RW, 0, | 60SYSCTL_NODE(, CTL_KERN, kern, CTLFLAG_RW|CTLFLAG_CAPRD, 0, |
61 "High kernel, proc, limits &c"); 62SYSCTL_NODE(, CTL_VM, vm, CTLFLAG_RW, 0, 63 "Virtual memory"); 64SYSCTL_NODE(, CTL_VFS, vfs, CTLFLAG_RW, 0, 65 "File system"); 66SYSCTL_NODE(, CTL_NET, net, CTLFLAG_RW, 0, 67 "Network, (see socket.h)"); 68SYSCTL_NODE(, CTL_DEBUG, debug, CTLFLAG_RW, 0, --- 16 unchanged lines hidden (view full) --- 85#ifdef REGRESSION 86SYSCTL_NODE(, OID_AUTO, regression, CTLFLAG_RW, 0, 87 "Regression test MIB"); 88#endif 89 90SYSCTL_STRING(_kern, OID_AUTO, ident, CTLFLAG_RD|CTLFLAG_MPSAFE, 91 kern_ident, 0, "Kernel identifier"); 92 | 61 "High kernel, proc, limits &c"); 62SYSCTL_NODE(, CTL_VM, vm, CTLFLAG_RW, 0, 63 "Virtual memory"); 64SYSCTL_NODE(, CTL_VFS, vfs, CTLFLAG_RW, 0, 65 "File system"); 66SYSCTL_NODE(, CTL_NET, net, CTLFLAG_RW, 0, 67 "Network, (see socket.h)"); 68SYSCTL_NODE(, CTL_DEBUG, debug, CTLFLAG_RW, 0, --- 16 unchanged lines hidden (view full) --- 85#ifdef REGRESSION 86SYSCTL_NODE(, OID_AUTO, regression, CTLFLAG_RW, 0, 87 "Regression test MIB"); 88#endif 89 90SYSCTL_STRING(_kern, OID_AUTO, ident, CTLFLAG_RD|CTLFLAG_MPSAFE, 91 kern_ident, 0, "Kernel identifier"); 92 |
93SYSCTL_STRING(_kern, KERN_OSRELEASE, osrelease, CTLFLAG_RD|CTLFLAG_MPSAFE, 94 osrelease, 0, "Operating system release"); | 93SYSCTL_STRING(_kern, KERN_OSRELEASE, osrelease, CTLFLAG_RD|CTLFLAG_MPSAFE| 94 CTLFLAG_CAPRD, osrelease, 0, "Operating system release"); |
95 | 95 |
96SYSCTL_INT(_kern, KERN_OSREV, osrevision, CTLFLAG_RD, | 96SYSCTL_INT(_kern, KERN_OSREV, osrevision, CTLFLAG_RD|CTLFLAG_CAPRD, |
97 0, BSD, "Operating system revision"); 98 99SYSCTL_STRING(_kern, KERN_VERSION, version, CTLFLAG_RD|CTLFLAG_MPSAFE, 100 version, 0, "Kernel version"); 101 | 97 0, BSD, "Operating system revision"); 98 99SYSCTL_STRING(_kern, KERN_VERSION, version, CTLFLAG_RD|CTLFLAG_MPSAFE, 100 version, 0, "Kernel version"); 101 |
102SYSCTL_STRING(_kern, KERN_OSTYPE, ostype, CTLFLAG_RD|CTLFLAG_MPSAFE, 103 ostype, 0, "Operating system type"); | 102SYSCTL_STRING(_kern, KERN_OSTYPE, ostype, CTLFLAG_RD|CTLFLAG_MPSAFE| 103 CTLFLAG_CAPRD, ostype, 0, "Operating system type"); |
104 105/* 106 * NOTICE: The *userland* release date is available in 107 * /usr/include/osreldate.h 108 */ | 104 105/* 106 * NOTICE: The *userland* release date is available in 107 * /usr/include/osreldate.h 108 */ |
109SYSCTL_INT(_kern, KERN_OSRELDATE, osreldate, CTLFLAG_RD, | 109SYSCTL_INT(_kern, KERN_OSRELDATE, osreldate, CTLFLAG_RD|CTLFLAG_CAPRD, |
110 &osreldate, 0, "Kernel release date"); 111 112SYSCTL_INT(_kern, KERN_MAXPROC, maxproc, CTLFLAG_RDTUN, 113 &maxproc, 0, "Maximum number of processes"); 114 115SYSCTL_INT(_kern, KERN_MAXPROCPERUID, maxprocperuid, CTLFLAG_RW, 116 &maxprocperuid, 0, "Maximum processes allowed per userid"); 117 118SYSCTL_INT(_kern, OID_AUTO, maxusers, CTLFLAG_RDTUN, 119 &maxusers, 0, "Hint for kernel tuning"); 120 | 110 &osreldate, 0, "Kernel release date"); 111 112SYSCTL_INT(_kern, KERN_MAXPROC, maxproc, CTLFLAG_RDTUN, 113 &maxproc, 0, "Maximum number of processes"); 114 115SYSCTL_INT(_kern, KERN_MAXPROCPERUID, maxprocperuid, CTLFLAG_RW, 116 &maxprocperuid, 0, "Maximum processes allowed per userid"); 117 118SYSCTL_INT(_kern, OID_AUTO, maxusers, CTLFLAG_RDTUN, 119 &maxusers, 0, "Hint for kernel tuning"); 120 |
121SYSCTL_INT(_kern, KERN_ARGMAX, argmax, CTLFLAG_RD, | 121SYSCTL_INT(_kern, KERN_ARGMAX, argmax, CTLFLAG_RD|CTLFLAG_CAPRD, |
122 0, ARG_MAX, "Maximum bytes of argument to execve(2)"); 123 | 122 0, ARG_MAX, "Maximum bytes of argument to execve(2)"); 123 |
124SYSCTL_INT(_kern, KERN_POSIX1, posix1version, CTLFLAG_RD, | 124SYSCTL_INT(_kern, KERN_POSIX1, posix1version, CTLFLAG_RD|CTLFLAG_CAPRD, |
125 0, _POSIX_VERSION, "Version of POSIX attempting to comply to"); 126 | 125 0, _POSIX_VERSION, "Version of POSIX attempting to comply to"); 126 |
127SYSCTL_INT(_kern, KERN_NGROUPS, ngroups, CTLFLAG_RDTUN, | 127SYSCTL_INT(_kern, KERN_NGROUPS, ngroups, CTLFLAG_RDTUN|CTLFLAG_CAPRD, |
128 &ngroups_max, 0, 129 "Maximum number of supplemental groups a user can belong to"); 130 | 128 &ngroups_max, 0, 129 "Maximum number of supplemental groups a user can belong to"); 130 |
131SYSCTL_INT(_kern, KERN_JOB_CONTROL, job_control, CTLFLAG_RD, | 131SYSCTL_INT(_kern, KERN_JOB_CONTROL, job_control, CTLFLAG_RD|CTLFLAG_CAPRD, |
132 0, 1, "Whether job control is available"); 133 134#ifdef _POSIX_SAVED_IDS | 132 0, 1, "Whether job control is available"); 133 134#ifdef _POSIX_SAVED_IDS |
135SYSCTL_INT(_kern, KERN_SAVED_IDS, saved_ids, CTLFLAG_RD, | 135SYSCTL_INT(_kern, KERN_SAVED_IDS, saved_ids, CTLFLAG_RD|CTLFLAG_CAPRD, |
136 0, 1, "Whether saved set-group/user ID is available"); 137#else | 136 0, 1, "Whether saved set-group/user ID is available"); 137#else |
138SYSCTL_INT(_kern, KERN_SAVED_IDS, saved_ids, CTLFLAG_RD, | 138SYSCTL_INT(_kern, KERN_SAVED_IDS, saved_ids, CTLFLAG_RD|CTLFLAG_CAPRD, |
139 0, 0, "Whether saved set-group/user ID is available"); 140#endif 141 142char kernelname[MAXPATHLEN] = "/kernel"; /* XXX bloat */ 143 144SYSCTL_STRING(_kern, KERN_BOOTFILE, bootfile, CTLFLAG_RW, 145 kernelname, sizeof kernelname, "Name of kernel file booted"); 146 | 139 0, 0, "Whether saved set-group/user ID is available"); 140#endif 141 142char kernelname[MAXPATHLEN] = "/kernel"; /* XXX bloat */ 143 144SYSCTL_STRING(_kern, KERN_BOOTFILE, bootfile, CTLFLAG_RW, 145 kernelname, sizeof kernelname, "Name of kernel file booted"); 146 |
147SYSCTL_INT(_hw, HW_NCPU, ncpu, CTLFLAG_RD, | 147SYSCTL_INT(_hw, HW_NCPU, ncpu, CTLFLAG_RD|CTLFLAG_CAPRD, |
148 &mp_ncpus, 0, "Number of active CPUs"); 149 | 148 &mp_ncpus, 0, "Number of active CPUs"); 149 |
150SYSCTL_INT(_hw, HW_BYTEORDER, byteorder, CTLFLAG_RD, | 150SYSCTL_INT(_hw, HW_BYTEORDER, byteorder, CTLFLAG_RD|CTLFLAG_CAPRD, |
151 0, BYTE_ORDER, "System byte order"); 152 | 151 0, BYTE_ORDER, "System byte order"); 152 |
153SYSCTL_INT(_hw, HW_PAGESIZE, pagesize, CTLFLAG_RD, | 153SYSCTL_INT(_hw, HW_PAGESIZE, pagesize, CTLFLAG_RD|CTLFLAG_CAPRD, |
154 0, PAGE_SIZE, "System memory page size"); 155 156static int 157sysctl_kern_arnd(SYSCTL_HANDLER_ARGS) 158{ 159 char buf[256]; 160 size_t len; 161 162 len = req->oldlen; 163 if (len > sizeof(buf)) 164 len = sizeof(buf); 165 arc4rand(buf, len, 0); 166 return (SYSCTL_OUT(req, buf, len)); 167} 168 169SYSCTL_PROC(_kern, KERN_ARND, arandom, | 154 0, PAGE_SIZE, "System memory page size"); 155 156static int 157sysctl_kern_arnd(SYSCTL_HANDLER_ARGS) 158{ 159 char buf[256]; 160 size_t len; 161 162 len = req->oldlen; 163 if (len > sizeof(buf)) 164 len = sizeof(buf); 165 arc4rand(buf, len, 0); 166 return (SYSCTL_OUT(req, buf, len)); 167} 168 169SYSCTL_PROC(_kern, KERN_ARND, arandom, |
170 CTLTYPE_OPAQUE | CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, 0, | 170 CTLTYPE_OPAQUE | CTLFLAG_RD | CTLFLAG_MPSAFE | CTLFLAG_CAPRD, NULL, 0, |
171 sysctl_kern_arnd, "", "arc4rand"); 172 173static int 174sysctl_hw_physmem(SYSCTL_HANDLER_ARGS) 175{ 176 u_long val; 177 178 val = ctob(physmem); --- 264 unchanged lines hidden (view full) --- 443#ifdef COMPAT_FREEBSD7 444FEATURE(compat_freebsd7, "Compatible with FreeBSD 7"); 445#endif 446 447/* 448 * This is really cheating. These actually live in the libc, something 449 * which I'm not quite sure is a good idea anyway, but in order for 450 * getnext and friends to actually work, we define dummies here. | 171 sysctl_kern_arnd, "", "arc4rand"); 172 173static int 174sysctl_hw_physmem(SYSCTL_HANDLER_ARGS) 175{ 176 u_long val; 177 178 val = ctob(physmem); --- 264 unchanged lines hidden (view full) --- 443#ifdef COMPAT_FREEBSD7 444FEATURE(compat_freebsd7, "Compatible with FreeBSD 7"); 445#endif 446 447/* 448 * This is really cheating. These actually live in the libc, something 449 * which I'm not quite sure is a good idea anyway, but in order for 450 * getnext and friends to actually work, we define dummies here. |
451 * 452 * XXXRW: These probably should be CTLFLAG_CAPRD. |
|
451 */ 452SYSCTL_STRING(_user, USER_CS_PATH, cs_path, CTLFLAG_RD, 453 "", 0, "PATH that finds all the standard utilities"); 454SYSCTL_INT(_user, USER_BC_BASE_MAX, bc_base_max, CTLFLAG_RD, 455 0, 0, "Max ibase/obase values in bc(1)"); 456SYSCTL_INT(_user, USER_BC_DIM_MAX, bc_dim_max, CTLFLAG_RD, 457 0, 0, "Max array size in bc(1)"); 458SYSCTL_INT(_user, USER_BC_SCALE_MAX, bc_scale_max, CTLFLAG_RD, --- 58 unchanged lines hidden --- | 453 */ 454SYSCTL_STRING(_user, USER_CS_PATH, cs_path, CTLFLAG_RD, 455 "", 0, "PATH that finds all the standard utilities"); 456SYSCTL_INT(_user, USER_BC_BASE_MAX, bc_base_max, CTLFLAG_RD, 457 0, 0, "Max ibase/obase values in bc(1)"); 458SYSCTL_INT(_user, USER_BC_DIM_MAX, bc_dim_max, CTLFLAG_RD, 459 0, 0, "Max array size in bc(1)"); 460SYSCTL_INT(_user, USER_BC_SCALE_MAX, bc_scale_max, CTLFLAG_RD, --- 58 unchanged lines hidden --- |