]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | /* -*- linux-c -*- |
2 | * sysctl_net_x25.c: sysctl interface to net X.25 subsystem. | |
3 | * | |
4 | * Begun April 1, 1996, Mike Shaver. | |
5 | * Added /proc/sys/net/x25 directory entry (empty =) ). [MS] | |
6 | */ | |
7 | ||
8 | #include <linux/sysctl.h> | |
9 | #include <linux/skbuff.h> | |
10 | #include <linux/socket.h> | |
11 | #include <linux/netdevice.h> | |
12 | #include <linux/init.h> | |
13 | #include <net/x25.h> | |
14 | ||
15 | static int min_timer[] = { 1 * HZ }; | |
16 | static int max_timer[] = { 300 * HZ }; | |
17 | ||
18 | static struct ctl_table_header *x25_table_header; | |
19 | ||
20 | static struct ctl_table x25_table[] = { | |
f8e1d201 | 21 | { |
1da177e4 LT |
22 | .ctl_name = NET_X25_RESTART_REQUEST_TIMEOUT, |
23 | .procname = "restart_request_timeout", | |
24 | .data = &sysctl_x25_restart_request_timeout, | |
25 | .maxlen = sizeof(int), | |
26 | .mode = 0644, | |
27 | .proc_handler = &proc_dointvec_minmax, | |
28 | .strategy = &sysctl_intvec, | |
29 | .extra1 = &min_timer, | |
30 | .extra2 = &max_timer, | |
31 | }, | |
f8e1d201 | 32 | { |
1da177e4 LT |
33 | .ctl_name = NET_X25_CALL_REQUEST_TIMEOUT, |
34 | .procname = "call_request_timeout", | |
35 | .data = &sysctl_x25_call_request_timeout, | |
36 | .maxlen = sizeof(int), | |
37 | .mode = 0644, | |
38 | .proc_handler = &proc_dointvec_minmax, | |
39 | .strategy = &sysctl_intvec, | |
40 | .extra1 = &min_timer, | |
41 | .extra2 = &max_timer, | |
42 | }, | |
f8e1d201 | 43 | { |
1da177e4 LT |
44 | .ctl_name = NET_X25_RESET_REQUEST_TIMEOUT, |
45 | .procname = "reset_request_timeout", | |
46 | .data = &sysctl_x25_reset_request_timeout, | |
47 | .maxlen = sizeof(int), | |
48 | .mode = 0644, | |
49 | .proc_handler = &proc_dointvec_minmax, | |
50 | .strategy = &sysctl_intvec, | |
51 | .extra1 = &min_timer, | |
52 | .extra2 = &max_timer, | |
53 | }, | |
f8e1d201 | 54 | { |
1da177e4 LT |
55 | .ctl_name = NET_X25_CLEAR_REQUEST_TIMEOUT, |
56 | .procname = "clear_request_timeout", | |
57 | .data = &sysctl_x25_clear_request_timeout, | |
58 | .maxlen = sizeof(int), | |
59 | .mode = 0644, | |
60 | .proc_handler = &proc_dointvec_minmax, | |
61 | .strategy = &sysctl_intvec, | |
62 | .extra1 = &min_timer, | |
63 | .extra2 = &max_timer, | |
64 | }, | |
f8e1d201 | 65 | { |
1da177e4 LT |
66 | .ctl_name = NET_X25_ACK_HOLD_BACK_TIMEOUT, |
67 | .procname = "acknowledgement_hold_back_timeout", | |
68 | .data = &sysctl_x25_ack_holdback_timeout, | |
69 | .maxlen = sizeof(int), | |
70 | .mode = 0644, | |
71 | .proc_handler = &proc_dointvec_minmax, | |
72 | .strategy = &sysctl_intvec, | |
73 | .extra1 = &min_timer, | |
74 | .extra2 = &max_timer, | |
75 | }, | |
39e21c0d AH |
76 | { |
77 | .ctl_name = NET_X25_FORWARD, | |
78 | .procname = "x25_forward", | |
79 | .data = &sysctl_x25_forward, | |
80 | .maxlen = sizeof(int), | |
81 | .mode = 0644, | |
82 | .proc_handler = &proc_dointvec, | |
83 | }, | |
1da177e4 LT |
84 | { 0, }, |
85 | }; | |
86 | ||
87 | static struct ctl_table x25_dir_table[] = { | |
88 | { | |
89 | .ctl_name = NET_X25, | |
90 | .procname = "x25", | |
91 | .mode = 0555, | |
92 | .child = x25_table, | |
93 | }, | |
94 | { 0, }, | |
95 | }; | |
96 | ||
97 | static struct ctl_table x25_root_table[] = { | |
98 | { | |
99 | .ctl_name = CTL_NET, | |
100 | .procname = "net", | |
101 | .mode = 0555, | |
102 | .child = x25_dir_table, | |
103 | }, | |
104 | { 0, }, | |
105 | }; | |
106 | ||
107 | void __init x25_register_sysctl(void) | |
108 | { | |
0b4d4147 | 109 | x25_table_header = register_sysctl_table(x25_root_table); |
1da177e4 LT |
110 | } |
111 | ||
112 | void x25_unregister_sysctl(void) | |
113 | { | |
114 | unregister_sysctl_table(x25_table_header); | |
115 | } |