Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-next
[sfrench/cifs-2.6.git] / net / x25 / sysctl_net_x25.c
1 // SPDX-License-Identifier: GPL-2.0
2 /* -*- linux-c -*-
3  * sysctl_net_x25.c: sysctl interface to net X.25 subsystem.
4  *
5  * Begun April 1, 1996, Mike Shaver.
6  * Added /proc/sys/net/x25 directory entry (empty =) ). [MS]
7  */
8
9 #include <linux/sysctl.h>
10 #include <linux/skbuff.h>
11 #include <linux/socket.h>
12 #include <linux/netdevice.h>
13 #include <linux/init.h>
14 #include <net/x25.h>
15
16 static int min_timer[] = {   1 * HZ };
17 static int max_timer[] = { 300 * HZ };
18
19 static struct ctl_table_header *x25_table_header;
20
21 static struct ctl_table x25_table[] = {
22         {
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                 .extra1 =       &min_timer,
29                 .extra2 =       &max_timer,
30         },
31         {
32                 .procname =     "call_request_timeout",
33                 .data =         &sysctl_x25_call_request_timeout,
34                 .maxlen =       sizeof(int),
35                 .mode =         0644,
36                 .proc_handler = proc_dointvec_minmax,
37                 .extra1 =       &min_timer,
38                 .extra2 =       &max_timer,
39         },
40         {
41                 .procname =     "reset_request_timeout",
42                 .data =         &sysctl_x25_reset_request_timeout,
43                 .maxlen =       sizeof(int),
44                 .mode =         0644,
45                 .proc_handler = proc_dointvec_minmax,
46                 .extra1 =       &min_timer,
47                 .extra2 =       &max_timer,
48         },
49         {
50                 .procname =     "clear_request_timeout",
51                 .data =         &sysctl_x25_clear_request_timeout,
52                 .maxlen =       sizeof(int),
53                 .mode =         0644,
54                 .proc_handler = proc_dointvec_minmax,
55                 .extra1 =       &min_timer,
56                 .extra2 =       &max_timer,
57         },
58         {
59                 .procname =     "acknowledgement_hold_back_timeout",
60                 .data =         &sysctl_x25_ack_holdback_timeout,
61                 .maxlen =       sizeof(int),
62                 .mode =         0644,
63                 .proc_handler = proc_dointvec_minmax,
64                 .extra1 =       &min_timer,
65                 .extra2 =       &max_timer,
66         },
67         {
68                 .procname =     "x25_forward",
69                 .data =         &sysctl_x25_forward,
70                 .maxlen =       sizeof(int),
71                 .mode =         0644,
72                 .proc_handler = proc_dointvec,
73         },
74         { },
75 };
76
77 int __init x25_register_sysctl(void)
78 {
79         x25_table_header = register_net_sysctl(&init_net, "net/x25", x25_table);
80         if (!x25_table_header)
81                 return -ENOMEM;
82         return 0;
83 }
84
85 void x25_unregister_sysctl(void)
86 {
87         unregister_net_sysctl_table(x25_table_header);
88 }