]>
Commit | Line | Data |
---|---|---|
d7ce7006 | 1 | /*\r |
2 | * Copyright (c) 1989, 1993\r | |
3 | * The Regents of the University of California. All rights reserved.\r | |
4 | *\r | |
5 | * This code is derived from software contributed to Berkeley by\r | |
6 | * Mike Karels at Berkeley Software Design, Inc.\r | |
7 | *\r | |
8 | * Portions copyright (c) 1999, 2000\r | |
9 | * Intel Corporation.\r | |
10 | * All rights reserved.\r | |
11 | * \r | |
12 | * Redistribution and use in source and binary forms, with or without\r | |
13 | * modification, are permitted provided that the following conditions\r | |
14 | * are met:\r | |
15 | * \r | |
16 | * 1. Redistributions of source code must retain the above copyright\r | |
17 | * notice, this list of conditions and the following disclaimer.\r | |
18 | * \r | |
19 | * 2. Redistributions in binary form must reproduce the above copyright\r | |
20 | * notice, this list of conditions and the following disclaimer in the\r | |
21 | * documentation and/or other materials provided with the distribution.\r | |
22 | * \r | |
23 | * 3. All advertising materials mentioning features or use of this software\r | |
24 | * must display the following acknowledgement:\r | |
25 | * \r | |
26 | * This product includes software developed by the University of\r | |
27 | * California, Berkeley, Intel Corporation, and its contributors.\r | |
28 | * \r | |
29 | * 4. Neither the name of University, Intel Corporation, or their respective\r | |
30 | * contributors may be used to endorse or promote products derived from\r | |
31 | * this software without specific prior written permission.\r | |
32 | * \r | |
33 | * THIS SOFTWARE IS PROVIDED BY THE REGENTS, INTEL CORPORATION AND\r | |
34 | * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,\r | |
35 | * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS\r | |
36 | * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS,\r | |
37 | * INTEL CORPORATION OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,\r | |
38 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT\r | |
39 | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r | |
40 | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r | |
41 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r | |
42 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\r | |
43 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r | |
44 | *\r | |
45 | * @(#)sysctl.h 8.1 (Berkeley) 6/2/93\r | |
46 | * $Id: sysctl.h,v 1.1.1.1 2006/05/30 06:13:00 hhzhou Exp $\r | |
47 | */\r | |
48 | \r | |
49 | #ifndef _SYS_SYSCTL_H_\r | |
50 | #define _SYS_SYSCTL_H_\r | |
51 | \r | |
52 | #include <sys/_posix.h>\r | |
53 | \r | |
54 | /*\r | |
55 | * Definitions for sysctl call. The sysctl call uses a hierarchical name\r | |
56 | * for objects that can be examined or modified. The name is expressed as\r | |
57 | * a sequence of integers. Like a file path name, the meaning of each\r | |
58 | * component depends on its place in the hierarchy. The top-level and kern\r | |
59 | * identifiers are defined here, and other identifiers are defined in the\r | |
60 | * respective subsystem header files.\r | |
61 | */\r | |
62 | \r | |
63 | #define CTL_MAXNAME 12 /* largest number of components supported */\r | |
64 | \r | |
65 | /*\r | |
66 | * Each subsystem defined by sysctl defines a list of variables\r | |
67 | * for that subsystem. Each name is either a node with further\r | |
68 | * levels defined below it, or it is a leaf of some particular\r | |
69 | * type given below. Each sysctl level defines a set of name/type\r | |
70 | * pairs to be used by sysctl(1) in manipulating the subsystem.\r | |
71 | */\r | |
72 | struct ctlname {\r | |
73 | char *ctl_name; /* subsystem name */\r | |
74 | int ctl_type; /* type of name */\r | |
75 | };\r | |
76 | \r | |
77 | #define CTLTYPE 0xf /* Mask for the type */\r | |
78 | #define CTLTYPE_NODE 1 /* name is a node */\r | |
79 | #define CTLTYPE_INT 2 /* name describes an integer */\r | |
80 | #define CTLTYPE_STRING 3 /* name describes a string */\r | |
81 | #define CTLTYPE_QUAD 4 /* name describes a 64-bit number */\r | |
82 | #define CTLTYPE_OPAQUE 5 /* name describes a structure */\r | |
83 | #define CTLTYPE_STRUCT CTLTYPE_OPAQUE /* name describes a structure */\r | |
84 | \r | |
85 | #define CTLFLAG_RD 0x80000000 /* Allow reads of variable */\r | |
86 | #define CTLFLAG_WR 0x40000000 /* Allow writes to the variable */\r | |
87 | #define CTLFLAG_RW (CTLFLAG_RD|CTLFLAG_WR)\r | |
88 | #define CTLFLAG_NOLOCK 0x20000000 /* XXX Don't Lock */\r | |
89 | #define CTLFLAG_ANYBODY 0x10000000 /* All users can set this var */\r | |
90 | #define CTLFLAG_SECURE 0x08000000 /* Permit set only if securelevel<=0 */\r | |
91 | \r | |
92 | /*\r | |
93 | * USE THIS instead of a hardwired number from the categories below\r | |
94 | * to get dynamically assigned sysctl entries using the linker-set\r | |
95 | * technology. This is the way nearly all new sysctl variables should\r | |
96 | * be implemented.\r | |
97 | * e.g. SYSCTL_INT(_parent, OID_AUTO, name, CTLFLAG_RW, &variable, 0, "");\r | |
98 | */ \r | |
99 | #define OID_AUTO (-1)\r | |
100 | \r | |
101 | #ifdef KERNEL\r | |
102 | #define SYSCTL_HANDLER_ARGS (struct sysctl_oid *oidp, void *arg1, int arg2, \\r | |
103 | struct sysctl_req *req)\r | |
104 | \r | |
105 | /*\r | |
106 | * This describes the access space for a sysctl request. This is needed\r | |
107 | * so that we can use the interface from the kernel or from user-space.\r | |
108 | */\r | |
109 | struct sysctl_req {\r | |
110 | struct proc *p;\r | |
111 | int lock;\r | |
112 | void *oldptr;\r | |
113 | size_t oldlen;\r | |
114 | size_t oldidx;\r | |
115 | int (*oldfunc)(struct sysctl_req *, const void *, size_t);\r | |
116 | void *newptr;\r | |
117 | size_t newlen;\r | |
118 | size_t newidx;\r | |
119 | int (*newfunc)(struct sysctl_req *, void *, size_t);\r | |
120 | };\r | |
121 | \r | |
122 | #ifndef _ORG_FREEBSD_\r | |
123 | #include <sys/ioccom.h>\r | |
124 | /*\r | |
125 | * Pseudo sysctl call through ioctl(2) interface\r | |
126 | */\r | |
127 | #define IOCSYSCTL _IOWR('X', 0, struct sysctl_req)\r | |
128 | \r | |
129 | struct pseudo_sysctl {\r | |
130 | int *name;\r | |
131 | u_int namelen;\r | |
132 | struct sysctl_req req;\r | |
133 | };\r | |
134 | \r | |
135 | #endif\r | |
136 | \r | |
137 | /*\r | |
138 | * This describes one "oid" in the MIB tree. Potentially more nodes can\r | |
139 | * be hidden behind it, expanded by the handler.\r | |
140 | */\r | |
141 | struct sysctl_oid {\r | |
142 | int oid_number;\r | |
143 | int oid_kind;\r | |
144 | void *oid_arg1;\r | |
145 | int oid_arg2;\r | |
146 | const char *oid_name;\r | |
147 | int (*oid_handler) SYSCTL_HANDLER_ARGS;\r | |
148 | const char *oid_fmt;\r | |
149 | };\r | |
150 | \r | |
151 | #define SYSCTL_IN(r, p, l) (r->newfunc)(r, p, l)\r | |
152 | #define SYSCTL_OUT(r, p, l) (r->oldfunc)(r, p, l)\r | |
153 | \r | |
154 | int sysctl_handle_int SYSCTL_HANDLER_ARGS;\r | |
155 | int sysctl_handle_long SYSCTL_HANDLER_ARGS;\r | |
156 | int sysctl_handle_intptr SYSCTL_HANDLER_ARGS;\r | |
157 | int sysctl_handle_string SYSCTL_HANDLER_ARGS;\r | |
158 | int sysctl_handle_opaque SYSCTL_HANDLER_ARGS;\r | |
159 | \r | |
160 | #ifdef _ORG_FREEBSD_\r | |
161 | /* This constructs a "raw" MIB oid. */\r | |
162 | #define SYSCTL_OID(parent, nbr, name, kind, a1, a2, handler, fmt, descr) \\r | |
163 | static struct sysctl_oid sysctl__##parent##_##name = { \\r | |
164 | nbr, kind, a1, a2, #name, handler, fmt }; \\r | |
165 | DATA_SET(sysctl_##parent, sysctl__##parent##_##name)\r | |
166 | \r | |
167 | /* This constructs a node from which other oids can hang. */\r | |
168 | #define SYSCTL_NODE(parent, nbr, name, access, handler, descr) \\r | |
169 | extern struct linker_set sysctl_##parent##_##name; \\r | |
170 | SYSCTL_OID(parent, nbr, name, CTLTYPE_NODE|access, \\r | |
171 | (void*)&sysctl_##parent##_##name, 0, handler, "N", descr); \\r | |
172 | DATA_SET(sysctl_##parent##_##name, sysctl__##parent##_##name)\r | |
173 | #else\r | |
174 | #define SYSCTL_OID(parent, nbr, name, kind, a1, a2, handler, fmt, descr)\r | |
175 | #define SYSCTL_NODE(parent, nbr, name, access, handler, descr)\r | |
176 | #endif\r | |
177 | \r | |
178 | /* Oid for a string. len can be 0 to indicate '\0' termination. */\r | |
179 | #define SYSCTL_STRING(parent, nbr, name, access, arg, len, descr) \\r | |
180 | SYSCTL_OID(parent, nbr, name, CTLTYPE_STRING|access, \\r | |
181 | arg, len, sysctl_handle_string, "A", descr)\r | |
182 | \r | |
183 | /* Oid for an int. If ptr is NULL, val is returned. */\r | |
184 | #define SYSCTL_INT(parent, nbr, name, access, ptr, val, descr) \\r | |
185 | SYSCTL_OID(parent, nbr, name, CTLTYPE_INT|access, \\r | |
186 | ptr, val, sysctl_handle_int, "I", descr)\r | |
187 | \r | |
188 | /* Oid for a long. The pointer must be non NULL. */\r | |
189 | #define SYSCTL_LONG(parent, nbr, name, access, ptr, descr) \\r | |
190 | SYSCTL_OID(parent, nbr, name, CTLTYPE_INT|access, \\r | |
191 | ptr, 0, sysctl_handle_long, "L", descr)\r | |
192 | \r | |
193 | /* Oid for an opaque object. Specified by a pointer and a length. */\r | |
194 | #define SYSCTL_OPAQUE(parent, nbr, name, access, ptr, len, fmt, descr) \\r | |
195 | SYSCTL_OID(parent, nbr, name, CTLTYPE_OPAQUE|access, \\r | |
196 | ptr, len, sysctl_handle_opaque, fmt, descr)\r | |
197 | \r | |
198 | /* Oid for a struct. Specified by a pointer and a type. */\r | |
199 | #define SYSCTL_STRUCT(parent, nbr, name, access, ptr, type, descr) \\r | |
200 | SYSCTL_OID(parent, nbr, name, CTLTYPE_OPAQUE|access, \\r | |
201 | ptr, sizeof(struct type), sysctl_handle_opaque, \\r | |
202 | "S," #type, descr)\r | |
203 | \r | |
204 | /* Oid for a procedure. Specified by a pointer and an arg. */\r | |
205 | #define SYSCTL_PROC(parent, nbr, name, access, ptr, arg, handler, fmt, descr) \\r | |
206 | SYSCTL_OID(parent, nbr, name, access, \\r | |
207 | ptr, arg, handler, fmt, descr)\r | |
208 | #endif /* KERNEL */\r | |
209 | \r | |
210 | /*\r | |
211 | * Top-level identifiers\r | |
212 | */\r | |
213 | #define CTL_UNSPEC 0 /* unused */\r | |
214 | #define CTL_KERN 1 /* "high kernel": proc, limits */\r | |
215 | #define CTL_VM 2 /* virtual memory */\r | |
216 | #define CTL_VFS 3 /* file system, mount type is next */\r | |
217 | #define CTL_NET 4 /* network, see socket.h */\r | |
218 | #define CTL_DEBUG 5 /* debugging parameters */\r | |
219 | #define CTL_HW 6 /* generic cpu/io */\r | |
220 | #define CTL_MACHDEP 7 /* machine dependent */\r | |
221 | #define CTL_USER 8 /* user-level */\r | |
222 | #define CTL_P1003_1B 9 /* POSIX 1003.1B */\r | |
223 | #define CTL_MAXID 10 /* number of valid top-level ids */\r | |
224 | \r | |
225 | #define CTL_NAMES { \\r | |
226 | { 0, 0 }, \\r | |
227 | { "kern", CTLTYPE_NODE }, \\r | |
228 | { "vm", CTLTYPE_NODE }, \\r | |
229 | { "vfs", CTLTYPE_NODE }, \\r | |
230 | { "net", CTLTYPE_NODE }, \\r | |
231 | { "debug", CTLTYPE_NODE }, \\r | |
232 | { "hw", CTLTYPE_NODE }, \\r | |
233 | { "machdep", CTLTYPE_NODE }, \\r | |
234 | { "user", CTLTYPE_NODE }, \\r | |
235 | { "p1003_1b", CTLTYPE_NODE }, \\r | |
236 | }\r | |
237 | \r | |
238 | /*\r | |
239 | * CTL_KERN identifiers\r | |
240 | */\r | |
241 | #define KERN_OSTYPE 1 /* string: system version */\r | |
242 | #define KERN_OSRELEASE 2 /* string: system release */\r | |
243 | #define KERN_OSREV 3 /* int: system revision */\r | |
244 | #define KERN_VERSION 4 /* string: compile time info */\r | |
245 | #define KERN_MAXVNODES 5 /* int: max vnodes */\r | |
246 | #define KERN_MAXPROC 6 /* int: max processes */\r | |
247 | #define KERN_MAXFILES 7 /* int: max open files */\r | |
248 | #define KERN_ARGMAX 8 /* int: max arguments to exec */\r | |
249 | #define KERN_SECURELVL 9 /* int: system security level */\r | |
250 | #define KERN_HOSTNAME 10 /* string: hostname */\r | |
251 | #define KERN_HOSTID 11 /* int: host identifier */\r | |
252 | #define KERN_CLOCKRATE 12 /* struct: struct clockrate */\r | |
253 | #define KERN_VNODE 13 /* struct: vnode structures */\r | |
254 | #define KERN_PROC 14 /* struct: process entries */\r | |
255 | #define KERN_FILE 15 /* struct: file entries */\r | |
256 | #define KERN_PROF 16 /* node: kernel profiling info */\r | |
257 | #define KERN_POSIX1 17 /* int: POSIX.1 version */\r | |
258 | #define KERN_NGROUPS 18 /* int: # of supplemental group ids */\r | |
259 | #define KERN_JOB_CONTROL 19 /* int: is job control available */\r | |
260 | #define KERN_SAVED_IDS 20 /* int: saved set-user/group-ID */\r | |
261 | #define KERN_BOOTTIME 21 /* struct: time kernel was booted */\r | |
262 | #define KERN_NISDOMAINNAME 22 /* string: YP domain name */\r | |
263 | #define KERN_UPDATEINTERVAL 23 /* int: update process sleep time */\r | |
264 | #define KERN_OSRELDATE 24 /* int: OS release date */\r | |
265 | #define KERN_NTP_PLL 25 /* node: NTP PLL control */\r | |
266 | #define KERN_BOOTFILE 26 /* string: name of booted kernel */\r | |
267 | #define KERN_MAXFILESPERPROC 27 /* int: max open files per proc */\r | |
268 | #define KERN_MAXPROCPERUID 28 /* int: max processes per uid */\r | |
269 | #define KERN_DUMPDEV 29 /* dev_t: device to dump on */\r | |
270 | #define KERN_IPC 30 /* node: anything related to IPC */\r | |
271 | #define KERN_DUMMY 31 /* unused */\r | |
272 | #define KERN_PS_STRINGS 32 /* int: address of PS_STRINGS */\r | |
273 | #define KERN_USRSTACK 33 /* int: address of USRSTACK */\r | |
274 | #define KERN_LOGSIGEXIT 34 /* int: do we log sigexit procs? */\r | |
275 | #define KERN_MAXID 35 /* number of valid kern ids */\r | |
276 | \r | |
277 | #define CTL_KERN_NAMES { \\r | |
278 | { 0, 0 }, \\r | |
279 | { "ostype", CTLTYPE_STRING }, \\r | |
280 | { "osrelease", CTLTYPE_STRING }, \\r | |
281 | { "osrevision", CTLTYPE_INT }, \\r | |
282 | { "version", CTLTYPE_STRING }, \\r | |
283 | { "maxvnodes", CTLTYPE_INT }, \\r | |
284 | { "maxproc", CTLTYPE_INT }, \\r | |
285 | { "maxfiles", CTLTYPE_INT }, \\r | |
286 | { "argmax", CTLTYPE_INT }, \\r | |
287 | { "securelevel", CTLTYPE_INT }, \\r | |
288 | { "hostname", CTLTYPE_STRING }, \\r | |
289 | { "hostid", CTLTYPE_INT }, \\r | |
290 | { "clockrate", CTLTYPE_STRUCT }, \\r | |
291 | { "vnode", CTLTYPE_STRUCT }, \\r | |
292 | { "proc", CTLTYPE_STRUCT }, \\r | |
293 | { "file", CTLTYPE_STRUCT }, \\r | |
294 | { "profiling", CTLTYPE_NODE }, \\r | |
295 | { "posix1version", CTLTYPE_INT }, \\r | |
296 | { "ngroups", CTLTYPE_INT }, \\r | |
297 | { "job_control", CTLTYPE_INT }, \\r | |
298 | { "saved_ids", CTLTYPE_INT }, \\r | |
299 | { "boottime", CTLTYPE_STRUCT }, \\r | |
300 | { "nisdomainname", CTLTYPE_STRING }, \\r | |
301 | { "update", CTLTYPE_INT }, \\r | |
302 | { "osreldate", CTLTYPE_INT }, \\r | |
303 | { "ntp_pll", CTLTYPE_NODE }, \\r | |
304 | { "bootfile", CTLTYPE_STRING }, \\r | |
305 | { "maxfilesperproc", CTLTYPE_INT }, \\r | |
306 | { "maxprocperuid", CTLTYPE_INT }, \\r | |
307 | { "dumpdev", CTLTYPE_STRUCT }, /* we lie; don't print as int */ \\r | |
308 | { "ipc", CTLTYPE_NODE }, \\r | |
309 | { "dummy", CTLTYPE_INT }, \\r | |
310 | { "ps_strings", CTLTYPE_INT }, \\r | |
311 | { "usrstack", CTLTYPE_INT }, \\r | |
312 | { "logsigexit", CTLTYPE_INT }, \\r | |
313 | }\r | |
314 | \r | |
315 | /*\r | |
316 | * CTL_VFS identifiers\r | |
317 | */\r | |
318 | #define CTL_VFS_NAMES { \\r | |
319 | { "vfsconf", CTLTYPE_STRUCT }, \\r | |
320 | }\r | |
321 | \r | |
322 | /*\r | |
323 | * KERN_PROC subtypes\r | |
324 | */\r | |
325 | #define KERN_PROC_ALL 0 /* everything */\r | |
326 | #define KERN_PROC_PID 1 /* by process id */\r | |
327 | #define KERN_PROC_PGRP 2 /* by process group id */\r | |
328 | #define KERN_PROC_SESSION 3 /* by session of pid */\r | |
329 | #define KERN_PROC_TTY 4 /* by controlling tty */\r | |
330 | #define KERN_PROC_UID 5 /* by effective uid */\r | |
331 | #define KERN_PROC_RUID 6 /* by real uid */\r | |
332 | \r | |
333 | /*\r | |
334 | * KERN_IPC identifiers\r | |
335 | */\r | |
336 | #define KIPC_MAXSOCKBUF 1 /* int: max size of a socket buffer */\r | |
337 | #define KIPC_SOCKBUF_WASTE 2 /* int: wastage factor in sockbuf */\r | |
338 | #define KIPC_SOMAXCONN 3 /* int: max length of connection q */\r | |
339 | #define KIPC_MAX_LINKHDR 4 /* int: max length of link header */\r | |
340 | #define KIPC_MAX_PROTOHDR 5 /* int: max length of network header */\r | |
341 | #define KIPC_MAX_HDR 6 /* int: max total length of headers */\r | |
342 | #define KIPC_MAX_DATALEN 7 /* int: max length of data? */\r | |
343 | #define KIPC_MBSTAT 8 /* struct: mbuf usage statistics */\r | |
344 | #define KIPC_NMBCLUSTERS 9 /* int: maximum mbuf clusters */\r | |
345 | \r | |
346 | /*\r | |
347 | * CTL_HW identifiers\r | |
348 | */\r | |
349 | #define HW_MACHINE 1 /* string: machine class */\r | |
350 | #define HW_MODEL 2 /* string: specific machine model */\r | |
351 | #define HW_NCPU 3 /* int: number of cpus */\r | |
352 | #define HW_BYTEORDER 4 /* int: machine byte order */\r | |
353 | #define HW_PHYSMEM 5 /* int: total memory */\r | |
354 | #define HW_USERMEM 6 /* int: non-kernel memory */\r | |
355 | #define HW_PAGESIZE 7 /* int: software page size */\r | |
356 | #define HW_DISKNAMES 8 /* strings: disk drive names */\r | |
357 | #define HW_DISKSTATS 9 /* struct: diskstats[] */\r | |
358 | #define HW_FLOATINGPT 10 /* int: has HW floating point? */\r | |
359 | #define HW_MACHINE_ARCH 11 /* string: machine architecture */\r | |
360 | #define HW_MAXID 12 /* number of valid hw ids */\r | |
361 | \r | |
362 | #define CTL_HW_NAMES { \\r | |
363 | { 0, 0 }, \\r | |
364 | { "machine", CTLTYPE_STRING }, \\r | |
365 | { "model", CTLTYPE_STRING }, \\r | |
366 | { "ncpu", CTLTYPE_INT }, \\r | |
367 | { "byteorder", CTLTYPE_INT }, \\r | |
368 | { "physmem", CTLTYPE_INT }, \\r | |
369 | { "usermem", CTLTYPE_INT }, \\r | |
370 | { "pagesize", CTLTYPE_INT }, \\r | |
371 | { "disknames", CTLTYPE_STRUCT }, \\r | |
372 | { "diskstats", CTLTYPE_STRUCT }, \\r | |
373 | { "floatingpoint", CTLTYPE_INT }, \\r | |
374 | }\r | |
375 | \r | |
376 | /*\r | |
377 | * CTL_USER definitions\r | |
378 | */\r | |
379 | #define USER_CS_PATH 1 /* string: _CS_PATH */\r | |
380 | #define USER_BC_BASE_MAX 2 /* int: BC_BASE_MAX */\r | |
381 | #define USER_BC_DIM_MAX 3 /* int: BC_DIM_MAX */\r | |
382 | #define USER_BC_SCALE_MAX 4 /* int: BC_SCALE_MAX */\r | |
383 | #define USER_BC_STRING_MAX 5 /* int: BC_STRING_MAX */\r | |
384 | #define USER_COLL_WEIGHTS_MAX 6 /* int: COLL_WEIGHTS_MAX */\r | |
385 | #define USER_EXPR_NEST_MAX 7 /* int: EXPR_NEST_MAX */\r | |
386 | #define USER_LINE_MAX 8 /* int: LINE_MAX */\r | |
387 | #define USER_RE_DUP_MAX 9 /* int: RE_DUP_MAX */\r | |
388 | #define USER_POSIX2_VERSION 10 /* int: POSIX2_VERSION */\r | |
389 | #define USER_POSIX2_C_BIND 11 /* int: POSIX2_C_BIND */\r | |
390 | #define USER_POSIX2_C_DEV 12 /* int: POSIX2_C_DEV */\r | |
391 | #define USER_POSIX2_CHAR_TERM 13 /* int: POSIX2_CHAR_TERM */\r | |
392 | #define USER_POSIX2_FORT_DEV 14 /* int: POSIX2_FORT_DEV */\r | |
393 | #define USER_POSIX2_FORT_RUN 15 /* int: POSIX2_FORT_RUN */\r | |
394 | #define USER_POSIX2_LOCALEDEF 16 /* int: POSIX2_LOCALEDEF */\r | |
395 | #define USER_POSIX2_SW_DEV 17 /* int: POSIX2_SW_DEV */\r | |
396 | #define USER_POSIX2_UPE 18 /* int: POSIX2_UPE */\r | |
397 | #define USER_STREAM_MAX 19 /* int: POSIX2_STREAM_MAX */\r | |
398 | #define USER_TZNAME_MAX 20 /* int: POSIX2_TZNAME_MAX */\r | |
399 | #define USER_MAXID 21 /* number of valid user ids */\r | |
400 | \r | |
401 | #define CTL_USER_NAMES { \\r | |
402 | { 0, 0 }, \\r | |
403 | { "cs_path", CTLTYPE_STRING }, \\r | |
404 | { "bc_base_max", CTLTYPE_INT }, \\r | |
405 | { "bc_dim_max", CTLTYPE_INT }, \\r | |
406 | { "bc_scale_max", CTLTYPE_INT }, \\r | |
407 | { "bc_string_max", CTLTYPE_INT }, \\r | |
408 | { "coll_weights_max", CTLTYPE_INT }, \\r | |
409 | { "expr_nest_max", CTLTYPE_INT }, \\r | |
410 | { "line_max", CTLTYPE_INT }, \\r | |
411 | { "re_dup_max", CTLTYPE_INT }, \\r | |
412 | { "posix2_version", CTLTYPE_INT }, \\r | |
413 | { "posix2_c_bind", CTLTYPE_INT }, \\r | |
414 | { "posix2_c_dev", CTLTYPE_INT }, \\r | |
415 | { "posix2_char_term", CTLTYPE_INT }, \\r | |
416 | { "posix2_fort_dev", CTLTYPE_INT }, \\r | |
417 | { "posix2_fort_run", CTLTYPE_INT }, \\r | |
418 | { "posix2_localedef", CTLTYPE_INT }, \\r | |
419 | { "posix2_sw_dev", CTLTYPE_INT }, \\r | |
420 | { "posix2_upe", CTLTYPE_INT }, \\r | |
421 | { "stream_max", CTLTYPE_INT }, \\r | |
422 | { "tzname_max", CTLTYPE_INT }, \\r | |
423 | }\r | |
424 | \r | |
425 | #define CTL_P1003_1B_ASYNCHRONOUS_IO 1 /* boolean */\r | |
426 | #define CTL_P1003_1B_MAPPED_FILES 2 /* boolean */\r | |
427 | #define CTL_P1003_1B_MEMLOCK 3 /* boolean */\r | |
428 | #define CTL_P1003_1B_MEMLOCK_RANGE 4 /* boolean */\r | |
429 | #define CTL_P1003_1B_MEMORY_PROTECTION 5 /* boolean */\r | |
430 | #define CTL_P1003_1B_MESSAGE_PASSING 6 /* boolean */\r | |
431 | #define CTL_P1003_1B_PRIORITIZED_IO 7 /* boolean */\r | |
432 | #define CTL_P1003_1B_PRIORITY_SCHEDULING 8 /* boolean */\r | |
433 | #define CTL_P1003_1B_REALTIME_SIGNALS 9 /* boolean */\r | |
434 | #define CTL_P1003_1B_SEMAPHORES 10 /* boolean */\r | |
435 | #define CTL_P1003_1B_FSYNC 11 /* boolean */\r | |
436 | #define CTL_P1003_1B_SHARED_MEMORY_OBJECTS 12 /* boolean */\r | |
437 | #define CTL_P1003_1B_SYNCHRONIZED_IO 13 /* boolean */\r | |
438 | #define CTL_P1003_1B_TIMERS 14 /* boolean */\r | |
439 | #define CTL_P1003_1B_AIO_LISTIO_MAX 15 /* int */\r | |
440 | #define CTL_P1003_1B_AIO_MAX 16 /* int */\r | |
441 | #define CTL_P1003_1B_AIO_PRIO_DELTA_MAX 17 /* int */\r | |
442 | #define CTL_P1003_1B_DELAYTIMER_MAX 18 /* int */\r | |
443 | #define CTL_P1003_1B_MQ_OPEN_MAX 19 /* int */\r | |
444 | #define CTL_P1003_1B_PAGESIZE 20 /* int */\r | |
445 | #define CTL_P1003_1B_RTSIG_MAX 21 /* int */\r | |
446 | #define CTL_P1003_1B_SEM_NSEMS_MAX 22 /* int */\r | |
447 | #define CTL_P1003_1B_SEM_VALUE_MAX 23 /* int */\r | |
448 | #define CTL_P1003_1B_SIGQUEUE_MAX 24 /* int */\r | |
449 | #define CTL_P1003_1B_TIMER_MAX 25 /* int */\r | |
450 | \r | |
451 | #define CTL_P1003_1B_MAXID 26\r | |
452 | \r | |
453 | #define CTL_P1003_1B_NAMES { \\r | |
454 | { 0, 0 }, \\r | |
455 | { "asynchronous_io", CTLTYPE_INT }, \\r | |
456 | { "mapped_files", CTLTYPE_INT }, \\r | |
457 | { "memlock", CTLTYPE_INT }, \\r | |
458 | { "memlock_range", CTLTYPE_INT }, \\r | |
459 | { "memory_protection", CTLTYPE_INT }, \\r | |
460 | { "message_passing", CTLTYPE_INT }, \\r | |
461 | { "prioritized_io", CTLTYPE_INT }, \\r | |
462 | { "priority_scheduling", CTLTYPE_INT }, \\r | |
463 | { "realtime_signals", CTLTYPE_INT }, \\r | |
464 | { "semaphores", CTLTYPE_INT }, \\r | |
465 | { "fsync", CTLTYPE_INT }, \\r | |
466 | { "shared_memory_objects", CTLTYPE_INT }, \\r | |
467 | { "synchronized_io", CTLTYPE_INT }, \\r | |
468 | { "timers", CTLTYPE_INT }, \\r | |
469 | { "aio_listio_max", CTLTYPE_INT }, \\r | |
470 | { "aio_max", CTLTYPE_INT }, \\r | |
471 | { "aio_prio_delta_max", CTLTYPE_INT }, \\r | |
472 | { "delaytimer_max", CTLTYPE_INT }, \\r | |
473 | { "mq_open_max", CTLTYPE_INT }, \\r | |
474 | { "pagesize", CTLTYPE_INT }, \\r | |
475 | { "rtsig_max", CTLTYPE_INT }, \\r | |
476 | { "nsems_max", CTLTYPE_INT }, \\r | |
477 | { "sem_value_max", CTLTYPE_INT }, \\r | |
478 | { "sigqueue_max", CTLTYPE_INT }, \\r | |
479 | { "timer_max", CTLTYPE_INT }, \\r | |
480 | }\r | |
481 | \r | |
482 | #ifdef KERNEL\r | |
483 | \r | |
484 | extern char machine[];\r | |
485 | extern char osrelease[];\r | |
486 | extern char ostype[];\r | |
487 | \r | |
488 | int kernel_sysctl(struct proc *p, int *name, u_int namelen, void *old,\r | |
489 | size_t *oldlenp, void *new, size_t newlen,\r | |
490 | size_t *retval);\r | |
491 | void sysctl_order_all(void);\r | |
492 | int userland_sysctl(struct proc *p, int *name, u_int namelen, void *old,\r | |
493 | size_t *oldlenp, int inkernel, void *new, size_t newlen,\r | |
494 | size_t *retval);\r | |
495 | \r | |
496 | #else /* !KERNEL */\r | |
497 | #include <sys/EfiCdefs.h>\r | |
498 | \r | |
499 | __BEGIN_DECLS\r | |
500 | int sysctl __P((int *, u_int, void *, size_t *, void *, size_t));\r | |
501 | int sysctlbyname __P((const char *, void *, size_t *, void *, size_t));\r | |
502 | __END_DECLS\r | |
503 | #endif /* KERNEL */\r | |
504 | \r | |
505 | #endif /* !_SYS_SYSCTL_H_ */\r |