]>
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 <[email protected]> |
5 | */ | |
6 | ||
590232a7 ACM |
7 | #include <linux/mm.h> |
8 | #include <linux/init.h> | |
9 | #include <linux/sysctl.h> | |
5dd3df10 | 10 | #include <net/net_namespace.h> |
2928c19e | 11 | #include <net/llc.h> |
590232a7 ACM |
12 | |
13 | #ifndef CONFIG_SYSCTL | |
14 | #error This file should not be compiled without CONFIG_SYSCTL defined | |
15 | #endif | |
16 | ||
590232a7 ACM |
17 | static struct ctl_table llc2_timeout_table[] = { |
18 | { | |
590232a7 ACM |
19 | .procname = "ack", |
20 | .data = &sysctl_llc2_ack_timeout, | |
21 | .maxlen = sizeof(long), | |
22 | .mode = 0644, | |
6d9f239a | 23 | .proc_handler = proc_dointvec_jiffies, |
590232a7 ACM |
24 | }, |
25 | { | |
590232a7 ACM |
26 | .procname = "busy", |
27 | .data = &sysctl_llc2_busy_timeout, | |
28 | .maxlen = sizeof(long), | |
29 | .mode = 0644, | |
6d9f239a | 30 | .proc_handler = proc_dointvec_jiffies, |
590232a7 ACM |
31 | }, |
32 | { | |
590232a7 ACM |
33 | .procname = "p", |
34 | .data = &sysctl_llc2_p_timeout, | |
35 | .maxlen = sizeof(long), | |
36 | .mode = 0644, | |
6d9f239a | 37 | .proc_handler = proc_dointvec_jiffies, |
590232a7 ACM |
38 | }, |
39 | { | |
590232a7 ACM |
40 | .procname = "rej", |
41 | .data = &sysctl_llc2_rej_timeout, | |
42 | .maxlen = sizeof(long), | |
43 | .mode = 0644, | |
6d9f239a | 44 | .proc_handler = proc_dointvec_jiffies, |
590232a7 | 45 | }, |
f8572d8f | 46 | { }, |
590232a7 ACM |
47 | }; |
48 | ||
49 | static struct ctl_table llc_station_table[] = { | |
f8572d8f | 50 | { }, |
590232a7 ACM |
51 | }; |
52 | ||
64fb3010 EB |
53 | static struct ctl_table_header *llc2_timeout_header; |
54 | static struct ctl_table_header *llc_station_header; | |
590232a7 ACM |
55 | |
56 | int __init llc_sysctl_init(void) | |
57 | { | |
64fb3010 EB |
58 | llc2_timeout_header = register_net_sysctl(&init_net, "net/llc/llc2/timeout", llc2_timeout_table); |
59 | llc_station_header = register_net_sysctl(&init_net, "net/llc/station", llc_station_table); | |
590232a7 | 60 | |
64fb3010 EB |
61 | if (!llc2_timeout_header || !llc_station_header) { |
62 | llc_sysctl_exit(); | |
63 | return -ENOMEM; | |
64 | } | |
65 | return 0; | |
590232a7 ACM |
66 | } |
67 | ||
68 | void llc_sysctl_exit(void) | |
69 | { | |
64fb3010 EB |
70 | if (llc2_timeout_header) { |
71 | unregister_net_sysctl_table(llc2_timeout_header); | |
72 | llc2_timeout_header = NULL; | |
73 | } | |
74 | if (llc_station_header) { | |
75 | unregister_net_sysctl_table(llc_station_header); | |
76 | llc_station_header = NULL; | |
590232a7 ACM |
77 | } |
78 | } |