1 // SPDX-License-Identifier: GPL-2.0 1 // SPDX-License-Identifier: GPL-2.0 2 /* -*- linux-c -*- 2 /* -*- linux-c -*- 3 * sysctl_net_x25.c: sysctl interface to net X 3 * sysctl_net_x25.c: sysctl interface to net X.25 subsystem. 4 * 4 * 5 * Begun April 1, 1996, Mike Shaver. 5 * Begun April 1, 1996, Mike Shaver. 6 * Added /proc/sys/net/x25 directory entry (em 6 * Added /proc/sys/net/x25 directory entry (empty =) ). [MS] 7 */ 7 */ 8 8 9 #include <linux/sysctl.h> 9 #include <linux/sysctl.h> 10 #include <linux/skbuff.h> 10 #include <linux/skbuff.h> 11 #include <linux/socket.h> 11 #include <linux/socket.h> 12 #include <linux/netdevice.h> 12 #include <linux/netdevice.h> 13 #include <linux/init.h> 13 #include <linux/init.h> 14 #include <net/x25.h> 14 #include <net/x25.h> 15 15 16 static int min_timer[] = { 1 * HZ }; 16 static int min_timer[] = { 1 * HZ }; 17 static int max_timer[] = { 300 * HZ }; 17 static int max_timer[] = { 300 * HZ }; 18 18 19 static struct ctl_table_header *x25_table_head 19 static struct ctl_table_header *x25_table_header; 20 20 21 static struct ctl_table x25_table[] = { 21 static struct ctl_table x25_table[] = { 22 { 22 { 23 .procname = "restart_reque 23 .procname = "restart_request_timeout", 24 .data = &sysctl_x25_re 24 .data = &sysctl_x25_restart_request_timeout, 25 .maxlen = sizeof(int), 25 .maxlen = sizeof(int), 26 .mode = 0644, 26 .mode = 0644, 27 .proc_handler = proc_dointvec_ 27 .proc_handler = proc_dointvec_minmax, 28 .extra1 = &min_timer, 28 .extra1 = &min_timer, 29 .extra2 = &max_timer, 29 .extra2 = &max_timer, 30 }, 30 }, 31 { 31 { 32 .procname = "call_request_ 32 .procname = "call_request_timeout", 33 .data = &sysctl_x25_ca 33 .data = &sysctl_x25_call_request_timeout, 34 .maxlen = sizeof(int), 34 .maxlen = sizeof(int), 35 .mode = 0644, 35 .mode = 0644, 36 .proc_handler = proc_dointvec_ 36 .proc_handler = proc_dointvec_minmax, 37 .extra1 = &min_timer, 37 .extra1 = &min_timer, 38 .extra2 = &max_timer, 38 .extra2 = &max_timer, 39 }, 39 }, 40 { 40 { 41 .procname = "reset_request 41 .procname = "reset_request_timeout", 42 .data = &sysctl_x25_re 42 .data = &sysctl_x25_reset_request_timeout, 43 .maxlen = sizeof(int), 43 .maxlen = sizeof(int), 44 .mode = 0644, 44 .mode = 0644, 45 .proc_handler = proc_dointvec_ 45 .proc_handler = proc_dointvec_minmax, 46 .extra1 = &min_timer, 46 .extra1 = &min_timer, 47 .extra2 = &max_timer, 47 .extra2 = &max_timer, 48 }, 48 }, 49 { 49 { 50 .procname = "clear_request 50 .procname = "clear_request_timeout", 51 .data = &sysctl_x25_cl 51 .data = &sysctl_x25_clear_request_timeout, 52 .maxlen = sizeof(int), 52 .maxlen = sizeof(int), 53 .mode = 0644, 53 .mode = 0644, 54 .proc_handler = proc_dointvec_ 54 .proc_handler = proc_dointvec_minmax, 55 .extra1 = &min_timer, 55 .extra1 = &min_timer, 56 .extra2 = &max_timer, 56 .extra2 = &max_timer, 57 }, 57 }, 58 { 58 { 59 .procname = "acknowledgeme 59 .procname = "acknowledgement_hold_back_timeout", 60 .data = &sysctl_x25_ac 60 .data = &sysctl_x25_ack_holdback_timeout, 61 .maxlen = sizeof(int), 61 .maxlen = sizeof(int), 62 .mode = 0644, 62 .mode = 0644, 63 .proc_handler = proc_dointvec_ 63 .proc_handler = proc_dointvec_minmax, 64 .extra1 = &min_timer, 64 .extra1 = &min_timer, 65 .extra2 = &max_timer, 65 .extra2 = &max_timer, 66 }, 66 }, 67 { 67 { 68 .procname = "x25_forward", 68 .procname = "x25_forward", 69 .data = &sysctl_x25_fo 69 .data = &sysctl_x25_forward, 70 .maxlen = sizeof(int), 70 .maxlen = sizeof(int), 71 .mode = 0644, 71 .mode = 0644, 72 .proc_handler = proc_dointvec, 72 .proc_handler = proc_dointvec, 73 }, 73 }, 74 }; 74 }; 75 75 76 int __init x25_register_sysctl(void) 76 int __init x25_register_sysctl(void) 77 { 77 { 78 x25_table_header = register_net_sysctl 78 x25_table_header = register_net_sysctl(&init_net, "net/x25", x25_table); 79 if (!x25_table_header) 79 if (!x25_table_header) 80 return -ENOMEM; 80 return -ENOMEM; 81 return 0; 81 return 0; 82 } 82 } 83 83 84 void x25_unregister_sysctl(void) 84 void x25_unregister_sysctl(void) 85 { 85 { 86 unregister_net_sysctl_table(x25_table_ 86 unregister_net_sysctl_table(x25_table_header); 87 } 87 } 88 88
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.