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 } 89