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[] = { 21 { 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 }, 32 { 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 }, 43 { 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 }, 54 { 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 }, 65 { 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 }, 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 }, 84 { 0, }, 85 }; 86 87 static struct ctl_path x25_path[] = { 88 { .procname = "net", .ctl_name = CTL_NET, }, 89 { .procname = "x25", .ctl_name = NET_X25, }, 90 { } 91 }; 92 93 void __init x25_register_sysctl(void) 94 { 95 x25_table_header = register_sysctl_paths(x25_path, x25_table); 96 } 97 98 void x25_unregister_sysctl(void) 99 { 100 unregister_sysctl_table(x25_table_header); 101 } 102