Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 /* -*- linux-c -*-
0003  * sysctl_net_x25.c: sysctl interface to net X.25 subsystem.
0004  *
0005  * Begun April 1, 1996, Mike Shaver.
0006  * Added /proc/sys/net/x25 directory entry (empty =) ). [MS]
0007  */
0008 
0009 #include <linux/sysctl.h>
0010 #include <linux/skbuff.h>
0011 #include <linux/socket.h>
0012 #include <linux/netdevice.h>
0013 #include <linux/init.h>
0014 #include <net/x25.h>
0015 
0016 static int min_timer[] = {   1 * HZ };
0017 static int max_timer[] = { 300 * HZ };
0018 
0019 static struct ctl_table_header *x25_table_header;
0020 
0021 static struct ctl_table x25_table[] = {
0022     {
0023         .procname = "restart_request_timeout",
0024         .data =     &sysctl_x25_restart_request_timeout,
0025         .maxlen =   sizeof(int),
0026         .mode =     0644,
0027         .proc_handler = proc_dointvec_minmax,
0028         .extra1 =   &min_timer,
0029         .extra2 =   &max_timer,
0030     },
0031     {
0032         .procname = "call_request_timeout",
0033         .data =     &sysctl_x25_call_request_timeout,
0034         .maxlen =   sizeof(int),
0035         .mode =     0644,
0036         .proc_handler = proc_dointvec_minmax,
0037         .extra1 =   &min_timer,
0038         .extra2 =   &max_timer,
0039     },
0040     {
0041         .procname = "reset_request_timeout",
0042         .data =     &sysctl_x25_reset_request_timeout,
0043         .maxlen =   sizeof(int),
0044         .mode =     0644,
0045         .proc_handler = proc_dointvec_minmax,
0046         .extra1 =   &min_timer,
0047         .extra2 =   &max_timer,
0048     },
0049     {
0050         .procname = "clear_request_timeout",
0051         .data =     &sysctl_x25_clear_request_timeout,
0052         .maxlen =   sizeof(int),
0053         .mode =     0644,
0054         .proc_handler = proc_dointvec_minmax,
0055         .extra1 =   &min_timer,
0056         .extra2 =   &max_timer,
0057     },
0058     {
0059         .procname = "acknowledgement_hold_back_timeout",
0060         .data =     &sysctl_x25_ack_holdback_timeout,
0061         .maxlen =   sizeof(int),
0062         .mode =     0644,
0063         .proc_handler = proc_dointvec_minmax,
0064         .extra1 =   &min_timer,
0065         .extra2 =   &max_timer,
0066     },
0067     {
0068         .procname = "x25_forward",
0069         .data =     &sysctl_x25_forward,
0070         .maxlen =   sizeof(int),
0071         .mode =     0644,
0072         .proc_handler = proc_dointvec,
0073     },
0074     { },
0075 };
0076 
0077 int __init x25_register_sysctl(void)
0078 {
0079     x25_table_header = register_net_sysctl(&init_net, "net/x25", x25_table);
0080     if (!x25_table_header)
0081         return -ENOMEM;
0082     return 0;
0083 }
0084 
0085 void x25_unregister_sysctl(void)
0086 {
0087     unregister_net_sysctl_table(x25_table_header);
0088 }