Commit | Line | Data |
---|---|---|
590232a7 ACM |
1 | /* |
2 | * sysctl_net_llc.c: sysctl interface to LLC net subsystem. | |
d57b1869 | 3 | * |
590232a7 ACM |
4 | * Arnaldo Carvalho de Melo <acme@conectiva.com.br> |
5 | */ | |
6 | ||
590232a7 ACM |
7 | #include <linux/mm.h> |
8 | #include <linux/init.h> | |
9 | #include <linux/sysctl.h> | |
2928c19e | 10 | #include <net/llc.h> |
590232a7 ACM |
11 | |
12 | #ifndef CONFIG_SYSCTL | |
13 | #error This file should not be compiled without CONFIG_SYSCTL defined | |
14 | #endif | |
15 | ||
590232a7 ACM |
16 | static struct ctl_table llc2_timeout_table[] = { |
17 | { | |
590232a7 ACM |
18 | .procname = "ack", |
19 | .data = &sysctl_llc2_ack_timeout, | |
20 | .maxlen = sizeof(long), | |
21 | .mode = 0644, | |
6d9f239a | 22 | .proc_handler = proc_dointvec_jiffies, |
590232a7 ACM |
23 | }, |
24 | { | |
590232a7 ACM |
25 | .procname = "busy", |
26 | .data = &sysctl_llc2_busy_timeout, | |
27 | .maxlen = sizeof(long), | |
28 | .mode = 0644, | |
6d9f239a | 29 | .proc_handler = proc_dointvec_jiffies, |
590232a7 ACM |
30 | }, |
31 | { | |
590232a7 ACM |
32 | .procname = "p", |
33 | .data = &sysctl_llc2_p_timeout, | |
34 | .maxlen = sizeof(long), | |
35 | .mode = 0644, | |
6d9f239a | 36 | .proc_handler = proc_dointvec_jiffies, |
590232a7 ACM |
37 | }, |
38 | { | |
590232a7 ACM |
39 | .procname = "rej", |
40 | .data = &sysctl_llc2_rej_timeout, | |
41 | .maxlen = sizeof(long), | |
42 | .mode = 0644, | |
6d9f239a | 43 | .proc_handler = proc_dointvec_jiffies, |
590232a7 | 44 | }, |
f8572d8f | 45 | { }, |
590232a7 ACM |
46 | }; |
47 | ||
48 | static struct ctl_table llc_station_table[] = { | |
49 | { | |
590232a7 ACM |
50 | .procname = "ack_timeout", |
51 | .data = &sysctl_llc_station_ack_timeout, | |
52 | .maxlen = sizeof(long), | |
53 | .mode = 0644, | |
6d9f239a | 54 | .proc_handler = proc_dointvec_jiffies, |
590232a7 | 55 | }, |
f8572d8f | 56 | { }, |
590232a7 ACM |
57 | }; |
58 | ||
59 | static struct ctl_table llc2_dir_timeout_table[] = { | |
60 | { | |
590232a7 ACM |
61 | .procname = "timeout", |
62 | .mode = 0555, | |
63 | .child = llc2_timeout_table, | |
d57b1869 | 64 | }, |
f8572d8f | 65 | { }, |
590232a7 ACM |
66 | }; |
67 | ||
68 | static struct ctl_table llc_table[] = { | |
69 | { | |
590232a7 ACM |
70 | .procname = "llc2", |
71 | .mode = 0555, | |
72 | .child = llc2_dir_timeout_table, | |
d57b1869 | 73 | }, |
590232a7 | 74 | { |
590232a7 ACM |
75 | .procname = "station", |
76 | .mode = 0555, | |
77 | .child = llc_station_table, | |
78 | }, | |
f8572d8f | 79 | { }, |
590232a7 ACM |
80 | }; |
81 | ||
b5ccd792 | 82 | static struct ctl_path llc_path[] = { |
f8572d8f EB |
83 | { .procname = "net", }, |
84 | { .procname = "llc", }, | |
b5ccd792 | 85 | { } |
590232a7 ACM |
86 | }; |
87 | ||
88 | static struct ctl_table_header *llc_table_header; | |
89 | ||
90 | int __init llc_sysctl_init(void) | |
91 | { | |
b5ccd792 | 92 | llc_table_header = register_sysctl_paths(llc_path, llc_table); |
590232a7 ACM |
93 | |
94 | return llc_table_header ? 0 : -ENOMEM; | |
95 | } | |
96 | ||
97 | void llc_sysctl_exit(void) | |
98 | { | |
99 | if (llc_table_header) { | |
100 | unregister_sysctl_table(llc_table_header); | |
101 | llc_table_header = NULL; | |
102 | } | |
103 | } |