2
This file is part of the Free Pascal run time library.
3
Copyright (c) 2001 by Marco van de Voort
5
The OS dependant sysctl constants.
7
See the file COPYING.FPC, included in this distribution,
8
for details about the copyright.
10
This program is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
14
**********************************************************************}
20
* Definitions for sysctl call. The sysctl call uses a hierarchical name
21
* for objects that can be examined or modified. The name is expressed as
22
* a sequence of integers. Like a file path name, the meaning of each
23
* component depends on its place in the hierarchy. The top-level and kern
24
* identifiers are defined here, and other identifiers are defined in the
25
* respective subsystem header files.
28
CTL_MAXNAME = 12; { largest number of components supported }
31
* Each subsystem defined by sysctl defines a list of variables
32
* for that subsystem. Each name is either a node with further
33
* levels defined below it, or it is a leaf of some particular
34
* type given below. Each sysctl level defines a set of name/type
35
* pairs to be used by sysctl(1) in manipulating the subsystem.
40
ctl_name : pchar; { subsystem name }
41
ctl_type : cint { type of name }
45
CTLTYPE = $f; { Mask for the type }
46
CTLTYPE_NODE = 1; { name is a node }
47
CTLTYPE_INT = 2; { name describes an integer }
48
CTLTYPE_STRING = 3; { name describes a string }
49
CTLTYPE_QUAD = 4; { name describes a 64-bit number }
50
CTLTYPE_OPAQUE = 5; { name describes a structure }
51
CTLTYPE_STRUCT = CTLTYPE_OPAQUE; { name describes a structure }
52
CTLTYPE_UINT = 6; { name describes an unsigned integer }
53
CTLTYPE_LONG = 7; { name describes a long }
54
CTLTYPE_ULONG = 8; { name describes an unsigned long }
56
CTLFLAG_RD = $80000000; { Allow reads of variable }
57
CTLFLAG_WR = $40000000; { Allow writes to the variable }
58
CTLFLAG_RW = (CTLFLAG_RD OR CTLFLAG_WR);
59
CTLFLAG_NOLOCK = $20000000; { XXX Don't Lock }
60
CTLFLAG_ANYBODY = $10000000; { All users can set this var }
61
CTLFLAG_SECURE = $8000000; { Permit set only if securelevel<=0 }
62
CTLFLAG_PRISON = $4000000; { Prisoned roots can fiddle }
63
CTLFLAG_DYN = $2000000; { Dynamic oid - can be freed }
66
* USE THIS instead of a hardwired number from the categories below
67
* to get dynamically assigned sysctl entries using the linker-set
68
* technology. This is the way nearly all new sysctl variables should
70
* e.g. SYSCTL_INT(_parent, OID_AUTO, name, CTLFLAG_RW, &variable, 0, "");
75
* Top-level identifiers
78
CTL_KERN = 1; { "high kernel": proc, limits }
79
CTL_VM = 2; { virtual memory }
80
CTL_VFS = 3; { file system, mount type is next }
81
CTL_NET = 4; { network, see socket.h }
82
CTL_DEBUG = 5; { debugging parameters }
83
CTL_HW = 6; { generic cpu/io }
84
CTL_MACHDEP = 7; { machine dependent }
85
CTL_USER = 8; { user-level }
86
CTL_P1003_1B = 9; { POSIX 1003.1B }
87
CTL_MAXID = 10; { number of valid top-level ids }
91
* CTL_KERN identifiers
93
KERN_OSTYPE = 1; { string: system version }
94
KERN_OSRELEASE = 2; { string: system release }
95
KERN_OSREV = 3; { int: system revision }
96
KERN_VERSION = 4; { string: compile time info }
97
KERN_MAXVNODES = 5; { int: max vnodes }
98
KERN_MAXPROC = 6; { int: max processes }
99
KERN_MAXFILES = 7; { int: max open files }
100
KERN_ARGMAX = 8; { int: max arguments to exec }
101
KERN_SECURELVL = 9; { int: system security level }
102
KERN_HOSTNAME = 10; { string: hostname }
103
KERN_HOSTID = 11; { int: host identifier }
104
KERN_CLOCKRATE = 12; { struct: struct clockrate }
105
KERN_VNODE = 13; { struct: vnode structures }
106
KERN_PROC = 14; { struct: process entries }
107
KERN_FILE = 15; { struct: file entries }
108
KERN_PROF = 16; { node: kernel profiling info }
109
KERN_POSIX1 = 17; { int: POSIX.1 version }
110
KERN_NGROUPS = 18; { int: # of supplemental group ids }
111
KERN_JOB_CONTROL = 19; { int: is job control available }
112
KERN_SAVED_IDS = 20; { int: saved set-user/group-ID }
113
KERN_BOOTTIME = 21; { struct: time kernel was booted }
114
KERN_NISDOMAINNAME = 22; { string: YP domain name }
115
KERN_UPDATEINTERVAL = 23; { int: update process sleep time }
116
KERN_OSRELDATE = 24; { int: OS release date }
117
KERN_NTP_PLL = 25; { node: NTP PLL control }
118
KERN_BOOTFILE = 26; { string: name of booted kernel }
119
KERN_MAXFILESPERPROC = 27; { int: max open files per proc }
120
KERN_MAXPROCPERUID = 28; { int: max processes per uid }
121
KERN_DUMPDEV = 29; { dev_t: device to dump on }
122
KERN_IPC = 30; { node: anything related to IPC }
123
KERN_DUMMY = 31; { unused }
124
KERN_PS_STRINGS = 32; { int: address of PS_STRINGS }
125
KERN_USRSTACK = 33; { int: address of USRSTACK }
126
KERN_LOGSIGEXIT = 34; { int: do we log sigexit procs? }
127
KERN_MAXID = 35; { number of valid kern ids }
134
KERN_PROC_ALL = 0; { everything }
135
KERN_PROC_PID = 1; { by process id }
136
KERN_PROC_PGRP = 2; { by process group id }
137
KERN_PROC_SESSION = 3; { by session of pid }
138
KERN_PROC_TTY = 4; { by controlling tty }
139
KERN_PROC_UID = 5; { by effective uid }
140
KERN_PROC_RUID = 6; { by real uid }
141
KERN_PROC_ARGS = 7; { get/set arguments/proctitle }
144
* KERN_IPC identifiers
146
KIPC_MAXSOCKBUF = 1; { int: max size of a socket buffer }
147
KIPC_SOCKBUF_WASTE = 2; { int: wastage factor in sockbuf }
148
KIPC_SOMAXCONN = 3; { int: max length of connection q }
149
KIPC_MAX_LINKHDR = 4; { int: max length of link header }
150
KIPC_MAX_PROTOHDR = 5; { int: max length of network header }
151
KIPC_MAX_HDR = 6; { int: max total length of headers }
152
KIPC_MAX_DATALEN = 7; { int: max length of data? }
153
KIPC_MBSTAT = 8; { struct: mbuf usage statistics }
154
KIPC_NMBCLUSTERS = 9; { int: maximum mbuf clusters }
159
HW_MACHINE = 1; { string: machine class }
160
HW_MODEL = 2; { string: specific machine model }
161
HW_NCPU = 3; { int: number of cpus }
162
HW_BYTEORDER = 4; { int: machine byte order }
163
HW_PHYSMEM = 5; { int: total memory }
164
HW_USERMEM = 6; { int: non-kernel memory }
165
HW_PAGESIZE = 7; { int: software page size }
166
HW_DISKNAMES = 8; { strings: disk drive names }
167
HW_DISKSTATS = 9; { struct: diskstats[] }
168
HW_FLOATINGPT = 10; { int: has HW floating point? }
169
HW_MACHINE_ARCH = 11; { string: machine architecture }
170
HW_MAXID = 12; { number of valid hw ids }
174
* CTL_USER definitions
176
USER_CS_PATH = 1; { string: _CS_PATH }
177
USER_BC_BASE_MAX = 2; { int: BC_BASE_MAX }
178
USER_BC_DIM_MAX = 3; { int: BC_DIM_MAX }
179
USER_BC_SCALE_MAX = 4; { int: BC_SCALE_MAX }
180
USER_BC_STRING_MAX = 5; { int: BC_STRING_MAX }
181
USER_COLL_WEIGHTS_MAX = 6; { int: COLL_WEIGHTS_MAX }
182
USER_EXPR_NEST_MAX = 7; { int: EXPR_NEST_MAX }
183
USER_LINE_MAX = 8; { int: LINE_MAX }
184
USER_RE_DUP_MAX = 9; { int: RE_DUP_MAX }
185
USER_POSIX2_VERSION = 10; { int: POSIX2_VERSION }
186
USER_POSIX2_C_BIND = 11; { int: POSIX2_C_BIND }
187
USER_POSIX2_C_DEV = 12; { int: POSIX2_C_DEV }
188
USER_POSIX2_CHAR_TERM = 13; { int: POSIX2_CHAR_TERM }
189
USER_POSIX2_FORT_DEV = 14; { int: POSIX2_FORT_DEV }
190
USER_POSIX2_FORT_RUN = 15; { int: POSIX2_FORT_RUN }
191
USER_POSIX2_LOCALEDEF = 16; { int: POSIX2_LOCALEDEF }
192
USER_POSIX2_SW_DEV = 17; { int: POSIX2_SW_DEV }
193
USER_POSIX2_UPE = 18; { int: POSIX2_UPE }
194
USER_STREAM_MAX = 19; { int: POSIX2_STREAM_MAX }
195
USER_TZNAME_MAX = 20; { int: POSIX2_TZNAME_MAX }
196
USER_MAXID = 21; { number of valid user ids }
199
CTL_P1003_1B_ASYNCHRONOUS_IO = 1 ; { boolean }
200
CTL_P1003_1B_MAPPED_FILES = 2 ; { boolean }
201
CTL_P1003_1B_MEMLOCK = 3 ; { boolean }
202
CTL_P1003_1B_MEMLOCK_RANGE = 4 ; { boolean }
203
CTL_P1003_1B_MEMORY_PROTECTION = 5 ; { boolean }
204
CTL_P1003_1B_MESSAGE_PASSING = 6 ; { boolean }
205
CTL_P1003_1B_PRIORITIZED_IO = 7 ; { boolean }
206
CTL_P1003_1B_PRIORITY_SCHEDULING = 8 ; { boolean }
207
CTL_P1003_1B_REALTIME_SIGNALS = 9 ; { boolean }
208
CTL_P1003_1B_SEMAPHORES = 10; { boolean }
209
CTL_P1003_1B_FSYNC = 11; { boolean }
210
CTL_P1003_1B_SHARED_MEMORY_OBJECTS = 12; { boolean }
211
CTL_P1003_1B_SYNCHRONIZED_IO = 13; { boolean }
212
CTL_P1003_1B_TIMERS = 14; { boolean }
213
CTL_P1003_1B_AIO_LISTIO_MAX = 15; { int }
214
CTL_P1003_1B_AIO_MAX = 16; { int }
215
CTL_P1003_1B_AIO_PRIO_DELTA_MAX = 17; { int }
216
CTL_P1003_1B_DELAYTIMER_MAX = 18; { int }
217
CTL_P1003_1B_MQ_OPEN_MAX = 19; { int }
218
CTL_P1003_1B_PAGESIZE = 20; { int }
219
CTL_P1003_1B_RTSIG_MAX = 21; { int }
220
CTL_P1003_1B_SEM_NSEMS_MAX = 22; { int }
221
CTL_P1003_1B_SEM_VALUE_MAX = 23; { int }
222
CTL_P1003_1B_SIGQUEUE_MAX = 24; { int }
223
CTL_P1003_1B_TIMER_MAX = 25; { int }
225
CTL_P1003_1B_MAXID = 26;
227
{ LongestStringInCtlNames = 21;}
232
CTL_NAMES : Array[0..9] OF CtlNameRec = (
233
( Name: ''; CtlType: 0 ),
234
( Name: 'kern'; CtlType : CTLTYPE_NODE ),
235
( Name: 'vm'; CtlType : CTLTYPE_NODE ),
236
( Name: 'vfs'; CtlType : CTLTYPE_NODE ),
237
( Name: 'net'; CtlType : CTLTYPE_NODE ),
238
( Name: 'debug'; CtlType : CTLTYPE_NODE ),
239
( Name: 'hw'; CtlType : CTLTYPE_NODE ),
240
( Name: 'machdep'; CtlType : CTLTYPE_NODE ),
241
( Name: 'user'; CtlType : CTLTYPE_NODE ),
242
( Name: 'p1003_1b'; CtlType : CTLTYPE_NODE ));
244
CTL_KERN_NAME : Array[0..34] OF CtlNameRec = (
245
( Name: ''; CtlType: 0 ),
246
( Name: 'ostype'; CtlType : CTLTYPE_STRING ),
247
( Name: 'osrelease'; CtlType : CTLTYPE_STRING ),
248
( Name: 'osrevision'; CtlType : CTLTYPE_INT ),
249
( Name: 'version'; CtlType : CTLTYPE_STRING ),
250
( Name: 'maxvnodes'; CtlType : CTLTYPE_INT ),
251
( Name: 'maxproc'; CtlType : CTLTYPE_INT ),
252
( Name: 'maxfiles'; CtlType : CTLTYPE_INT ),
253
( Name: 'argmax'; CtlType : CTLTYPE_INT ),
254
( Name: 'securelevel'; CtlType : CTLTYPE_INT ),
255
( Name: 'hostname'; CtlType : CTLTYPE_STRING ),
256
( Name: 'hostid'; CtlType : CTLTYPE_UINT ),
257
( Name: 'clockrate'; CtlType : CTLTYPE_STRUCT ),
258
( Name: 'vnode'; CtlType : CTLTYPE_STRUCT ),
259
( Name: 'proc'; CtlType : CTLTYPE_STRUCT ),
260
( Name: 'file'; CtlType : CTLTYPE_STRUCT ),
261
( Name: 'profiling'; CtlType : CTLTYPE_NODE ),
262
( Name: 'posix1version'; CtlType : CTLTYPE_INT ),
263
( Name: 'ngroups'; CtlType : CTLTYPE_INT ),
264
( Name: 'job_control'; CtlType : CTLTYPE_INT ),
265
( Name: 'saved_ids'; CtlType : CTLTYPE_INT ),
266
( Name: 'boottime'; CtlType : CTLTYPE_STRUCT ),
267
( Name: 'nisdomainname'; CtlType : CTLTYPE_STRING ),
268
( Name: 'update'; CtlType : CTLTYPE_INT ),
269
( Name: 'osreldate'; CtlType : CTLTYPE_INT ),
270
( Name: 'ntp_pll'; CtlType : CTLTYPE_NODE ),
271
( Name: 'bootfile'; CtlType : CTLTYPE_STRING ),
272
( Name: 'maxfilesperproc'; CtlType : CTLTYPE_INT ),
273
( Name: 'maxprocperuid'; CtlType : CTLTYPE_INT ),
274
( Name: 'dumpdev'; CtlType : CTLTYPE_STRUCT ), { we lie; don't print as int }
275
( Name: 'ipc'; CtlType : CTLTYPE_NODE ),
276
( Name: 'dummy'; CtlType : CTLTYPE_INT ),
277
( Name: 'ps_strings'; CtlType : CTLTYPE_INT ),
278
( Name: 'usrstack'; CtlType : CTLTYPE_INT ),
279
( Name: 'logsigexit'; CtlType : CTLTYPE_INT ));
282
* CTL_VFS identifiers
284
CTL_VFS_NAMES : array[0..0] of CTLNameRec = (
285
( Name: 'vfsconf'; CtlType : CTLTYPE_STRUCT ));
288
CTL_HW_NAMES : array[0..10] of CTLNameRec = (
289
( Name: ''; CtlType: 0 ),
290
( Name: 'machine'; CtlType : CTLTYPE_STRING ),
291
( Name: 'model'; CtlType : CTLTYPE_STRING ),
292
( Name: 'ncpu'; CtlType : CTLTYPE_INT ),
293
( Name: 'byteorder'; CtlType : CTLTYPE_INT ),
294
( Name: 'physmem'; CtlType : CTLTYPE_UINT ),
295
( Name: 'usermem'; CtlType : CTLTYPE_UINT ),
296
( Name: 'pagesize'; CtlType : CTLTYPE_INT ),
297
( Name: 'disknames'; CtlType : CTLTYPE_STRUCT ),
298
( Name: 'diskstats'; CtlType : CTLTYPE_STRUCT ),
299
( Name: 'floatingpoint'; CtlType : CTLTYPE_INT ));
302
CTL_USER_NAMES : array[0..20] of CTLNameRec = (
303
( Name :''; CtlType: 0 ),
304
( Name: 'cs_path'; CtlType : CTLTYPE_STRING ),
305
( Name: 'bc_base_max'; CtlType : CTLTYPE_INT ),
306
( Name: 'bc_dim_max'; CtlType : CTLTYPE_INT ),
307
( Name: 'bc_scale_max'; CtlType : CTLTYPE_INT ),
308
( Name: 'bc_string_max'; CtlType : CTLTYPE_INT ),
309
( Name: 'coll_weights_max'; CtlType : CTLTYPE_INT ),
310
( Name: 'expr_nest_max'; CtlType : CTLTYPE_INT ),
311
( Name: 'line_max'; CtlType : CTLTYPE_INT ),
312
( Name: 're_dup_max'; CtlType : CTLTYPE_INT ),
313
( Name: 'posix2_version'; CtlType : CTLTYPE_INT ),
314
( Name: 'posix2_c_bind'; CtlType : CTLTYPE_INT ),
315
( Name: 'posix2_c_dev'; CtlType : CTLTYPE_INT ),
316
( Name: 'posix2_char_term'; CtlType : CTLTYPE_INT ),
317
( Name: 'posix2_fort_dev'; CtlType : CTLTYPE_INT ),
318
( Name: 'posix2_fort_run'; CtlType : CTLTYPE_INT ),
319
( Name: 'posix2_localedef'; CtlType : CTLTYPE_INT ),
320
( Name: 'posix2_sw_dev'; CtlType : CTLTYPE_INT ),
321
( Name: 'posix2_upe'; CtlType : CTLTYPE_INT ),
322
( Name: 'stream_max'; CtlType : CTLTYPE_INT ),
323
( Name: 'tzname_max'; CtlType : CTLTYPE_INT ));
325
CTL_P1003_1B_NAMES : array[0..25] of CTLNameRec = (
326
( Name: ''; CtlType: 0 ),
327
( Name: 'asynchronous_io'; CtlType : CTLTYPE_INT ),
328
( Name: 'mapped_files'; CtlType : CTLTYPE_INT ),
329
( Name: 'memlock'; CtlType : CTLTYPE_INT ),
330
( Name: 'memlock_range'; CtlType : CTLTYPE_INT ),
331
( Name: 'memory_protection'; CtlType : CTLTYPE_INT ),
332
( Name: 'message_passing'; CtlType : CTLTYPE_INT ),
333
( Name: 'prioritized_io'; CtlType : CTLTYPE_INT ),
334
( Name: 'priority_scheduling'; CtlType : CTLTYPE_INT ),
335
( Name: 'realtime_signals'; CtlType : CTLTYPE_INT ),
336
( Name: 'semaphores'; CtlType : CTLTYPE_INT ),
337
( Name: 'fsync'; CtlType : CTLTYPE_INT ),
338
( Name: 'shared_memory_objects'; CtlType : CTLTYPE_INT ),
339
( Name: 'synchronized_io'; CtlType : CTLTYPE_INT ),
340
( Name: 'timers'; CtlType : CTLTYPE_INT ),
341
( Name: 'aio_listio_max'; CtlType : CTLTYPE_INT ),
342
( Name: 'aio_max'; CtlType : CTLTYPE_INT ),
343
( Name: 'aio_prio_delta_max'; CtlType : CTLTYPE_INT ),
344
( Name: 'delaytimer_max'; CtlType : CTLTYPE_INT ),
345
( Name: 'mq_open_max'; CtlType : CTLTYPE_INT ),
346
( Name: 'pagesize'; CtlType : CTLTYPE_INT ),
347
( Name: 'rtsig_max'; CtlType : CTLTYPE_INT ),
348
( Name: 'nsems_max'; CtlType : CTLTYPE_INT ),
349
( Name: 'sem_value_max'; CtlType : CTLTYPE_INT ),
350
( Name: 'sigqueue_max'; CtlType : CTLTYPE_INT ),
351
( Name: 'timer_max'; CtlType : CTLTYPE_INT ));
358
SOCK_STREAM = 1; { stream socket }
359
SOCK_DGRAM = 2; { datagram socket }
360
SOCK_RAW = 3; { raw-protocol interface }
361
SOCK_RDM = 4; { reliably-delivered message }
362
SOCK_SEQPACKET = 5; { sequenced packet stream }
367
AF_UNSPEC = 0; { unspecified }
368
AF_LOCAL = 1; { local to host (Name:pipes;CtlType: portals) }
369
AF_UNIX = AF_LOCAL; { backward compatibility }
370
AF_INET = 2; { internetwork: UDP, TCP, etc. }
371
AF_IMPLINK = 3; { arpanet imp addresses }
372
AF_PUP = 4; { pup protocols: e.g. BSP }
373
AF_CHAOS = 5; { mit CHAOS protocols }
374
AF_NS = 6; { XEROX NS protocols }
375
AF_ISO = 7; { ISO protocols }
377
AF_ECMA = 8; { European computer manufacturers }
378
AF_DATAKIT = 9; { datakit protocols }
379
AF_CCITT = 10; { CCITT protocols, X.25 etc }
380
AF_SNA = 11; { IBM SNA }
381
AF_DECnet = 12; { DECnet }
382
AF_DLI = 13; { DEC Direct data link interface }
384
AF_HYLINK = 15; { NSC Hyperchannel }
385
AF_APPLETALK = 16; { Apple Talk }
386
AF_ROUTE = 17; { Internal Routing Protocol }
387
AF_LINK = 18; { Link layer interface }
388
pseudo_AF_XTP = 19; { eXpress Transfer Protocol (Name:no AF) }
389
AF_COIP = 20; { connection-oriented IP, aka ST II }
390
AF_CNT = 21; { Computer Network Technology }
391
pseudo_AF_RTIP = 22; { Help Identify RTIP packets }
392
AF_IPX = 23; { Novell Internet Protocol }
393
AF_SIP = 24; { Simple Internet Protocol }
394
pseudo_AF_PIP = 25; { Help Identify PIP packets }
395
AF_ISDN = 26; { Integrated Services Digital Network}
396
AF_E164 = AF_ISDN; { CCITT E.164 recommendation }
397
pseudo_AF_KEY = 27; { Internal key-management function }
398
AF_INET6 = 28; { IPv6 }
399
AF_NATM = 29; { native ATM access }
401
pseudo_AF_HDRCMPLT = 31; { Used by BPF to not rewrite headers
402
* in interface output routine
404
AF_NETGRAPH = 32; { Netgraph sockets }
409
* Protocol families, same as address families for now.
413
* Definitions for network related sysctl, CTL_NET.
415
* Second level is protocol family.
416
* Third level is protocol number.
418
* Further levels are defined by the individual families below.
422
CTL_NET_NAMES : Array[0..32] OF CtlNameRec = (
423
(Name: '';CtlType: 0 ),
424
(Name: 'unix';CtlType: CTLTYPE_NODE ),
425
(Name: 'inet';CtlType: CTLTYPE_NODE ),
426
(Name: 'implink';CtlType: CTLTYPE_NODE ),
427
(Name: 'pup';CtlType: CTLTYPE_NODE ),
428
(Name: 'chaos';CtlType: CTLTYPE_NODE ),
429
(Name: 'xerox_ns';CtlType: CTLTYPE_NODE ),
430
(Name: 'iso';CtlType: CTLTYPE_NODE ),
431
(Name: 'emca';CtlType: CTLTYPE_NODE ),
432
(Name: 'datakit';CtlType: CTLTYPE_NODE ),
433
(Name: 'ccitt';CtlType: CTLTYPE_NODE ),
434
(Name: 'ibm_sna';CtlType: CTLTYPE_NODE ),
435
(Name: 'decnet';CtlType: CTLTYPE_NODE ),
436
(Name: 'dec_dli';CtlType: CTLTYPE_NODE ),
437
(Name: 'lat';CtlType: CTLTYPE_NODE ),
438
(Name: 'hylink';CtlType: CTLTYPE_NODE ),
439
(Name: 'appletalk';CtlType: CTLTYPE_NODE ),
440
(Name: 'route';CtlType: CTLTYPE_NODE ),
441
(Name: 'link_layer';CtlType: CTLTYPE_NODE ),
442
(Name: 'xtp';CtlType: CTLTYPE_NODE ),
443
(Name: 'coip';CtlType: CTLTYPE_NODE ),
444
(Name: 'cnt';CtlType: CTLTYPE_NODE ),
445
(Name: 'rtip';CtlType: CTLTYPE_NODE ),
446
(Name: 'ipx';CtlType: CTLTYPE_NODE ),
447
(Name: 'sip';CtlType: CTLTYPE_NODE ),
448
(Name: 'pip';CtlType: CTLTYPE_NODE ),
449
(Name: 'isdn';CtlType: CTLTYPE_NODE ),
450
(Name: 'key';CtlType: CTLTYPE_NODE ),
451
(Name: 'inet6';CtlType: CTLTYPE_NODE ),
452
(Name: 'natm';CtlType: CTLTYPE_NODE ),
453
(Name: 'atm';CtlType: CTLTYPE_NODE ),
454
(Name: 'hdrcomplete';CtlType: CTLTYPE_NODE ),
455
(Name: 'netgraph';CtlType: CTLTYPE_NODE ));
458
* PF_ROUTE - Routing table
460
* Three additional levels are defined:
461
* Fourth: address family, 0 is wildcard
462
* Fifth: type of info, defined below
463
* Sixth: flag(Name:s) to mask with for NET_RT_FLAGS
465
NET_RT_DUMP = 1; { dump; may limit to a.f. }
466
NET_RT_FLAGS = 2; { by flags, e.g. RESOLVING }
467
NET_RT_IFLIST = 3; { survey interface list }
470
CTL_NET_RT_NAMES : Array[0..3] OF CtlNameRec = (
471
(Name: '';CtlType: 0 ),
472
(Name: 'dump';CtlType: CTLTYPE_STRUCT ),
473
(Name: 'flags';CtlType: CTLTYPE_STRUCT ),
474
(Name: 'iflist';CtlType: CTLTYPE_STRUCT ));
477
* Possible states of profiling.
486
* Sysctl definitions for extracting profiling information from the kernel.
488
GPROF_STATE = 0; { int: profiling enabling variable }
489
GPROF_COUNT = 1; { struct: profile tick count buffer }
490
GPROF_FROMS = 2; { struct: from location hash bucket }
491
GPROF_TOS = 3; { struct: destination/count structure }
492
GPROF_GMONPARAM = 4; { struct: profiling parameters (Name:see above) }
497
VM_METER = 1; { struct vmmeter }
498
VM_LOADAVG = 2; { struct loadavg }
499
VM_V_FREE_MIN = 3; { cnt.v_free_min }
500
VM_V_FREE_TARGET = 4; { cnt.v_free_target }
501
VM_V_FREE_RESERVED = 5; { cnt.v_free_reserved }
502
VM_V_INACTIVE_TARGET = 6; { cnt.v_inactive_target }
503
VM_V_CACHE_MIN = 7; { cnt.v_cache_max }
504
VM_V_CACHE_MAX = 8; { cnt.v_cache_min }
505
VM_V_PAGEOUT_FREE_MIN = 9; { cnt.v_pageout_free_min }
506
VM_PAGEOUT_ALGORITHM = 10; { pageout algorithm }
507
VM_SWAPPING_ENABLED = 11; { swapping enabled }
508
VM_MAXID = 12; { number of valid vm ids }
510
CTL_VM_NAMES : Array[0..11] OF CtlNameRec = (
511
(Name: '';CtlType: 0 ),
512
(Name: 'vmmeter';CtlType: CTLTYPE_STRUCT ),
513
(Name: 'loadavg';CtlType: CTLTYPE_STRUCT ),
514
(Name: 'v_free_min';CtlType: CTLTYPE_INT ),
515
(Name: 'v_free_target';CtlType: CTLTYPE_INT ),
516
(Name: 'v_free_reserved';CtlType: CTLTYPE_INT ),
517
(Name: 'v_inactive_target';CtlType: CTLTYPE_INT ),
518
(Name: 'v_cache_min';CtlType: CTLTYPE_INT ),
519
(Name: 'v_cache_max';CtlType: CTLTYPE_INT ),
520
(Name: 'v_pageout_free_min';CtlType: CTLTYPE_INT),
521
(Name: 'pageout_algorithm';CtlType: CTLTYPE_INT),
522
(Name: 'swapping_enabled';CtlType: CTLTYPE_INT));
525
* Protocols (Name:RFC 1700)
527
IPPROTO_IP = 0; { dummy for IP }
528
IPPROTO_HOPOPTS = 0; { IP6 hop-by-hop options }
529
IPPROTO_ICMP = 1; { control message protocol }
530
IPPROTO_IGMP = 2; { group mgmt protocol }
531
IPPROTO_GGP = 3; { gateway^2 (Name:deprecated) }
532
IPPROTO_IPV4 = 4; { IPv4 encapsulation }
533
IPPROTO_IPIP = IPPROTO_IPV4; { for compatibility }
534
IPPROTO_TCP = 6; { tcp }
535
IPPROTO_ST = 7; { Stream protocol II }
536
IPPROTO_EGP = 8; { exterior gateway protocol }
537
IPPROTO_PIGP = 9; { private interior gateway }
538
IPPROTO_RCCMON = 10; { BBN RCC Monitoring }
539
IPPROTO_NVPII = 11; { network voice protocol}
540
IPPROTO_PUP = 12; { pup }
541
IPPROTO_ARGUS = 13; { Argus }
542
IPPROTO_EMCON = 14; { EMCON }
543
IPPROTO_XNET = 15; { Cross Net Debugger }
544
IPPROTO_CHAOS = 16; { Chaos}
545
IPPROTO_UDP = 17; { user datagram protocol }
546
IPPROTO_MUX = 18; { Multiplexing }
547
IPPROTO_MEAS = 19; { DCN Measurement Subsystems }
548
IPPROTO_HMP = 20; { Host Monitoring }
549
IPPROTO_PRM = 21; { Packet Radio Measurement }
550
IPPROTO_IDP = 22; { xns idp }
551
IPPROTO_TRUNK1 = 23; { Trunk-1 }
552
IPPROTO_TRUNK2 = 24; { Trunk-2 }
553
IPPROTO_LEAF1 = 25; { Leaf-1 }
554
IPPROTO_LEAF2 = 26; { Leaf-2 }
555
IPPROTO_RDP = 27; { Reliable Data }
556
IPPROTO_IRTP = 28; { Reliable Transaction }
557
IPPROTO_TP = 29; { tp-4 w/ class negotiation }
558
IPPROTO_BLT = 30; { Bulk Data Transfer }
559
IPPROTO_NSP = 31; { Network Services }
560
IPPROTO_INP = 32; { Merit Internodal }
561
IPPROTO_SEP = 33; { Sequential Exchange }
562
IPPROTO_3PC = 34; { Third Party Connect }
563
IPPROTO_IDPR = 35; { InterDomain Policy Routing }
564
IPPROTO_XTP = 36; { XTP }
565
IPPROTO_DDP = 37; { Datagram Delivery }
566
IPPROTO_CMTP = 38; { Control Message Transport }
567
IPPROTO_TPXX = 39; { TP++ Transport }
568
IPPROTO_IL = 40; { IL transport protocol }
569
IPPROTO_IPV6 = 41; { IP6 header }
570
IPPROTO_SDRP = 42; { Source Demand Routing }
571
IPPROTO_ROUTING = 43; { IP6 routing header }
572
IPPROTO_FRAGMENT = 44; { IP6 fragmentation header }
573
IPPROTO_IDRP = 45; { InterDomain Routing}
574
IPPROTO_RSVP = 46; { resource reservation }
575
IPPROTO_GRE = 47; { General Routing Encap. }
576
IPPROTO_MHRP = 48; { Mobile Host Routing }
577
IPPROTO_BHA = 49; { BHA }
578
IPPROTO_ESP = 50; { IP6 Encap Sec. Payload }
579
IPPROTO_AH = 51; { IP6 Auth Header }
580
IPPROTO_INLSP = 52; { Integ. Net Layer Security }
581
IPPROTO_SWIPE = 53; { IP with encryption }
582
IPPROTO_NHRP = 54; { Next Hop Resolution }
583
{ 55-57: Unassigned }
584
IPPROTO_ICMPV6 = 58; { ICMP6 }
585
IPPROTO_NONE = 59; { IP6 no next header }
586
IPPROTO_DSTOPTS = 60; { IP6 destination option }
587
IPPROTO_AHIP = 61; { any host internal protocol }
588
IPPROTO_CFTP = 62; { CFTP }
589
IPPROTO_HELLO = 63; { 'hello' routing protocol }
590
IPPROTO_SATEXPAK = 64; { SATNET/Backroom EXPAK }
591
IPPROTO_KRYPTOLAN = 65; { Kryptolan }
592
IPPROTO_RVD = 66; { Remote Virtual Disk }
593
IPPROTO_IPPC = 67; { Pluribus Packet Core }
594
IPPROTO_ADFS = 68; { Any distributed FS }
595
IPPROTO_SATMON = 69; { Satnet Monitoring }
596
IPPROTO_VISA = 70; { VISA Protocol }
597
IPPROTO_IPCV = 71; { Packet Core Utility }
598
IPPROTO_CPNX = 72; { Comp. Prot. Net. Executive }
599
IPPROTO_CPHB = 73; { Comp. Prot. HeartBeat }
600
IPPROTO_WSN = 74; { Wang Span Network }
601
IPPROTO_PVP = 75; { Packet Video Protocol }
602
IPPROTO_BRSATMON = 76; { BackRoom SATNET Monitoring }
603
IPPROTO_ND = 77; { Sun net disk proto (Name:temp.) }
604
IPPROTO_WBMON = 78; { WIDEBAND Monitoring }
605
IPPROTO_WBEXPAK = 79; { WIDEBAND EXPAK }
606
IPPROTO_EON = 80; { ISO cnlp }
607
IPPROTO_VMTP = 81; { VMTP }
608
IPPROTO_SVMTP = 82; { Secure VMTP }
609
IPPROTO_VINES = 83; { Banyon VINES }
610
IPPROTO_TTP = 84; { TTP }
611
IPPROTO_IGP = 85; { NSFNET-IGP }
612
IPPROTO_DGP = 86; { dissimilar gateway prot. }
613
IPPROTO_TCF = 87; { TCF }
614
IPPROTO_IGRP = 88; { Cisco/GXS IGRP }
615
IPPROTO_OSPFIGP = 89; { OSPFIGP }
616
IPPROTO_SRPC = 90; { Strite RPC protocol }
617
IPPROTO_LARP = 91; { Locus Address Resoloution }
618
IPPROTO_MTP = 92; { Multicast Transport }
619
IPPROTO_AX25 = 93; { AX.25 Frames }
620
IPPROTO_IPEIP = 94; { IP encapsulated in IP }
621
IPPROTO_MICP = 95; { Mobile Int.ing control }
622
IPPROTO_SCCSP = 96; { Semaphore Comm. security }
623
IPPROTO_ETHERIP = 97; { Ethernet IP encapsulation }
624
IPPROTO_ENCAP = 98; { encapsulation header }
625
IPPROTO_APES = 99; { any private encr. scheme }
626
IPPROTO_GMTP = 100; { GMTP}
627
IPPROTO_IPCOMP = 108; { payload compression (Name:IPComp) }
628
{ 101-254: Partly Unassigned }
629
IPPROTO_PIM = 103; { Protocol Independent Mcast }
630
IPPROTO_PGM = 113; { PGM }
632
{ BSD Private, local use, namespace incursion }
633
IPPROTO_DIVERT = 254; { divert pseudo-protocol }
634
IPPROTO_RAW = 255; { raw IP packet }
637
{ last return value of *_input(Name:);CtlType: meaning 'all job for this pkt is done'. }
642
* Options for use with [gs]etsockopt at the IP level.
643
* First word of comment is data type; bool is stored in int.
645
IP_OPTIONS = 1; { buf/ip_opts; set/get IP options }
646
IP_HDRINCL = 2; { int; header is included with data }
647
IP_TOS = 3; { int; IP type of service and preced. }
648
IP_TTL = 4; { int; IP time to live }
649
IP_RECVOPTS = 5; { bool; receive all IP opts w/dgram }
650
IP_RECVRETOPTS = 6; { bool; receive IP opts for response }
651
IP_RECVDSTADDR = 7; { bool; receive IP dst addr w/dgram }
652
IP_RETOPTS = 8; { ip_opts; set/get IP options }
653
IP_MULTICAST_IF = 9; { u_char; set/get IP multicast i/f }
654
IP_MULTICAST_TTL = 10; { u_char; set/get IP multicast ttl }
655
IP_MULTICAST_LOOP = 11; { u_char; set/get IP multicast loopback }
656
IP_ADD_MEMBERSHIP = 12; { ip_mreq; add an IP group membership }
657
IP_DROP_MEMBERSHIP = 13; { ip_mreq; drop an IP group membership }
658
IP_MULTICAST_VIF = 14; { set/get IP mcast virt. iface }
659
IP_RSVP_ON = 15; { enable RSVP in kernel }
660
IP_RSVP_OFF = 16; { disable RSVP in kernel }
661
IP_RSVP_VIF_ON = 17; { set RSVP per-vif socket }
662
IP_RSVP_VIF_OFF = 18; { unset RSVP per-vif socket }
663
IP_PORTRANGE = 19; { int; range to choose for unspec port }
664
IP_RECVIF = 20; { bool; receive reception if w/dgram }
666
IP_IPSEC_POLICY = 21; { int; set/get security policy }
667
IP_FAITH = 22; { bool; accept FAITH'ed connections }
669
IP_FW_ADD = 50; { add a firewall rule to chain }
670
IP_FW_DEL = 51; { delete a firewall rule from chain }
671
IP_FW_FLUSH = 52; { flush firewall rule chain }
672
IP_FW_ZERO = 53; { clear single/all firewall counter(Name:s) }
673
IP_FW_GET = 54; { get entire firewall rule chain }
674
IP_FW_RESETLOG = 55; { reset logging counters }
676
IP_DUMMYNET_CONFIGURE = 60; { add/configure a dummynet pipe }
677
IP_DUMMYNET_DEL = 61; { delete a dummynet pipe from chain }
678
IP_DUMMYNET_FLUSH = 62; { flush dummynet }
679
IP_DUMMYNET_GET = 64; { get entire dummynet pipes }
682
* Defaults and limits for options
684
IP_DEFAULT_MULTICAST_TTL = 1; { normally limit m'casts to 1 hop }
685
IP_DEFAULT_MULTICAST_LOOP = 1; { normally hear sends if a member }
686
IP_MAX_MEMBERSHIPS = 20; { per socket }
689
* Argument for IP_PORTRANGE:
690
* - which range to search when port is unspecified at bind(Name:) or connect()
692
IP_PORTRANGE_DEFAULT = 0; { default range }
693
IP_PORTRANGE_HIGH = 1; { 'high' - request firewall bypass }
694
IP_PORTRANGE_LOW = 2; { 'low' - vouchsafe security }
697
* Definitions for inet sysctl operations.
699
* Third level is protocol number.
700
* Fourth level is desired variable within that protocol.
702
IPPROTO_MAXID = (IPPROTO_AH + 1); { don't list to IPPROTO_MAX }
704
CTL_IPPROTO_NAMES : Array[0..51] OF CtlNameRec = (
705
(Name: 'ip';CtlType: CTLTYPE_NODE ),
706
(Name: 'icmp';CtlType: CTLTYPE_NODE ),
707
(Name: 'igmp';CtlType: CTLTYPE_NODE ),
708
(Name: 'ggp';CtlType: CTLTYPE_NODE ),
709
(Name: '';CtlType: 0 ),
710
(Name: '';CtlType: 0 ),
711
(Name: 'tcp';CtlType: CTLTYPE_NODE ),
712
(Name: '';CtlType: 0 ),
713
(Name: 'egp';CtlType: CTLTYPE_NODE ),
714
(Name: '';CtlType: 0 ),
715
(Name: '';CtlType: 0 ),
716
(Name: '';CtlType: 0 ),
717
(Name: 'pup';CtlType: CTLTYPE_NODE ),
718
(Name: '';CtlType: 0 ),
719
(Name: '';CtlType: 0 ),
720
(Name: '';CtlType: 0 ),
721
(Name: '';CtlType: 0 ),
722
(Name: 'udp';CtlType: CTLTYPE_NODE ),
723
(Name: '';CtlType: 0 ),
724
(Name: '';CtlType: 0 ),
725
(Name: '';CtlType: 0 ),
726
(Name: '';CtlType: 0 ),
727
(Name: 'idp';CtlType: CTLTYPE_NODE ),
728
(Name: '';CtlType: 0 ),
729
(Name: '';CtlType: 0 ),
730
(Name: '';CtlType: 0 ),
731
(Name: '';CtlType: 0 ),
732
(Name: '';CtlType: 0 ),
733
(Name: '';CtlType: 0 ),
734
(Name: '';CtlType: 0 ),
735
(Name: '';CtlType: 0 ),
736
(Name: '';CtlType: 0 ),
737
(Name: '';CtlType: 0 ),
738
(Name: '';CtlType: 0 ),
739
(Name: '';CtlType: 0 ),
740
(Name: '';CtlType: 0 ),
741
(Name: '';CtlType: 0 ),
742
(Name: '';CtlType: 0 ),
743
(Name: '';CtlType: 0 ),
744
(Name: '';CtlType: 0 ),
745
(Name: '';CtlType: 0 ),
746
(Name: '';CtlType: 0 ),
747
(Name: '';CtlType: 0 ),
748
(Name: '';CtlType: 0 ),
749
(Name: '';CtlType: 0 ),
750
(Name: '';CtlType: 0 ),
751
(Name: '';CtlType: 0 ),
752
(Name: '';CtlType: 0 ),
753
(Name: '';CtlType: 0 ),
754
(Name: '';CtlType: 0 ),
755
(Name: '';CtlType: 0 ),
756
(Name: 'ipsec';CtlType: CTLTYPE_NODE ));
759
* Names for IP sysctl objects
761
IPCTL_FORWARDING = 1; { act as router }
762
IPCTL_SENDREDIRECTS = 2; { may send redirects when forwarding }
763
IPCTL_DEFTTL = 3; { default TTL }
764
{$ifdef notyettunable}
765
IPCTL_DEFMTU = 4; { default MTU }
767
IPCTL_RTEXPIRE = 5; { cloned route expiration time }
768
IPCTL_RTMINEXPIRE = 6; { min value for expiration time }
769
IPCTL_RTMAXCACHE = 7; { trigger level for dynamic expire }
770
IPCTL_SOURCEROUTE = 8; { may perform source routes }
771
IPCTL_DIRECTEDBROADCAST = 9; { may re-broadcast received packets }
772
IPCTL_INTRQMAXLEN = 10; { max length of netisr queue }
773
IPCTL_INTRQDROPS = 11; { number of netisr q drops }
774
IPCTL_STATS = 12; { ipstat structure }
775
IPCTL_ACCEPTSOURCEROUTE = 13; { may accept source routed packets }
776
IPCTL_FASTFORWARDING = 14; { use fast IP forwarding code }
777
IPCTL_KEEPFAITH = 15; { FAITH IPv4->IPv6 translater ctl }
778
IPCTL_GIF_TTL = 16; { default TTL for gif encap packet }
781
IPCTL_NAMES : Array[0..14] OF CtlNameRec = (
782
(Name: '';CtlType: 0 ),
783
(Name: 'forwarding';CtlType: CTLTYPE_INT ),
784
(Name: 'redirect';CtlType: CTLTYPE_INT ),
785
(Name: 'ttl';CtlType: CTLTYPE_INT ),
786
(Name: 'mtu';CtlType: CTLTYPE_INT ),
787
(Name: 'rtexpire';CtlType: CTLTYPE_INT ),
788
(Name: 'rtminexpire';CtlType: CTLTYPE_INT ),
789
(Name: 'rtmaxcache';CtlType: CTLTYPE_INT ),
790
(Name: 'sourceroute';CtlType: CTLTYPE_INT ),
791
(Name: 'directed-broadcast';CtlType: CTLTYPE_INT ),
792
(Name: 'intr-queue-maxlen';CtlType: CTLTYPE_INT ),
793
(Name: 'intr-queue-drops';CtlType: CTLTYPE_INT ),
794
(Name: 'stats';CtlType: CTLTYPE_STRUCT ),
795
(Name: 'accept_sourceroute';CtlType: CTLTYPE_INT ),
796
(Name: 'fastforwarding';CtlType: CTLTYPE_INT ));
799
* Names for ICMP sysctl objects
801
ICMPCTL_MASKREPL = 1; { allow replies to netmask requests }
802
ICMPCTL_STATS = 2; { statistics (Name:read-only) }
806
ICMPCTL_NAMES : Array[0..3] OF CtlNameRec = (
807
(Name: '';CtlType: 0 ),
808
(Name: 'maskrepl';CtlType: CTLTYPE_INT ),
809
(Name: 'stats';CtlType: CTLTYPE_STRUCT ),
810
(Name: 'icmplim';CtlType: CTLTYPE_INT ));
813
* Names for ICMP sysctl objects
816
ICMPV6CTL_REDIRACCEPT = 2; { accept/process redirects }
817
ICMPV6CTL_REDIRTIMEOUT = 3; { redirect cache time }
818
{$ifdef obsolete} {obsoleted}
819
ICMPV6CTL_ERRRATELIMIT = 5; { ICMPv6 error rate limitation }
821
ICMPV6CTL_ND6_PRUNE = 6;
822
ICMPV6CTL_ND6_DELAY = 8;
823
ICMPV6CTL_ND6_UMAXTRIES = 9;
824
ICMPV6CTL_ND6_MMAXTRIES = 10;
825
ICMPV6CTL_ND6_USELOOPBACK = 11;
826
//define ICMPV6CTL_ND6_PROXYALL = 12; obsoleted, do not reuse here
827
ICMPV6CTL_NODEINFO = 13;
828
ICMPV6CTL_ERRPPSLIMIT = 14; { ICMPv6 error pps limitation }
829
ICMPV6CTL_ND6_MAXNUDHINT= 15;
830
ICMPV6CTL_MTUDISC_HIWAT = 16;
831
ICMPV6CTL_MTUDISC_LOWAT = 17;
832
ICMPV6CTL_ND6_DEBUG = 18;
833
ICMPV6CTL_ND6_DRLIST = 19;
834
ICMPV6CTL_ND6_PRLIST = 20;
835
ICMPV6CTL_MAXID = 21;
837
ICMPV6CTL_NAMES : Array[0..20] OF CtlNameRec = (
838
(Name: '';CtlType: 0 ),
839
(Name: '';CtlType: 0 ),
840
(Name: 'rediraccept';CtlType: CTLTYPE_INT ),
841
(Name: 'redirtimeout';CtlType: CTLTYPE_INT ),
842
(Name: '';CtlType: 0 ),
843
(Name: '';CtlType: 0 ),
844
(Name: 'nd6_prune';CtlType: CTLTYPE_INT ),
845
(Name: '';CtlType: 0 ),
846
(Name: 'nd6_delay';CtlType: CTLTYPE_INT ),
847
(Name: 'nd6_umaxtries';CtlType: CTLTYPE_INT ),
848
(Name: 'nd6_mmaxtries';CtlType: CTLTYPE_INT ),
849
(Name: 'nd6_useloopback';CtlType: CTLTYPE_INT ),
850
(Name: '';CtlType: 0 ),
851
(Name: 'nodeinfo';CtlType: CTLTYPE_INT ),
852
(Name: 'errppslimit';CtlType: CTLTYPE_INT ),
853
(Name: 'nd6_maxnudhint';CtlType: CTLTYPE_INT ),
854
(Name: 'mtudisc_hiwat';CtlType: CTLTYPE_INT ),
855
(Name: 'mtudisc_lowat';CtlType: CTLTYPE_INT ),
856
(Name: 'nd6_debug';CtlType: CTLTYPE_INT ),
857
(Name: '';CtlType: 0 ),
858
(Name: '';CtlType: 0 ));
862
* Names for UDP sysctl objects
864
UDPCTL_CHECKSUM = 1; { checksum UDP packets }
865
UDPCTL_STATS = 2; { statistics (Name:read-only) }
866
UDPCTL_MAXDGRAM = 3; { max datagram size }
867
UDPCTL_RECVSPACE = 4; { default receive buffer space }
868
UDPCTL_PCBLIST = 5; { list of PCBs for UDP sockets }
871
UDPCTL_NAMES : Array[0..5] OF CtlNameRec = (
872
(Name: '';CtlType: 0 ),
873
(Name: 'checksum';CtlType: CTLTYPE_INT ),
874
(Name: 'stats';CtlType: CTLTYPE_STRUCT ),
875
(Name: 'maxdgram';CtlType: CTLTYPE_INT ),
876
(Name: 'recvspace';CtlType: CTLTYPE_INT ),
877
(Name: 'pcblist';CtlType: CTLTYPE_STRUCT ));