2 * osi_sysctl.c: Linux sysctl interface to OpenAFS
6 * Written Jan 30, 2002 by Kris Van Hees (Sine Nomine Associates)
10 #include "afs/param.h"
12 #include "afs/sysincludes.h" /* Standard vendor system headers */
13 #include "afsincludes.h" /* Afs-based standard headers */
14 #include "afs/afs_stats.h" /* afs statistics */
16 #include <linux/sysctl.h>
17 #ifdef CONFIG_H_EXISTS
18 #include <linux/config.h>
22 extern afs_int32 afs_new_inum;
24 /* From afs_analyze.c */
25 extern afs_int32 hm_retry_RO;
26 extern afs_int32 hm_retry_RW;
27 extern afs_int32 hm_retry_int;
28 extern afs_int32 afs_blocksUsed_0;
29 extern afs_int32 afs_blocksUsed_1;
30 extern afs_int32 afs_blocksUsed_2;
31 extern afs_int32 afs_pct1;
32 extern afs_int32 afs_pct2;
35 static struct ctl_table_header *afs_sysctl = NULL;
37 static ctl_table afs_sysctl_table[] = {
40 .procname = "hm_retry_RO",
42 .maxlen = sizeof(afs_int32),
44 .proc_handler = &proc_dointvec
48 .procname = "hm_retry_RW",
50 .maxlen = sizeof(afs_int32),
52 .proc_handler = &proc_dointvec
56 .procname = "hm_retry_int",
57 .data = &hm_retry_int,
58 .maxlen = sizeof(afs_int32),
60 .proc_handler = &proc_dointvec
66 .maxlen = sizeof(afs_int32),
68 .proc_handler = &proc_dointvec
72 .procname = "rx_deadtime",
73 .data = &afs_rx_deadtime,
74 .maxlen = sizeof(afs_int32),
76 .proc_handler = &proc_dointvec
80 .procname = "bkVolPref",
81 .data = &afs_bkvolpref,
82 .maxlen = sizeof(afs_int32),
84 .proc_handler = &proc_dointvec
88 .procname = "afs_blocksUsed",
89 .data = &afs_blocksUsed,
90 .maxlen = sizeof(afs_int32),
92 .proc_handler = &proc_dointvec
96 .procname = "afs_blocksUsed_0",
97 .data = &afs_blocksUsed_0,
98 .maxlen = sizeof(afs_int32),
100 .proc_handler = &proc_dointvec
104 .procname = "afs_blocksUsed_1",
105 .data = &afs_blocksUsed_1,
106 .maxlen = sizeof(afs_int32),
108 .proc_handler = &proc_dointvec
112 .procname = "afs_blocksUsed_2",
113 .data = &afs_blocksUsed_2,
114 .maxlen = sizeof(afs_int32),
116 .proc_handler = &proc_dointvec
120 .procname = "afs_pct1",
122 .maxlen = sizeof(afs_int32),
124 .proc_handler = &proc_dointvec
128 .procname = "afs_pct2",
130 .maxlen = sizeof(afs_int32),
132 .proc_handler = &proc_dointvec
136 .procname = "afs_cacheBlocks",
137 .data = &afs_cacheBlocks,
138 .maxlen = sizeof(afs_int32),
140 .proc_handler = &proc_dointvec
144 .procname = "md5inum",
145 .data = &afs_new_inum,
146 .maxlen = sizeof(afs_int32),
148 .proc_handler = &proc_dointvec
153 static ctl_table fs_sysctl_table[] = {
158 .child = afs_sysctl_table
166 #if defined(REGISTER_SYSCTL_TABLE_NOFLAG)
167 afs_sysctl = register_sysctl_table(fs_sysctl_table);
169 afs_sysctl = register_sysctl_table(fs_sysctl_table, 0);
181 unregister_sysctl_table(afs_sysctl);
186 #endif /* CONFIG_SYSCTL */