Deleted Added
full compact
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 ---