Rev 422 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
422 | giacomo | 1 | /* |
2 | * sysctl.h: General linux system control interface |
||
3 | * |
||
4 | * Begun 24 March 1995, Stephen Tweedie |
||
5 | * |
||
6 | **************************************************************** |
||
7 | **************************************************************** |
||
8 | ** |
||
9 | ** The values in this file are exported to user space via |
||
10 | ** the sysctl() binary interface. However this interface |
||
11 | ** is unstable and deprecated and will be removed in the future. |
||
12 | ** For a stable interface use /proc/sys. |
||
13 | ** |
||
14 | **************************************************************** |
||
15 | **************************************************************** |
||
16 | */ |
||
17 | |||
18 | #ifndef _LINUX_SYSCTL_H |
||
19 | #define _LINUX_SYSCTL_H |
||
20 | |||
21 | #include <linux/kernel.h> |
||
22 | #include <linux/types.h> |
||
23 | #include <linux/list.h> |
||
24 | #include <linux/compiler.h> |
||
25 | |||
26 | struct file; |
||
27 | |||
28 | #define CTL_MAXNAME 10 /* how many path components do we allow in a |
||
29 | call to sysctl? In other words, what is |
||
30 | the largest acceptable value for the nlen |
||
31 | member of a struct __sysctl_args to have? */ |
||
32 | |||
33 | struct __sysctl_args { |
||
34 | int __user *name; |
||
35 | int nlen; |
||
36 | void __user *oldval; |
||
37 | size_t __user *oldlenp; |
||
38 | void __user *newval; |
||
39 | size_t newlen; |
||
40 | unsigned long __unused[4]; |
||
41 | }; |
||
42 | |||
43 | /* Define sysctl names first */ |
||
44 | |||
45 | /* Top-level names: */ |
||
46 | |||
47 | /* For internal pattern-matching use only: */ |
||
48 | #ifdef __KERNEL__ |
||
49 | #define CTL_ANY -1 /* Matches any name */ |
||
50 | #define CTL_NONE 0 |
||
51 | #endif |
||
52 | |||
53 | enum |
||
54 | { |
||
55 | CTL_KERN=1, /* General kernel info and control */ |
||
56 | CTL_VM=2, /* VM management */ |
||
57 | CTL_NET=3, /* Networking */ |
||
58 | CTL_PROC=4, /* Process info */ |
||
59 | CTL_FS=5, /* Filesystems */ |
||
60 | CTL_DEBUG=6, /* Debugging */ |
||
61 | CTL_DEV=7, /* Devices */ |
||
62 | CTL_BUS=8, /* Busses */ |
||
63 | CTL_ABI=9, /* Binary emulation */ |
||
64 | CTL_CPU=10 /* CPU stuff (speed scaling, etc) */ |
||
65 | }; |
||
66 | |||
67 | /* CTL_BUS names: */ |
||
68 | enum |
||
69 | { |
||
70 | CTL_BUS_ISA=1 /* ISA */ |
||
71 | }; |
||
72 | |||
73 | /* CTL_KERN names: */ |
||
74 | enum |
||
75 | { |
||
76 | KERN_OSTYPE=1, /* string: system version */ |
||
77 | KERN_OSRELEASE=2, /* string: system release */ |
||
78 | KERN_OSREV=3, /* int: system revision */ |
||
79 | KERN_VERSION=4, /* string: compile time info */ |
||
80 | KERN_SECUREMASK=5, /* struct: maximum rights mask */ |
||
81 | KERN_PROF=6, /* table: profiling information */ |
||
82 | KERN_NODENAME=7, |
||
83 | KERN_DOMAINNAME=8, |
||
84 | |||
85 | KERN_CAP_BSET=14, /* int: capability bounding set */ |
||
86 | KERN_PANIC=15, /* int: panic timeout */ |
||
87 | KERN_REALROOTDEV=16, /* real root device to mount after initrd */ |
||
88 | |||
89 | KERN_SPARC_REBOOT=21, /* reboot command on Sparc */ |
||
90 | KERN_CTLALTDEL=22, /* int: allow ctl-alt-del to reboot */ |
||
91 | KERN_PRINTK=23, /* struct: control printk logging parameters */ |
||
92 | KERN_NAMETRANS=24, /* Name translation */ |
||
93 | KERN_PPC_HTABRECLAIM=25, /* turn htab reclaimation on/off on PPC */ |
||
94 | KERN_PPC_ZEROPAGED=26, /* turn idle page zeroing on/off on PPC */ |
||
95 | KERN_PPC_POWERSAVE_NAP=27, /* use nap mode for power saving */ |
||
96 | KERN_MODPROBE=28, |
||
97 | KERN_SG_BIG_BUFF=29, |
||
98 | KERN_ACCT=30, /* BSD process accounting parameters */ |
||
99 | KERN_PPC_L2CR=31, /* l2cr register on PPC */ |
||
100 | |||
101 | KERN_RTSIGNR=32, /* Number of rt sigs queued */ |
||
102 | KERN_RTSIGMAX=33, /* Max queuable */ |
||
103 | |||
104 | KERN_SHMMAX=34, /* long: Maximum shared memory segment */ |
||
105 | KERN_MSGMAX=35, /* int: Maximum size of a messege */ |
||
106 | KERN_MSGMNB=36, /* int: Maximum message queue size */ |
||
107 | KERN_MSGPOOL=37, /* int: Maximum system message pool size */ |
||
108 | KERN_SYSRQ=38, /* int: Sysreq enable */ |
||
109 | KERN_MAX_THREADS=39, /* int: Maximum nr of threads in the system */ |
||
110 | KERN_RANDOM=40, /* Random driver */ |
||
111 | KERN_SHMALL=41, /* int: Maximum size of shared memory */ |
||
112 | KERN_MSGMNI=42, /* int: msg queue identifiers */ |
||
113 | KERN_SEM=43, /* struct: sysv semaphore limits */ |
||
114 | KERN_SPARC_STOP_A=44, /* int: Sparc Stop-A enable */ |
||
115 | KERN_SHMMNI=45, /* int: shm array identifiers */ |
||
116 | KERN_OVERFLOWUID=46, /* int: overflow UID */ |
||
117 | KERN_OVERFLOWGID=47, /* int: overflow GID */ |
||
118 | KERN_SHMPATH=48, /* string: path to shm fs */ |
||
119 | KERN_HOTPLUG=49, /* string: path to hotplug policy agent */ |
||
120 | KERN_IEEE_EMULATION_WARNINGS=50, /* int: unimplemented ieee instructions */ |
||
121 | KERN_S390_USER_DEBUG_LOGGING=51, /* int: dumps of user faults */ |
||
122 | KERN_CORE_USES_PID=52, /* int: use core or core.%pid */ |
||
123 | KERN_TAINTED=53, /* int: various kernel tainted flags */ |
||
124 | KERN_CADPID=54, /* int: PID of the process to notify on CAD */ |
||
125 | KERN_PIDMAX=55, /* int: PID # limit */ |
||
126 | KERN_CORE_PATTERN=56, /* string: pattern for core-file names */ |
||
127 | KERN_PANIC_ON_OOPS=57, /* int: whether we will panic on an oops */ |
||
128 | KERN_HPPA_PWRSW=58, /* int: hppa soft-power enable */ |
||
129 | KERN_HPPA_UNALIGNED=59, /* int: hppa unaligned-trap enable */ |
||
130 | }; |
||
131 | |||
132 | |||
133 | /* CTL_VM names: */ |
||
134 | enum |
||
135 | { |
||
136 | VM_UNUSED1=1, /* was: struct: Set vm swapping control */ |
||
137 | VM_UNUSED2=2, /* was; int: Linear or sqrt() swapout for hogs */ |
||
138 | VM_UNUSED3=3, /* was: struct: Set free page thresholds */ |
||
139 | VM_UNUSED4=4, /* Spare */ |
||
140 | VM_OVERCOMMIT_MEMORY=5, /* Turn off the virtual memory safety limit */ |
||
141 | VM_UNUSED5=6, /* was: struct: Set buffer memory thresholds */ |
||
142 | VM_UNUSED7=7, /* was: struct: Set cache memory thresholds */ |
||
143 | VM_UNUSED8=8, /* was: struct: Control kswapd behaviour */ |
||
144 | VM_UNUSED9=9, /* was: struct: Set page table cache parameters */ |
||
145 | VM_PAGE_CLUSTER=10, /* int: set number of pages to swap together */ |
||
146 | VM_DIRTY_BACKGROUND=11, /* dirty_background_ratio */ |
||
147 | VM_DIRTY_RATIO=12, /* dirty_ratio */ |
||
148 | VM_DIRTY_WB_CS=13, /* dirty_writeback_centisecs */ |
||
149 | VM_DIRTY_EXPIRE_CS=14, /* dirty_expire_centisecs */ |
||
150 | VM_NR_PDFLUSH_THREADS=15, /* nr_pdflush_threads */ |
||
151 | VM_OVERCOMMIT_RATIO=16, /* percent of RAM to allow overcommit in */ |
||
152 | VM_PAGEBUF=17, /* struct: Control pagebuf parameters */ |
||
153 | VM_HUGETLB_PAGES=18, /* int: Number of available Huge Pages */ |
||
154 | VM_SWAPPINESS=19, /* Tendency to steal mapped memory */ |
||
155 | VM_LOWER_ZONE_PROTECTION=20,/* Amount of protection of lower zones */ |
||
156 | VM_MIN_FREE_KBYTES=21, /* Minimum free kilobytes to maintain */ |
||
157 | }; |
||
158 | |||
159 | |||
160 | /* CTL_NET names: */ |
||
161 | enum |
||
162 | { |
||
163 | NET_CORE=1, |
||
164 | NET_ETHER=2, |
||
165 | NET_802=3, |
||
166 | NET_UNIX=4, |
||
167 | NET_IPV4=5, |
||
168 | NET_IPX=6, |
||
169 | NET_ATALK=7, |
||
170 | NET_NETROM=8, |
||
171 | NET_AX25=9, |
||
172 | NET_BRIDGE=10, |
||
173 | NET_ROSE=11, |
||
174 | NET_IPV6=12, |
||
175 | NET_X25=13, |
||
176 | NET_TR=14, |
||
177 | NET_DECNET=15, |
||
178 | NET_ECONET=16, |
||
179 | NET_SCTP=17, |
||
180 | }; |
||
181 | |||
182 | /* /proc/sys/kernel/random */ |
||
183 | enum |
||
184 | { |
||
185 | RANDOM_POOLSIZE=1, |
||
186 | RANDOM_ENTROPY_COUNT=2, |
||
187 | RANDOM_READ_THRESH=3, |
||
188 | RANDOM_WRITE_THRESH=4, |
||
189 | RANDOM_BOOT_ID=5, |
||
190 | RANDOM_UUID=6 |
||
191 | }; |
||
192 | |||
193 | /* /proc/sys/bus/isa */ |
||
194 | enum |
||
195 | { |
||
196 | BUS_ISA_MEM_BASE=1, |
||
197 | BUS_ISA_PORT_BASE=2, |
||
198 | BUS_ISA_PORT_SHIFT=3 |
||
199 | }; |
||
200 | |||
201 | /* /proc/sys/net/core */ |
||
202 | enum |
||
203 | { |
||
204 | NET_CORE_WMEM_MAX=1, |
||
205 | NET_CORE_RMEM_MAX=2, |
||
206 | NET_CORE_WMEM_DEFAULT=3, |
||
207 | NET_CORE_RMEM_DEFAULT=4, |
||
208 | /* was NET_CORE_DESTROY_DELAY */ |
||
209 | NET_CORE_MAX_BACKLOG=6, |
||
210 | NET_CORE_FASTROUTE=7, |
||
211 | NET_CORE_MSG_COST=8, |
||
212 | NET_CORE_MSG_BURST=9, |
||
213 | NET_CORE_OPTMEM_MAX=10, |
||
214 | NET_CORE_HOT_LIST_LENGTH=11, |
||
215 | NET_CORE_DIVERT_VERSION=12, |
||
216 | NET_CORE_NO_CONG_THRESH=13, |
||
217 | NET_CORE_NO_CONG=14, |
||
218 | NET_CORE_LO_CONG=15, |
||
219 | NET_CORE_MOD_CONG=16, |
||
220 | NET_CORE_DEV_WEIGHT=17, |
||
221 | NET_CORE_SOMAXCONN=18, |
||
222 | }; |
||
223 | |||
224 | /* /proc/sys/net/ethernet */ |
||
225 | |||
226 | /* /proc/sys/net/802 */ |
||
227 | |||
228 | /* /proc/sys/net/unix */ |
||
229 | |||
230 | enum |
||
231 | { |
||
232 | NET_UNIX_DESTROY_DELAY=1, |
||
233 | NET_UNIX_DELETE_DELAY=2, |
||
234 | NET_UNIX_MAX_DGRAM_QLEN=3, |
||
235 | }; |
||
236 | |||
237 | /* /proc/sys/net/ipv4 */ |
||
238 | enum |
||
239 | { |
||
240 | /* v2.0 compatibile variables */ |
||
241 | NET_IPV4_FORWARD=8, |
||
242 | NET_IPV4_DYNADDR=9, |
||
243 | |||
244 | NET_IPV4_CONF=16, |
||
245 | NET_IPV4_NEIGH=17, |
||
246 | NET_IPV4_ROUTE=18, |
||
247 | NET_IPV4_FIB_HASH=19, |
||
248 | NET_IPV4_NETFILTER=20, |
||
249 | |||
250 | NET_IPV4_TCP_TIMESTAMPS=33, |
||
251 | NET_IPV4_TCP_WINDOW_SCALING=34, |
||
252 | NET_IPV4_TCP_SACK=35, |
||
253 | NET_IPV4_TCP_RETRANS_COLLAPSE=36, |
||
254 | NET_IPV4_DEFAULT_TTL=37, |
||
255 | NET_IPV4_AUTOCONFIG=38, |
||
256 | NET_IPV4_NO_PMTU_DISC=39, |
||
257 | NET_IPV4_TCP_SYN_RETRIES=40, |
||
258 | NET_IPV4_IPFRAG_HIGH_THRESH=41, |
||
259 | NET_IPV4_IPFRAG_LOW_THRESH=42, |
||
260 | NET_IPV4_IPFRAG_TIME=43, |
||
261 | NET_IPV4_TCP_MAX_KA_PROBES=44, |
||
262 | NET_IPV4_TCP_KEEPALIVE_TIME=45, |
||
263 | NET_IPV4_TCP_KEEPALIVE_PROBES=46, |
||
264 | NET_IPV4_TCP_RETRIES1=47, |
||
265 | NET_IPV4_TCP_RETRIES2=48, |
||
266 | NET_IPV4_TCP_FIN_TIMEOUT=49, |
||
267 | NET_IPV4_IP_MASQ_DEBUG=50, |
||
268 | NET_TCP_SYNCOOKIES=51, |
||
269 | NET_TCP_STDURG=52, |
||
270 | NET_TCP_RFC1337=53, |
||
271 | NET_TCP_SYN_TAILDROP=54, |
||
272 | NET_TCP_MAX_SYN_BACKLOG=55, |
||
273 | NET_IPV4_LOCAL_PORT_RANGE=56, |
||
274 | NET_IPV4_ICMP_ECHO_IGNORE_ALL=57, |
||
275 | NET_IPV4_ICMP_ECHO_IGNORE_BROADCASTS=58, |
||
276 | NET_IPV4_ICMP_SOURCEQUENCH_RATE=59, |
||
277 | NET_IPV4_ICMP_DESTUNREACH_RATE=60, |
||
278 | NET_IPV4_ICMP_TIMEEXCEED_RATE=61, |
||
279 | NET_IPV4_ICMP_PARAMPROB_RATE=62, |
||
280 | NET_IPV4_ICMP_ECHOREPLY_RATE=63, |
||
281 | NET_IPV4_ICMP_IGNORE_BOGUS_ERROR_RESPONSES=64, |
||
282 | NET_IPV4_IGMP_MAX_MEMBERSHIPS=65, |
||
283 | NET_TCP_TW_RECYCLE=66, |
||
284 | NET_IPV4_ALWAYS_DEFRAG=67, |
||
285 | NET_IPV4_TCP_KEEPALIVE_INTVL=68, |
||
286 | NET_IPV4_INET_PEER_THRESHOLD=69, |
||
287 | NET_IPV4_INET_PEER_MINTTL=70, |
||
288 | NET_IPV4_INET_PEER_MAXTTL=71, |
||
289 | NET_IPV4_INET_PEER_GC_MINTIME=72, |
||
290 | NET_IPV4_INET_PEER_GC_MAXTIME=73, |
||
291 | NET_TCP_ORPHAN_RETRIES=74, |
||
292 | NET_TCP_ABORT_ON_OVERFLOW=75, |
||
293 | NET_TCP_SYNACK_RETRIES=76, |
||
294 | NET_TCP_MAX_ORPHANS=77, |
||
295 | NET_TCP_MAX_TW_BUCKETS=78, |
||
296 | NET_TCP_FACK=79, |
||
297 | NET_TCP_REORDERING=80, |
||
298 | NET_TCP_ECN=81, |
||
299 | NET_TCP_DSACK=82, |
||
300 | NET_TCP_MEM=83, |
||
301 | NET_TCP_WMEM=84, |
||
302 | NET_TCP_RMEM=85, |
||
303 | NET_TCP_APP_WIN=86, |
||
304 | NET_TCP_ADV_WIN_SCALE=87, |
||
305 | NET_IPV4_NONLOCAL_BIND=88, |
||
306 | NET_IPV4_ICMP_RATELIMIT=89, |
||
307 | NET_IPV4_ICMP_RATEMASK=90, |
||
308 | NET_TCP_TW_REUSE=91, |
||
309 | NET_TCP_FRTO=92, |
||
310 | NET_TCP_LOW_LATENCY=93, |
||
311 | NET_IPV4_IPFRAG_SECRET_INTERVAL=94, |
||
312 | }; |
||
313 | |||
314 | enum { |
||
315 | NET_IPV4_ROUTE_FLUSH=1, |
||
316 | NET_IPV4_ROUTE_MIN_DELAY=2, |
||
317 | NET_IPV4_ROUTE_MAX_DELAY=3, |
||
318 | NET_IPV4_ROUTE_GC_THRESH=4, |
||
319 | NET_IPV4_ROUTE_MAX_SIZE=5, |
||
320 | NET_IPV4_ROUTE_GC_MIN_INTERVAL=6, |
||
321 | NET_IPV4_ROUTE_GC_TIMEOUT=7, |
||
322 | NET_IPV4_ROUTE_GC_INTERVAL=8, |
||
323 | NET_IPV4_ROUTE_REDIRECT_LOAD=9, |
||
324 | NET_IPV4_ROUTE_REDIRECT_NUMBER=10, |
||
325 | NET_IPV4_ROUTE_REDIRECT_SILENCE=11, |
||
326 | NET_IPV4_ROUTE_ERROR_COST=12, |
||
327 | NET_IPV4_ROUTE_ERROR_BURST=13, |
||
328 | NET_IPV4_ROUTE_GC_ELASTICITY=14, |
||
329 | NET_IPV4_ROUTE_MTU_EXPIRES=15, |
||
330 | NET_IPV4_ROUTE_MIN_PMTU=16, |
||
331 | NET_IPV4_ROUTE_MIN_ADVMSS=17, |
||
332 | NET_IPV4_ROUTE_SECRET_INTERVAL=18, |
||
333 | }; |
||
334 | |||
335 | enum |
||
336 | { |
||
337 | NET_PROTO_CONF_ALL=-2, |
||
338 | NET_PROTO_CONF_DEFAULT=-3 |
||
339 | |||
340 | /* And device ifindices ... */ |
||
341 | }; |
||
342 | |||
343 | enum |
||
344 | { |
||
345 | NET_IPV4_CONF_FORWARDING=1, |
||
346 | NET_IPV4_CONF_MC_FORWARDING=2, |
||
347 | NET_IPV4_CONF_PROXY_ARP=3, |
||
348 | NET_IPV4_CONF_ACCEPT_REDIRECTS=4, |
||
349 | NET_IPV4_CONF_SECURE_REDIRECTS=5, |
||
350 | NET_IPV4_CONF_SEND_REDIRECTS=6, |
||
351 | NET_IPV4_CONF_SHARED_MEDIA=7, |
||
352 | NET_IPV4_CONF_RP_FILTER=8, |
||
353 | NET_IPV4_CONF_ACCEPT_SOURCE_ROUTE=9, |
||
354 | NET_IPV4_CONF_BOOTP_RELAY=10, |
||
355 | NET_IPV4_CONF_LOG_MARTIANS=11, |
||
356 | NET_IPV4_CONF_TAG=12, |
||
357 | NET_IPV4_CONF_ARPFILTER=13, |
||
358 | NET_IPV4_CONF_MEDIUM_ID=14, |
||
359 | NET_IPV4_CONF_NOXFRM=15, |
||
360 | NET_IPV4_CONF_NOPOLICY=16, |
||
361 | }; |
||
362 | |||
363 | /* /proc/sys/net/ipv4/netfilter */ |
||
364 | enum |
||
365 | { |
||
366 | NET_IPV4_NF_CONNTRACK_MAX=1, |
||
367 | NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_SENT=2, |
||
368 | NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_SYN_RECV=3, |
||
369 | NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_ESTABLISHED=4, |
||
370 | NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_FIN_WAIT=5, |
||
371 | NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE_WAIT=6, |
||
372 | NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_LAST_ACK=7, |
||
373 | NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_TIME_WAIT=8, |
||
374 | NET_IPV4_NF_CONNTRACK_TCP_TIMEOUT_CLOSE=9, |
||
375 | NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT=10, |
||
376 | NET_IPV4_NF_CONNTRACK_UDP_TIMEOUT_STREAM=11, |
||
377 | NET_IPV4_NF_CONNTRACK_ICMP_TIMEOUT=12, |
||
378 | NET_IPV4_NF_CONNTRACK_GENERIC_TIMEOUT=13, |
||
379 | }; |
||
380 | |||
381 | /* /proc/sys/net/ipv6 */ |
||
382 | enum { |
||
383 | NET_IPV6_CONF=16, |
||
384 | NET_IPV6_NEIGH=17, |
||
385 | NET_IPV6_ROUTE=18, |
||
386 | NET_IPV6_ICMP=19, |
||
387 | NET_IPV6_BINDV6ONLY=20, |
||
388 | NET_IPV6_IP6FRAG_HIGH_THRESH=21, |
||
389 | NET_IPV6_IP6FRAG_LOW_THRESH=22, |
||
390 | NET_IPV6_IP6FRAG_TIME=23, |
||
391 | NET_IPV6_IP6FRAG_SECRET_INTERVAL=24 |
||
392 | }; |
||
393 | |||
394 | enum { |
||
395 | NET_IPV6_ROUTE_FLUSH=1, |
||
396 | NET_IPV6_ROUTE_GC_THRESH=2, |
||
397 | NET_IPV6_ROUTE_MAX_SIZE=3, |
||
398 | NET_IPV6_ROUTE_GC_MIN_INTERVAL=4, |
||
399 | NET_IPV6_ROUTE_GC_TIMEOUT=5, |
||
400 | NET_IPV6_ROUTE_GC_INTERVAL=6, |
||
401 | NET_IPV6_ROUTE_GC_ELASTICITY=7, |
||
402 | NET_IPV6_ROUTE_MTU_EXPIRES=8, |
||
403 | NET_IPV6_ROUTE_MIN_ADVMSS=9 |
||
404 | }; |
||
405 | |||
406 | enum { |
||
407 | NET_IPV6_FORWARDING=1, |
||
408 | NET_IPV6_HOP_LIMIT=2, |
||
409 | NET_IPV6_MTU=3, |
||
410 | NET_IPV6_ACCEPT_RA=4, |
||
411 | NET_IPV6_ACCEPT_REDIRECTS=5, |
||
412 | NET_IPV6_AUTOCONF=6, |
||
413 | NET_IPV6_DAD_TRANSMITS=7, |
||
414 | NET_IPV6_RTR_SOLICITS=8, |
||
415 | NET_IPV6_RTR_SOLICIT_INTERVAL=9, |
||
416 | NET_IPV6_RTR_SOLICIT_DELAY=10, |
||
417 | NET_IPV6_USE_TEMPADDR=11, |
||
418 | NET_IPV6_TEMP_VALID_LFT=12, |
||
419 | NET_IPV6_TEMP_PREFERED_LFT=13, |
||
420 | NET_IPV6_REGEN_MAX_RETRY=14, |
||
421 | NET_IPV6_MAX_DESYNC_FACTOR=15 |
||
422 | }; |
||
423 | |||
424 | /* /proc/sys/net/ipv6/icmp */ |
||
425 | enum { |
||
426 | NET_IPV6_ICMP_RATELIMIT=1 |
||
427 | }; |
||
428 | |||
429 | /* /proc/sys/net/<protocol>/neigh/<dev> */ |
||
430 | enum { |
||
431 | NET_NEIGH_MCAST_SOLICIT=1, |
||
432 | NET_NEIGH_UCAST_SOLICIT=2, |
||
433 | NET_NEIGH_APP_SOLICIT=3, |
||
434 | NET_NEIGH_RETRANS_TIME=4, |
||
435 | NET_NEIGH_REACHABLE_TIME=5, |
||
436 | NET_NEIGH_DELAY_PROBE_TIME=6, |
||
437 | NET_NEIGH_GC_STALE_TIME=7, |
||
438 | NET_NEIGH_UNRES_QLEN=8, |
||
439 | NET_NEIGH_PROXY_QLEN=9, |
||
440 | NET_NEIGH_ANYCAST_DELAY=10, |
||
441 | NET_NEIGH_PROXY_DELAY=11, |
||
442 | NET_NEIGH_LOCKTIME=12, |
||
443 | NET_NEIGH_GC_INTERVAL=13, |
||
444 | NET_NEIGH_GC_THRESH1=14, |
||
445 | NET_NEIGH_GC_THRESH2=15, |
||
446 | NET_NEIGH_GC_THRESH3=16 |
||
447 | }; |
||
448 | |||
449 | /* /proc/sys/net/ipx */ |
||
450 | enum { |
||
451 | NET_IPX_PPROP_BROADCASTING=1, |
||
452 | NET_IPX_FORWARDING=2 |
||
453 | }; |
||
454 | |||
455 | |||
456 | /* /proc/sys/net/appletalk */ |
||
457 | enum { |
||
458 | NET_ATALK_AARP_EXPIRY_TIME=1, |
||
459 | NET_ATALK_AARP_TICK_TIME=2, |
||
460 | NET_ATALK_AARP_RETRANSMIT_LIMIT=3, |
||
461 | NET_ATALK_AARP_RESOLVE_TIME=4 |
||
462 | }; |
||
463 | |||
464 | |||
465 | /* /proc/sys/net/netrom */ |
||
466 | enum { |
||
467 | NET_NETROM_DEFAULT_PATH_QUALITY=1, |
||
468 | NET_NETROM_OBSOLESCENCE_COUNT_INITIALISER=2, |
||
469 | NET_NETROM_NETWORK_TTL_INITIALISER=3, |
||
470 | NET_NETROM_TRANSPORT_TIMEOUT=4, |
||
471 | NET_NETROM_TRANSPORT_MAXIMUM_TRIES=5, |
||
472 | NET_NETROM_TRANSPORT_ACKNOWLEDGE_DELAY=6, |
||
473 | NET_NETROM_TRANSPORT_BUSY_DELAY=7, |
||
474 | NET_NETROM_TRANSPORT_REQUESTED_WINDOW_SIZE=8, |
||
475 | NET_NETROM_TRANSPORT_NO_ACTIVITY_TIMEOUT=9, |
||
476 | NET_NETROM_ROUTING_CONTROL=10, |
||
477 | NET_NETROM_LINK_FAILS_COUNT=11 |
||
478 | }; |
||
479 | |||
480 | /* /proc/sys/net/ax25 */ |
||
481 | enum { |
||
482 | NET_AX25_IP_DEFAULT_MODE=1, |
||
483 | NET_AX25_DEFAULT_MODE=2, |
||
484 | NET_AX25_BACKOFF_TYPE=3, |
||
485 | NET_AX25_CONNECT_MODE=4, |
||
486 | NET_AX25_STANDARD_WINDOW=5, |
||
487 | NET_AX25_EXTENDED_WINDOW=6, |
||
488 | NET_AX25_T1_TIMEOUT=7, |
||
489 | NET_AX25_T2_TIMEOUT=8, |
||
490 | NET_AX25_T3_TIMEOUT=9, |
||
491 | NET_AX25_IDLE_TIMEOUT=10, |
||
492 | NET_AX25_N2=11, |
||
493 | NET_AX25_PACLEN=12, |
||
494 | NET_AX25_PROTOCOL=13, |
||
495 | NET_AX25_DAMA_SLAVE_TIMEOUT=14 |
||
496 | }; |
||
497 | |||
498 | /* /proc/sys/net/rose */ |
||
499 | enum { |
||
500 | NET_ROSE_RESTART_REQUEST_TIMEOUT=1, |
||
501 | NET_ROSE_CALL_REQUEST_TIMEOUT=2, |
||
502 | NET_ROSE_RESET_REQUEST_TIMEOUT=3, |
||
503 | NET_ROSE_CLEAR_REQUEST_TIMEOUT=4, |
||
504 | NET_ROSE_ACK_HOLD_BACK_TIMEOUT=5, |
||
505 | NET_ROSE_ROUTING_CONTROL=6, |
||
506 | NET_ROSE_LINK_FAIL_TIMEOUT=7, |
||
507 | NET_ROSE_MAX_VCS=8, |
||
508 | NET_ROSE_WINDOW_SIZE=9, |
||
509 | NET_ROSE_NO_ACTIVITY_TIMEOUT=10 |
||
510 | }; |
||
511 | |||
512 | /* /proc/sys/net/x25 */ |
||
513 | enum { |
||
514 | NET_X25_RESTART_REQUEST_TIMEOUT=1, |
||
515 | NET_X25_CALL_REQUEST_TIMEOUT=2, |
||
516 | NET_X25_RESET_REQUEST_TIMEOUT=3, |
||
517 | NET_X25_CLEAR_REQUEST_TIMEOUT=4, |
||
518 | NET_X25_ACK_HOLD_BACK_TIMEOUT=5 |
||
519 | }; |
||
520 | |||
521 | /* /proc/sys/net/token-ring */ |
||
522 | enum |
||
523 | { |
||
524 | NET_TR_RIF_TIMEOUT=1 |
||
525 | }; |
||
526 | |||
527 | /* /proc/sys/net/decnet/ */ |
||
528 | enum { |
||
529 | NET_DECNET_NODE_TYPE = 1, |
||
530 | NET_DECNET_NODE_ADDRESS = 2, |
||
531 | NET_DECNET_NODE_NAME = 3, |
||
532 | NET_DECNET_DEFAULT_DEVICE = 4, |
||
533 | NET_DECNET_TIME_WAIT = 5, |
||
534 | NET_DECNET_DN_COUNT = 6, |
||
535 | NET_DECNET_DI_COUNT = 7, |
||
536 | NET_DECNET_DR_COUNT = 8, |
||
537 | NET_DECNET_DST_GC_INTERVAL = 9, |
||
538 | NET_DECNET_CONF = 10, |
||
539 | NET_DECNET_NO_FC_MAX_CWND = 11, |
||
540 | NET_DECNET_DEBUG_LEVEL = 255 |
||
541 | }; |
||
542 | |||
543 | /* /proc/sys/net/decnet/conf/<dev> */ |
||
544 | enum { |
||
545 | NET_DECNET_CONF_LOOPBACK = -2, |
||
546 | NET_DECNET_CONF_DDCMP = -3, |
||
547 | NET_DECNET_CONF_PPP = -4, |
||
548 | NET_DECNET_CONF_X25 = -5, |
||
549 | NET_DECNET_CONF_GRE = -6, |
||
550 | NET_DECNET_CONF_ETHER = -7 |
||
551 | |||
552 | /* ... and ifindex of devices */ |
||
553 | }; |
||
554 | |||
555 | /* /proc/sys/net/decnet/conf/<dev>/ */ |
||
556 | enum { |
||
557 | NET_DECNET_CONF_DEV_PRIORITY = 1, |
||
558 | NET_DECNET_CONF_DEV_T1 = 2, |
||
559 | NET_DECNET_CONF_DEV_T2 = 3, |
||
560 | NET_DECNET_CONF_DEV_T3 = 4, |
||
561 | NET_DECNET_CONF_DEV_FORWARDING = 5, |
||
562 | NET_DECNET_CONF_DEV_BLKSIZE = 6, |
||
563 | NET_DECNET_CONF_DEV_STATE = 7 |
||
564 | }; |
||
565 | |||
566 | /* /proc/sys/net/sctp */ |
||
567 | enum { |
||
568 | NET_SCTP_RTO_INITIAL = 1, |
||
569 | NET_SCTP_RTO_MIN = 2, |
||
570 | NET_SCTP_RTO_MAX = 3, |
||
571 | NET_SCTP_RTO_ALPHA = 4, |
||
572 | NET_SCTP_RTO_BETA = 5, |
||
573 | NET_SCTP_VALID_COOKIE_LIFE = 6, |
||
574 | NET_SCTP_ASSOCIATION_MAX_RETRANS = 7, |
||
575 | NET_SCTP_PATH_MAX_RETRANS = 8, |
||
576 | NET_SCTP_MAX_INIT_RETRANSMITS = 9, |
||
577 | NET_SCTP_HB_INTERVAL = 10, |
||
578 | NET_SCTP_PRESERVE_ENABLE = 11, |
||
579 | NET_SCTP_MAX_BURST = 12, |
||
580 | }; |
||
581 | |||
582 | /* CTL_PROC names: */ |
||
583 | |||
584 | /* CTL_FS names: */ |
||
585 | enum |
||
586 | { |
||
587 | FS_NRINODE=1, /* int:current number of allocated inodes */ |
||
588 | FS_STATINODE=2, |
||
589 | FS_MAXINODE=3, /* int:maximum number of inodes that can be allocated */ |
||
590 | FS_NRDQUOT=4, /* int:current number of allocated dquots */ |
||
591 | FS_MAXDQUOT=5, /* int:maximum number of dquots that can be allocated */ |
||
592 | FS_NRFILE=6, /* int:current number of allocated filedescriptors */ |
||
593 | FS_MAXFILE=7, /* int:maximum number of filedescriptors that can be allocated */ |
||
594 | FS_DENTRY=8, |
||
595 | FS_NRSUPER=9, /* int:current number of allocated super_blocks */ |
||
596 | FS_MAXSUPER=10, /* int:maximum number of super_blocks that can be allocated */ |
||
597 | FS_OVERFLOWUID=11, /* int: overflow UID */ |
||
598 | FS_OVERFLOWGID=12, /* int: overflow GID */ |
||
599 | FS_LEASES=13, /* int: leases enabled */ |
||
600 | FS_DIR_NOTIFY=14, /* int: directory notification enabled */ |
||
601 | FS_LEASE_TIME=15, /* int: maximum time to wait for a lease break */ |
||
602 | FS_DQSTATS=16, /* disc quota usage statistics */ |
||
603 | FS_XFS=17, /* struct: control xfs parameters */ |
||
604 | }; |
||
605 | |||
606 | /* /proc/sys/fs/quota/ */ |
||
607 | enum { |
||
608 | FS_DQ_LOOKUPS = 1, |
||
609 | FS_DQ_DROPS = 2, |
||
610 | FS_DQ_READS = 3, |
||
611 | FS_DQ_WRITES = 4, |
||
612 | FS_DQ_CACHE_HITS = 5, |
||
613 | FS_DQ_ALLOCATED = 6, |
||
614 | FS_DQ_FREE = 7, |
||
615 | FS_DQ_SYNCS = 8, |
||
616 | }; |
||
617 | |||
618 | /* CTL_DEBUG names: */ |
||
619 | |||
620 | /* CTL_DEV names: */ |
||
621 | enum { |
||
622 | DEV_CDROM=1, |
||
623 | DEV_HWMON=2, |
||
624 | DEV_PARPORT=3, |
||
625 | DEV_RAID=4, |
||
626 | DEV_MAC_HID=5, |
||
627 | DEV_SCSI=6, |
||
628 | }; |
||
629 | |||
630 | /* /proc/sys/dev/cdrom */ |
||
631 | enum { |
||
632 | DEV_CDROM_INFO=1, |
||
633 | DEV_CDROM_AUTOCLOSE=2, |
||
634 | DEV_CDROM_AUTOEJECT=3, |
||
635 | DEV_CDROM_DEBUG=4, |
||
636 | DEV_CDROM_LOCK=5, |
||
637 | DEV_CDROM_CHECK_MEDIA=6 |
||
638 | }; |
||
639 | |||
640 | /* /proc/sys/dev/parport */ |
||
641 | enum { |
||
642 | DEV_PARPORT_DEFAULT=-3 |
||
643 | }; |
||
644 | |||
645 | /* /proc/sys/dev/raid */ |
||
646 | enum { |
||
647 | DEV_RAID_SPEED_LIMIT_MIN=1, |
||
648 | DEV_RAID_SPEED_LIMIT_MAX=2 |
||
649 | }; |
||
650 | |||
651 | /* /proc/sys/dev/parport/default */ |
||
652 | enum { |
||
653 | DEV_PARPORT_DEFAULT_TIMESLICE=1, |
||
654 | DEV_PARPORT_DEFAULT_SPINTIME=2 |
||
655 | }; |
||
656 | |||
657 | /* /proc/sys/dev/parport/parport n */ |
||
658 | enum { |
||
659 | DEV_PARPORT_SPINTIME=1, |
||
660 | DEV_PARPORT_BASE_ADDR=2, |
||
661 | DEV_PARPORT_IRQ=3, |
||
662 | DEV_PARPORT_DMA=4, |
||
663 | DEV_PARPORT_MODES=5, |
||
664 | DEV_PARPORT_DEVICES=6, |
||
665 | DEV_PARPORT_AUTOPROBE=16 |
||
666 | }; |
||
667 | |||
668 | /* /proc/sys/dev/parport/parport n/devices/ */ |
||
669 | enum { |
||
670 | DEV_PARPORT_DEVICES_ACTIVE=-3, |
||
671 | }; |
||
672 | |||
673 | /* /proc/sys/dev/parport/parport n/devices/device n */ |
||
674 | enum { |
||
675 | DEV_PARPORT_DEVICE_TIMESLICE=1, |
||
676 | }; |
||
677 | |||
678 | /* /proc/sys/dev/mac_hid */ |
||
679 | enum { |
||
680 | DEV_MAC_HID_KEYBOARD_SENDS_LINUX_KEYCODES=1, |
||
681 | DEV_MAC_HID_KEYBOARD_LOCK_KEYCODES=2, |
||
682 | DEV_MAC_HID_MOUSE_BUTTON_EMULATION=3, |
||
683 | DEV_MAC_HID_MOUSE_BUTTON2_KEYCODE=4, |
||
684 | DEV_MAC_HID_MOUSE_BUTTON3_KEYCODE=5, |
||
685 | DEV_MAC_HID_ADB_MOUSE_SENDS_KEYCODES=6 |
||
686 | }; |
||
687 | |||
688 | /* /proc/sys/dev/scsi */ |
||
689 | enum { |
||
690 | DEV_SCSI_LOGGING_LEVEL=1, |
||
691 | }; |
||
692 | |||
693 | /* /proc/sys/abi */ |
||
694 | enum |
||
695 | { |
||
696 | ABI_DEFHANDLER_COFF=1, /* default handler for coff binaries */ |
||
697 | ABI_DEFHANDLER_ELF=2, /* default handler for ELF binaries */ |
||
698 | ABI_DEFHANDLER_LCALL7=3,/* default handler for procs using lcall7 */ |
||
699 | ABI_DEFHANDLER_LIBCSO=4,/* default handler for an libc.so ELF interp */ |
||
700 | ABI_TRACE=5, /* tracing flags */ |
||
701 | ABI_FAKE_UTSNAME=6, /* fake target utsname information */ |
||
702 | }; |
||
703 | |||
704 | #ifdef __KERNEL__ |
||
705 | |||
706 | extern asmlinkage long sys_sysctl(struct __sysctl_args __user *); |
||
707 | extern void sysctl_init(void); |
||
708 | |||
709 | typedef struct ctl_table ctl_table; |
||
710 | |||
711 | typedef int ctl_handler (ctl_table *table, int __user *name, int nlen, |
||
712 | void __user *oldval, size_t __user *oldlenp, |
||
713 | void __user *newval, size_t newlen, |
||
714 | void **context); |
||
715 | |||
716 | typedef int proc_handler (ctl_table *ctl, int write, struct file * filp, |
||
717 | void __user *buffer, size_t *lenp); |
||
718 | |||
719 | extern int proc_dostring(ctl_table *, int, struct file *, |
||
720 | void __user *, size_t *); |
||
721 | extern int proc_dointvec(ctl_table *, int, struct file *, |
||
722 | void __user *, size_t *); |
||
723 | extern int proc_dointvec_bset(ctl_table *, int, struct file *, |
||
724 | void __user *, size_t *); |
||
725 | extern int proc_dointvec_minmax(ctl_table *, int, struct file *, |
||
726 | void __user *, size_t *); |
||
727 | extern int proc_dointvec_jiffies(ctl_table *, int, struct file *, |
||
728 | void __user *, size_t *); |
||
729 | extern int proc_doulongvec_minmax(ctl_table *, int, struct file *, |
||
730 | void __user *, size_t *); |
||
731 | extern int proc_doulongvec_ms_jiffies_minmax(ctl_table *table, int, |
||
732 | struct file *, void __user *, size_t *); |
||
733 | |||
734 | extern int do_sysctl (int __user *name, int nlen, |
||
735 | void __user *oldval, size_t __user *oldlenp, |
||
736 | void __user *newval, size_t newlen); |
||
737 | |||
738 | extern int do_sysctl_strategy (ctl_table *table, |
||
739 | int __user *name, int nlen, |
||
740 | void __user *oldval, size_t __user *oldlenp, |
||
741 | void __user *newval, size_t newlen, void ** context); |
||
742 | |||
743 | extern ctl_handler sysctl_string; |
||
744 | extern ctl_handler sysctl_intvec; |
||
745 | extern ctl_handler sysctl_jiffies; |
||
746 | |||
747 | |||
748 | /* |
||
749 | * Register a set of sysctl names by calling register_sysctl_table |
||
750 | * with an initialised array of ctl_table's. An entry with zero |
||
751 | * ctl_name terminates the table. table->de will be set up by the |
||
752 | * registration and need not be initialised in advance. |
||
753 | * |
||
754 | * sysctl names can be mirrored automatically under /proc/sys. The |
||
755 | * procname supplied controls /proc naming. |
||
756 | * |
||
757 | * The table's mode will be honoured both for sys_sysctl(2) and |
||
758 | * proc-fs access. |
||
759 | * |
||
760 | * Leaf nodes in the sysctl tree will be represented by a single file |
||
761 | * under /proc; non-leaf nodes will be represented by directories. A |
||
762 | * null procname disables /proc mirroring at this node. |
||
763 | * |
||
764 | * sysctl(2) can automatically manage read and write requests through |
||
765 | * the sysctl table. The data and maxlen fields of the ctl_table |
||
766 | * struct enable minimal validation of the values being written to be |
||
767 | * performed, and the mode field allows minimal authentication. |
||
768 | * |
||
769 | * More sophisticated management can be enabled by the provision of a |
||
770 | * strategy routine with the table entry. This will be called before |
||
771 | * any automatic read or write of the data is performed. |
||
772 | * |
||
773 | * The strategy routine may return: |
||
774 | * <0: Error occurred (error is passed to user process) |
||
775 | * 0: OK - proceed with automatic read or write. |
||
776 | * >0: OK - read or write has been done by the strategy routine, so |
||
777 | * return immediately. |
||
778 | * |
||
779 | * There must be a proc_handler routine for any terminal nodes |
||
780 | * mirrored under /proc/sys (non-terminals are handled by a built-in |
||
781 | * directory handler). Several default handlers are available to |
||
782 | * cover common cases. |
||
783 | */ |
||
784 | |||
785 | /* A sysctl table is an array of struct ctl_table: */ |
||
786 | struct ctl_table |
||
787 | { |
||
788 | int ctl_name; /* Binary ID */ |
||
789 | const char *procname; /* Text ID for /proc/sys, or zero */ |
||
790 | void *data; |
||
791 | int maxlen; |
||
792 | mode_t mode; |
||
793 | ctl_table *child; |
||
794 | proc_handler *proc_handler; /* Callback for text formatting */ |
||
795 | ctl_handler *strategy; /* Callback function for all r/w */ |
||
796 | struct proc_dir_entry *de; /* /proc control block */ |
||
797 | void *extra1; |
||
798 | void *extra2; |
||
799 | }; |
||
800 | |||
801 | /* struct ctl_table_header is used to maintain dynamic lists of |
||
802 | ctl_table trees. */ |
||
803 | struct ctl_table_header |
||
804 | { |
||
805 | ctl_table *ctl_table; |
||
806 | struct list_head ctl_entry; |
||
807 | }; |
||
808 | |||
809 | struct ctl_table_header * register_sysctl_table(ctl_table * table, |
||
810 | int insert_at_head); |
||
811 | void unregister_sysctl_table(struct ctl_table_header * table); |
||
812 | |||
813 | #else /* __KERNEL__ */ |
||
814 | |||
815 | #endif /* __KERNEL__ */ |
||
816 | |||
817 | #endif /* _LINUX_SYSCTL_H */ |