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 #ifndef _SYS_SYSCTL_H_
39 #define _SYS_SYSCTL_H_
40
41
42
43
44 #ifndef _KERNEL
45 #include <sys/time.h>
46 #include <sys/ucred.h>
47 #include <sys/proc.h>
48 #include <sys/resource.h>
49 #endif
50
51 #include <sys/resourcevar.h>
52
53 #include <uvm/uvm_extern.h>
54
55
56
57
58
59
60
61
62
63
64 #define CTL_MAXNAME 12
65
66
67
68
69
70
71
72
73 struct ctlname {
74 char *ctl_name;
75 int ctl_type;
76 };
77 #define CTLTYPE_NODE 1
78 #define CTLTYPE_INT 2
79 #define CTLTYPE_STRING 3
80 #define CTLTYPE_QUAD 4
81 #define CTLTYPE_STRUCT 5
82
83
84
85
86 #define CTL_UNSPEC 0
87 #define CTL_KERN 1
88 #define CTL_VM 2
89 #define CTL_FS 3
90 #define CTL_NET 4
91 #define CTL_DEBUG 5
92 #define CTL_HW 6
93 #define CTL_MACHDEP 7
94 #define CTL_USER 8
95 #define CTL_DDB 9
96 #define CTL_VFS 10
97 #define CTL_MAXID 11
98
99 #define CTL_NAMES { \
100 { 0, 0 }, \
101 { "kern", CTLTYPE_NODE }, \
102 { "vm", CTLTYPE_NODE }, \
103 { "fs", CTLTYPE_NODE }, \
104 { "net", CTLTYPE_NODE }, \
105 { "debug", CTLTYPE_NODE }, \
106 { "hw", CTLTYPE_NODE }, \
107 { "machdep", CTLTYPE_NODE }, \
108 { "user", CTLTYPE_NODE }, \
109 { "ddb", CTLTYPE_NODE }, \
110 { "vfs", CTLTYPE_NODE }, \
111 }
112
113
114
115
116 #define KERN_OSTYPE 1
117 #define KERN_OSRELEASE 2
118 #define KERN_OSREV 3
119 #define KERN_VERSION 4
120 #define KERN_MAXVNODES 5
121 #define KERN_MAXPROC 6
122 #define KERN_MAXFILES 7
123 #define KERN_ARGMAX 8
124 #define KERN_SECURELVL 9
125 #define KERN_HOSTNAME 10
126 #define KERN_HOSTID 11
127 #define KERN_CLOCKRATE 12
128 #define KERN_VNODE 13
129 #define KERN_PROC 14
130 #define KERN_FILE 15
131 #define KERN_PROF 16
132 #define KERN_POSIX1 17
133 #define KERN_NGROUPS 18
134 #define KERN_JOB_CONTROL 19
135 #define KERN_SAVED_IDS 20
136 #define KERN_BOOTTIME 21
137 #define KERN_DOMAINNAME 22
138 #define KERN_MAXPARTITIONS 23
139 #define KERN_RAWPARTITION 24
140
141
142 #define KERN_OSVERSION 27
143 #define KERN_SOMAXCONN 28
144 #define KERN_SOMINCONN 29
145 #define KERN_USERMOUNT 30
146 #define KERN_RND 31
147 #define KERN_NOSUIDCOREDUMP 32
148 #define KERN_FSYNC 33
149 #define KERN_SYSVMSG 34
150 #define KERN_SYSVSEM 35
151 #define KERN_SYSVSHM 36
152 #define KERN_ARND 37
153 #define KERN_MSGBUFSIZE 38
154 #define KERN_MALLOCSTATS 39
155 #define KERN_CPTIME 40
156 #define KERN_NCHSTATS 41
157 #define KERN_FORKSTAT 42
158 #define KERN_NSELCOLL 43
159 #define KERN_TTY 44
160 #define KERN_CCPU 45
161 #define KERN_FSCALE 46
162 #define KERN_NPROCS 47
163 #define KERN_MSGBUF 48
164 #define KERN_POOL 49
165 #define KERN_STACKGAPRANDOM 50
166 #define KERN_SYSVIPC_INFO 51
167 #define KERN_USERCRYPTO 52
168 #define KERN_CRYPTODEVALLOWSOFT 53
169 #define KERN_SPLASSERT 54
170 #define KERN_PROC_ARGS 55
171 #define KERN_NFILES 56
172 #define KERN_TTYCOUNT 57
173 #define KERN_NUMVNODES 58
174 #define KERN_MBSTAT 59
175 #define KERN_USERASYMCRYPTO 60
176 #define KERN_SEMINFO 61
177 #define KERN_SHMINFO 62
178 #define KERN_INTRCNT 63
179 #define KERN_WATCHDOG 64
180 #define KERN_EMUL 65
181 #define KERN_PROC2 66
182 #define KERN_MAXCLUSTERS 67
183 #define KERN_EVCOUNT 68
184 #define KERN_TIMECOUNTER 69
185 #define KERN_MAXLOCKSPERUID 70
186 #define KERN_CPTIME2 71
187 #define KERN_MAXID 72
188
189 #define CTL_KERN_NAMES { \
190 { 0, 0 }, \
191 { "ostype", CTLTYPE_STRING }, \
192 { "osrelease", CTLTYPE_STRING }, \
193 { "osrevision", CTLTYPE_INT }, \
194 { "version", CTLTYPE_STRING }, \
195 { "maxvnodes", CTLTYPE_INT }, \
196 { "maxproc", CTLTYPE_INT }, \
197 { "maxfiles", CTLTYPE_INT }, \
198 { "argmax", CTLTYPE_INT }, \
199 { "securelevel", CTLTYPE_INT }, \
200 { "hostname", CTLTYPE_STRING }, \
201 { "hostid", CTLTYPE_INT }, \
202 { "clockrate", CTLTYPE_STRUCT }, \
203 { "vnode", CTLTYPE_STRUCT }, \
204 { "proc", CTLTYPE_STRUCT }, \
205 { "file", CTLTYPE_STRUCT }, \
206 { "profiling", CTLTYPE_NODE }, \
207 { "posix1version", CTLTYPE_INT }, \
208 { "ngroups", CTLTYPE_INT }, \
209 { "job_control", CTLTYPE_INT }, \
210 { "saved_ids", CTLTYPE_INT }, \
211 { "boottime", CTLTYPE_STRUCT }, \
212 { "domainname", CTLTYPE_STRING }, \
213 { "maxpartitions", CTLTYPE_INT }, \
214 { "rawpartition", CTLTYPE_INT }, \
215 { "gap", 0 }, \
216 { "gap", 0 }, \
217 { "osversion", CTLTYPE_STRING }, \
218 { "somaxconn", CTLTYPE_INT }, \
219 { "sominconn", CTLTYPE_INT }, \
220 { "usermount", CTLTYPE_INT }, \
221 { "random", CTLTYPE_STRUCT }, \
222 { "nosuidcoredump", CTLTYPE_INT }, \
223 { "fsync", CTLTYPE_INT }, \
224 { "sysvmsg", CTLTYPE_INT }, \
225 { "sysvsem", CTLTYPE_INT }, \
226 { "sysvshm", CTLTYPE_INT }, \
227 { "arandom", CTLTYPE_INT }, \
228 { "msgbufsize", CTLTYPE_INT }, \
229 { "malloc", CTLTYPE_NODE }, \
230 { "cp_time", CTLTYPE_STRUCT }, \
231 { "nchstats", CTLTYPE_STRUCT }, \
232 { "forkstat", CTLTYPE_STRUCT }, \
233 { "nselcoll", CTLTYPE_INT }, \
234 { "tty", CTLTYPE_NODE }, \
235 { "ccpu", CTLTYPE_INT }, \
236 { "fscale", CTLTYPE_INT }, \
237 { "nprocs", CTLTYPE_INT }, \
238 { "msgbuf", CTLTYPE_STRUCT }, \
239 { "pool", CTLTYPE_NODE }, \
240 { "stackgap_random", CTLTYPE_INT }, \
241 { "sysvipc_info", CTLTYPE_INT }, \
242 { "usercrypto", CTLTYPE_INT }, \
243 { "cryptodevallowsoft", CTLTYPE_INT }, \
244 { "splassert", CTLTYPE_INT }, \
245 { "procargs", CTLTYPE_NODE }, \
246 { "nfiles", CTLTYPE_INT }, \
247 { "ttycount", CTLTYPE_INT }, \
248 { "numvnodes", CTLTYPE_INT }, \
249 { "mbstat", CTLTYPE_STRUCT }, \
250 { "userasymcrypto", CTLTYPE_INT }, \
251 { "seminfo", CTLTYPE_STRUCT }, \
252 { "shminfo", CTLTYPE_STRUCT }, \
253 { "intrcnt", CTLTYPE_NODE }, \
254 { "watchdog", CTLTYPE_NODE }, \
255 { "emul", CTLTYPE_NODE }, \
256 { "proc2", CTLTYPE_STRUCT }, \
257 { "maxclusters", CTLTYPE_INT }, \
258 { "evcount", CTLTYPE_NODE }, \
259 { "timecounter", CTLTYPE_NODE }, \
260 { "maxlocksperuid", CTLTYPE_INT }, \
261 { "cp_time2", CTLTYPE_STRUCT }, \
262 }
263
264
265
266
267 #define KERN_EMUL_NUM 0
268
269 #define KERN_EMUL_NAME 0
270 #define KERN_EMUL_ENABLED 1
271
272
273
274
275
276 #define KERN_PROC_ALL 0
277 #define KERN_PROC_PID 1
278 #define KERN_PROC_PGRP 2
279 #define KERN_PROC_SESSION 3
280 #define KERN_PROC_TTY 4
281 #define KERN_PROC_UID 5
282 #define KERN_PROC_RUID 6
283 #define KERN_PROC_KTHREAD 7
284
285
286
287
288 #define KERN_SYSVIPC_MSG_INFO 1
289 #define KERN_SYSVIPC_SEM_INFO 2
290 #define KERN_SYSVIPC_SHM_INFO 3
291
292
293
294
295 #define KERN_PROC_ARGV 1
296 #define KERN_PROC_NARGV 2
297 #define KERN_PROC_ENV 3
298 #define KERN_PROC_NENV 4
299
300
301
302
303 struct kinfo_proc {
304 struct proc kp_proc;
305 struct eproc {
306 struct proc *e_paddr;
307 struct session *e_sess;
308 struct pcred e_pcred;
309 struct ucred e_ucred;
310 struct vmspace e_vm;
311 struct pstats e_pstats;
312 int e_pstats_valid;
313 pid_t e_ppid;
314 pid_t e_pgid;
315 short e_jobc;
316 dev_t e_tdev;
317 pid_t e_tpgid;
318 struct session *e_tsess;
319 #define WMESGLEN 7
320 char e_wmesg[WMESGLEN+1];
321 segsz_t e_xsize;
322 short e_xrssize;
323 short e_xccount;
324 short e_xswrss;
325 long e_flag;
326 #define EPROC_CTTY 0x01
327 #define EPROC_SLEADER 0x02
328 char e_login[MAXLOGNAME];
329 #define EMULNAMELEN 7
330 char e_emul[EMULNAMELEN+1];
331 rlim_t e_maxrss;
332 struct plimit *e_limit;
333 } kp_eproc;
334 };
335
336
337
338
339
340
341
342 #define KI_NGROUPS 16
343 #define KI_MAXCOMLEN 24
344 #define KI_WMESGLEN 8
345 #define KI_MAXLOGNAME 32
346 #define KI_EMULNAMELEN 8
347
348 #define KI_NOCPU (~(u_int64_t)0)
349
350 struct kinfo_proc2 {
351 u_int64_t p_forw;
352 u_int64_t p_back;
353 u_int64_t p_paddr;
354
355 u_int64_t p_addr;
356 u_int64_t p_fd;
357 u_int64_t p_stats;
358 u_int64_t p_limit;
359 u_int64_t p_vmspace;
360 u_int64_t p_sigacts;
361 u_int64_t p_sess;
362 u_int64_t p_tsess;
363 u_int64_t p_ru;
364
365 int32_t p_eflag;
366 int32_t p_exitsig;
367 int32_t p_flag;
368
369 int32_t p_pid;
370 int32_t p_ppid;
371 int32_t p_sid;
372 int32_t p__pgid;
373
374 int32_t p_tpgid;
375
376 u_int32_t p_uid;
377 u_int32_t p_ruid;
378 u_int32_t p_gid;
379 u_int32_t p_rgid;
380
381 u_int32_t p_groups[KI_NGROUPS];
382 int16_t p_ngroups;
383
384 int16_t p_jobc;
385 u_int32_t p_tdev;
386
387 u_int32_t p_estcpu;
388 u_int32_t p_rtime_sec;
389 u_int32_t p_rtime_usec;
390 int32_t p_cpticks;
391 u_int32_t p_pctcpu;
392 u_int32_t p_swtime;
393 u_int32_t p_slptime;
394 int32_t p_schedflags;
395
396 u_int64_t p_uticks;
397 u_int64_t p_sticks;
398 u_int64_t p_iticks;
399
400 u_int64_t p_tracep;
401 int32_t p_traceflag;
402
403 int32_t p_holdcnt;
404
405 int32_t p_siglist;
406 u_int32_t p_sigmask;
407 u_int32_t p_sigignore;
408 u_int32_t p_sigcatch;
409
410 int8_t p_stat;
411 u_int8_t p_priority;
412 u_int8_t p_usrpri;
413 u_int8_t p_nice;
414
415 u_int16_t p_xstat;
416 u_int16_t p_acflag;
417
418 char p_comm[KI_MAXCOMLEN];
419
420 char p_wmesg[KI_WMESGLEN];
421 u_int64_t p_wchan;
422
423 char p_login[KI_MAXLOGNAME];
424
425 int32_t p_vm_rssize;
426 int32_t p_vm_tsize;
427 int32_t p_vm_dsize;
428 int32_t p_vm_ssize;
429
430 int64_t p_uvalid;
431
432 u_int32_t p_ustart_sec;
433 u_int32_t p_ustart_usec;
434
435 u_int32_t p_uutime_sec;
436 u_int32_t p_uutime_usec;
437 u_int32_t p_ustime_sec;
438 u_int32_t p_ustime_usec;
439
440 u_int64_t p_uru_maxrss;
441 u_int64_t p_uru_ixrss;
442 u_int64_t p_uru_idrss;
443 u_int64_t p_uru_isrss;
444 u_int64_t p_uru_minflt;
445 u_int64_t p_uru_majflt;
446 u_int64_t p_uru_nswap;
447 u_int64_t p_uru_inblock;
448 u_int64_t p_uru_oublock;
449 u_int64_t p_uru_msgsnd;
450 u_int64_t p_uru_msgrcv;
451 u_int64_t p_uru_nsignals;
452 u_int64_t p_uru_nvcsw;
453 u_int64_t p_uru_nivcsw;
454
455 u_int32_t p_uctime_sec;
456 u_int32_t p_uctime_usec;
457 u_int64_t p_realflag;
458 u_int32_t p_svuid;
459 u_int32_t p_svgid;
460 char p_emul[KI_EMULNAMELEN];
461 u_int64_t p_rlim_rss_cur;
462 u_int64_t p_cpuid;
463 u_int64_t p_vm_map_size;
464 };
465
466
467
468
469 #define KERN_INTRCNT_NUM 1
470 #define KERN_INTRCNT_CNT 2
471 #define KERN_INTRCNT_NAME 3
472 #define KERN_INTRCNT_VECTOR 4
473 #define KERN_INTRCNT_MAXID 5
474
475 #define CTL_KERN_INTRCNT_NAMES { \
476 { 0, 0 }, \
477 { "nintrcnt", CTLTYPE_INT }, \
478 { "intrcnt", CTLTYPE_NODE }, \
479 { "intrname", CTLTYPE_NODE }, \
480 }
481
482
483
484
485 #define KERN_WATCHDOG_PERIOD 1
486 #define KERN_WATCHDOG_AUTO 2
487 #define KERN_WATCHDOG_MAXID 3
488
489 #define CTL_KERN_WATCHDOG_NAMES { \
490 { 0, 0 }, \
491 { "period", CTLTYPE_INT }, \
492 { "auto", CTLTYPE_INT }, \
493 }
494
495
496
497
498 #define KERN_TIMECOUNTER_TICK 1
499 #define KERN_TIMECOUNTER_TIMESTEPWARNINGS 2
500 #define KERN_TIMECOUNTER_HARDWARE 3
501 #define KERN_TIMECOUNTER_CHOICE 4
502 #define KERN_TIMECOUNTER_MAXID 5
503
504 #define CTL_KERN_TIMECOUNTER_NAMES { \
505 { 0, 0 }, \
506 { "tick", CTLTYPE_INT }, \
507 { "timestepwarnings", CTLTYPE_INT }, \
508 { "hardware", CTLTYPE_STRING }, \
509 { "choice", CTLTYPE_STRING }, \
510 }
511
512
513
514
515 #define FS_POSIX 1
516 #define FS_MAXID 2
517
518 #define CTL_FS_NAMES { \
519 { 0, 0 }, \
520 { "posix", CTLTYPE_NODE }, \
521 }
522
523
524
525
526 #define FS_POSIX_SETUID 1
527 #define FS_POSIX_MAXID 2
528
529 #define CTL_FS_POSIX_NAMES { \
530 { 0, 0 }, \
531 { "setuid", CTLTYPE_INT }, \
532 }
533
534
535
536
537 #define HW_MACHINE 1
538 #define HW_MODEL 2
539 #define HW_NCPU 3
540 #define HW_BYTEORDER 4
541 #define HW_PHYSMEM 5
542 #define HW_USERMEM 6
543 #define HW_PAGESIZE 7
544 #define HW_DISKNAMES 8
545 #define HW_DISKSTATS 9
546 #define HW_DISKCOUNT 10
547 #define HW_SENSORS 11
548 #define HW_CPUSPEED 12
549 #define HW_SETPERF 13
550 #define HW_VENDOR 14
551 #define HW_PRODUCT 15
552 #define HW_VERSION 16
553 #define HW_SERIALNO 17
554 #define HW_UUID 18
555 #define HW_MAXID 19
556
557 #define CTL_HW_NAMES { \
558 { 0, 0 }, \
559 { "machine", CTLTYPE_STRING }, \
560 { "model", CTLTYPE_STRING }, \
561 { "ncpu", CTLTYPE_INT }, \
562 { "byteorder", CTLTYPE_INT }, \
563 { "physmem", CTLTYPE_INT }, \
564 { "usermem", CTLTYPE_INT }, \
565 { "pagesize", CTLTYPE_INT }, \
566 { "disknames", CTLTYPE_STRING }, \
567 { "diskstats", CTLTYPE_STRUCT }, \
568 { "diskcount", CTLTYPE_INT }, \
569 { "sensors", CTLTYPE_NODE}, \
570 { "cpuspeed", CTLTYPE_INT }, \
571 { "setperf", CTLTYPE_INT }, \
572 { "vendor", CTLTYPE_STRING }, \
573 { "product", CTLTYPE_STRING }, \
574 { "version", CTLTYPE_STRING }, \
575 { "serialno", CTLTYPE_STRING }, \
576 { "uuid", CTLTYPE_STRING }, \
577 }
578
579
580
581
582 #define USER_CS_PATH 1
583 #define USER_BC_BASE_MAX 2
584 #define USER_BC_DIM_MAX 3
585 #define USER_BC_SCALE_MAX 4
586 #define USER_BC_STRING_MAX 5
587 #define USER_COLL_WEIGHTS_MAX 6
588 #define USER_EXPR_NEST_MAX 7
589 #define USER_LINE_MAX 8
590 #define USER_RE_DUP_MAX 9
591 #define USER_POSIX2_VERSION 10
592 #define USER_POSIX2_C_BIND 11
593 #define USER_POSIX2_C_DEV 12
594 #define USER_POSIX2_CHAR_TERM 13
595 #define USER_POSIX2_FORT_DEV 14
596 #define USER_POSIX2_FORT_RUN 15
597 #define USER_POSIX2_LOCALEDEF 16
598 #define USER_POSIX2_SW_DEV 17
599 #define USER_POSIX2_UPE 18
600 #define USER_STREAM_MAX 19
601 #define USER_TZNAME_MAX 20
602 #define USER_MAXID 21
603
604 #define CTL_USER_NAMES { \
605 { 0, 0 }, \
606 { "cs_path", CTLTYPE_STRING }, \
607 { "bc_base_max", CTLTYPE_INT }, \
608 { "bc_dim_max", CTLTYPE_INT }, \
609 { "bc_scale_max", CTLTYPE_INT }, \
610 { "bc_string_max", CTLTYPE_INT }, \
611 { "coll_weights_max", CTLTYPE_INT }, \
612 { "expr_nest_max", CTLTYPE_INT }, \
613 { "line_max", CTLTYPE_INT }, \
614 { "re_dup_max", CTLTYPE_INT }, \
615 { "posix2_version", CTLTYPE_INT }, \
616 { "posix2_c_bind", CTLTYPE_INT }, \
617 { "posix2_c_dev", CTLTYPE_INT }, \
618 { "posix2_char_term", CTLTYPE_INT }, \
619 { "posix2_fort_dev", CTLTYPE_INT }, \
620 { "posix2_fort_run", CTLTYPE_INT }, \
621 { "posix2_localedef", CTLTYPE_INT }, \
622 { "posix2_sw_dev", CTLTYPE_INT }, \
623 { "posix2_upe", CTLTYPE_INT }, \
624 { "stream_max", CTLTYPE_INT }, \
625 { "tzname_max", CTLTYPE_INT }, \
626 }
627
628
629
630
631
632
633
634 #define CTL_DEBUG_NAME 0
635 #define CTL_DEBUG_VALUE 1
636 #define CTL_DEBUG_MAXID 20
637
638 #ifdef _KERNEL
639 #ifdef DEBUG
640
641
642
643
644
645
646
647
648
649
650
651
652 struct ctldebug {
653 char *debugname;
654 int *debugvar;
655 };
656 extern struct ctldebug debug0, debug1, debug2, debug3, debug4;
657 extern struct ctldebug debug5, debug6, debug7, debug8, debug9;
658 extern struct ctldebug debug10, debug11, debug12, debug13, debug14;
659 extern struct ctldebug debug15, debug16, debug17, debug18, debug19;
660 #endif
661
662
663
664
665
666
667
668
669
670
671 typedef int (sysctlfn)(int *, u_int, void *, size_t *, void *, size_t, struct proc *);
672
673 int sysctl_int(void *, size_t *, void *, size_t, int *);
674 int sysctl_int_lower(void *, size_t *, void *, size_t, int *);
675 int sysctl_rdint(void *, size_t *, void *, int);
676 int sysctl_int_arr(int **, int *, u_int, void *, size_t *, void *, size_t);
677 int sysctl_quad(void *, size_t *, void *, size_t, int64_t *);
678 int sysctl_rdquad(void *, size_t *, void *, int64_t);
679 int sysctl_string(void *, size_t *, void *, size_t, char *, int);
680 int sysctl_tstring(void *, size_t *, void *, size_t, char *, int);
681 int sysctl__string(void *, size_t *, void *, size_t, char *, int, int);
682 int sysctl_rdstring(void *, size_t *, void *, const char *);
683 int sysctl_rdstruct(void *, size_t *, void *, const void *, int);
684 int sysctl_struct(void *, size_t *, void *, size_t, void *, int);
685 int sysctl_file(char *, size_t *);
686 int sysctl_doproc(int *, u_int, char *, size_t *);
687 struct radix_node;
688 struct walkarg;
689 int sysctl_dumpentry(struct radix_node *, void *);
690 int sysctl_iflist(int, struct walkarg *);
691 int sysctl_rtable(int *, u_int, void *, size_t *, void *, size_t);
692 int sysctl_clockrate(char *, size_t *);
693 int sysctl_vnode(char *, size_t *, struct proc *);
694 #ifdef GPROF
695 int sysctl_doprof(int *, u_int, void *, size_t *, void *, size_t);
696 #endif
697 int sysctl_dopool(int *, u_int, char *, size_t *);
698
699 void fill_eproc(struct proc *, struct eproc *);
700 void fill_kproc2(struct proc *, struct kinfo_proc2 *);
701
702 int kern_sysctl(int *, u_int, void *, size_t *, void *, size_t,
703 struct proc *);
704 int hw_sysctl(int *, u_int, void *, size_t *, void *, size_t,
705 struct proc *);
706 #ifdef DEBUG
707 int debug_sysctl(int *, u_int, void *, size_t *, void *, size_t,
708 struct proc *);
709 #endif
710 int vm_sysctl(int *, u_int, void *, size_t *, void *, size_t,
711 struct proc *);
712 int fs_sysctl(int *, u_int, void *, size_t *, void *, size_t,
713 struct proc *);
714 int fs_posix_sysctl(int *, u_int, void *, size_t *, void *, size_t,
715 struct proc *);
716 int net_sysctl(int *, u_int, void *, size_t *, void *, size_t,
717 struct proc *);
718 int cpu_sysctl(int *, u_int, void *, size_t *, void *, size_t,
719 struct proc *);
720 int vfs_sysctl(int *, u_int, void *, size_t *, void *, size_t,
721 struct proc *);
722 int sysctl_sysvipc(int *, u_int, void *, size_t *);
723 int sysctl_wdog(int *, u_int, void *, size_t *, void *, size_t);
724
725 extern int (*cpu_cpuspeed)(int *);
726 extern void (*cpu_setperf)(int);
727
728 int bpf_sysctl(int *, u_int, void *, size_t *, void *, size_t);
729
730 #else
731 #include <sys/cdefs.h>
732
733 __BEGIN_DECLS
734 int sysctl(int *, u_int, void *, size_t *, void *, size_t);
735 __END_DECLS
736 #endif
737 #endif