md5-inode-numbers-20060405
[openafs.git] / src / afs / LINUX / osi_sysctl.c
1 /*
2  * osi_sysctl.c: Linux sysctl interface to OpenAFS
3  *
4  * $Id$
5  *
6  * Written Jan 30, 2002 by Kris Van Hees (Sine Nomine Associates)
7  */
8
9 #include <afsconfig.h>
10 #include "afs/param.h"
11
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 */
15
16 #include <linux/sysctl.h>
17 #include <linux/config.h>
18
19 /* From afs_util.c */
20 extern afs_int32 afs_new_inum;
21
22 /* From afs_analyze.c */
23 extern afs_int32 hm_retry_RO;
24 extern afs_int32 hm_retry_RW;
25 extern afs_int32 hm_retry_int;
26 extern afs_int32 afs_blocksUsed_0;
27 extern afs_int32 afs_blocksUsed_1;
28 extern afs_int32 afs_blocksUsed_2;
29 extern afs_int32 afs_pct1;
30 extern afs_int32 afs_pct2;
31
32 #ifdef CONFIG_SYSCTL
33 static struct ctl_table_header *afs_sysctl = NULL;
34
35 static ctl_table afs_sysctl_table[] = {
36     {1, "hm_retry_RO",
37      &hm_retry_RO, sizeof(afs_int32), 0644, NULL,
38      &proc_dointvec}
39     ,
40     {2, "hm_retry_RW",
41      &hm_retry_RW, sizeof(afs_int32), 0644, NULL,
42      &proc_dointvec}
43     ,
44     {3, "hm_retry_int",
45      &hm_retry_int, sizeof(afs_int32), 0644, NULL,
46      &proc_dointvec}
47     ,
48     {4, "GCPAGs",
49      &afs_gcpags, sizeof(afs_int32), 0644, NULL,
50      &proc_dointvec}
51     ,
52     {5, "rx_deadtime",
53      &afs_rx_deadtime, sizeof(afs_int32), 0644, NULL,
54      &proc_dointvec}
55     ,
56     {6, "bkVolPref",
57      &afs_bkvolpref, sizeof(afs_int32), 0644, NULL,
58      &proc_dointvec}
59     ,
60     {7, "afs_blocksUsed",
61      &afs_blocksUsed, sizeof(afs_int32), 0444, NULL,
62      &proc_dointvec}
63     ,
64     {8, "afs_blocksUsed_0",
65      &afs_blocksUsed_0, sizeof(afs_int32), 0644, NULL,
66      &proc_dointvec}
67     ,
68     {9, "afs_blocksUsed_1",
69      &afs_blocksUsed_1, sizeof(afs_int32), 0644, NULL,
70      &proc_dointvec}
71     ,
72     {10, "afs_blocksUsed_2",
73      &afs_blocksUsed_2, sizeof(afs_int32), 0644, NULL,
74      &proc_dointvec}
75     ,
76     {11, "afs_pct1",
77      &afs_pct1, sizeof(afs_int32), 0644, NULL,
78      &proc_dointvec}
79     ,
80     {12, "afs_pct2",
81      &afs_pct2, sizeof(afs_int32), 0644, NULL,
82      &proc_dointvec}
83     ,
84     {13, "afs_cacheBlocks",
85      &afs_cacheBlocks, sizeof(afs_int32), 0644, NULL,
86      &proc_dointvec}
87     ,
88     {7, "md5inum",
89      &afs_new_inum, sizeof(afs_int32), 0644, NULL,
90      &proc_dointvec}
91     ,
92     {0}
93 };
94
95 static ctl_table fs_sysctl_table[] = {
96     {1, "afs", NULL, 0, 0555, afs_sysctl_table},
97     {0}
98 };
99
100 int
101 osi_sysctl_init()
102 {
103     afs_sysctl = register_sysctl_table(fs_sysctl_table, 0);
104     if (!afs_sysctl)
105         return -1;
106
107     return 0;
108 }
109
110 void
111 osi_sysctl_clean()
112 {
113     if (afs_sysctl) {
114         unregister_sysctl_table(afs_sysctl);
115         afs_sysctl = NULL;
116     }
117 }
118
119 #endif /* CONFIG_SYSCTL */