1 /* 2 * sysctl_net_llc.c: sysctl interface to LLC net subsystem. 3 * 4 * Arnaldo Carvalho de Melo <acme@conectiva.com.br> 5 */ 6 7 #include <linux/mm.h> 8 #include <linux/init.h> 9 #include <linux/sysctl.h> 10 #include <net/llc.h> 11 12 #ifndef CONFIG_SYSCTL 13 #error This file should not be compiled without CONFIG_SYSCTL defined 14 #endif 15 16 static struct ctl_table llc2_timeout_table[] = { 17 { 18 .procname = "ack", 19 .data = &sysctl_llc2_ack_timeout, 20 .maxlen = sizeof(long), 21 .mode = 0644, 22 .proc_handler = proc_dointvec_jiffies, 23 }, 24 { 25 .procname = "busy", 26 .data = &sysctl_llc2_busy_timeout, 27 .maxlen = sizeof(long), 28 .mode = 0644, 29 .proc_handler = proc_dointvec_jiffies, 30 }, 31 { 32 .procname = "p", 33 .data = &sysctl_llc2_p_timeout, 34 .maxlen = sizeof(long), 35 .mode = 0644, 36 .proc_handler = proc_dointvec_jiffies, 37 }, 38 { 39 .procname = "rej", 40 .data = &sysctl_llc2_rej_timeout, 41 .maxlen = sizeof(long), 42 .mode = 0644, 43 .proc_handler = proc_dointvec_jiffies, 44 }, 45 { }, 46 }; 47 48 static struct ctl_table llc_station_table[] = { 49 { 50 .procname = "ack_timeout", 51 .data = &sysctl_llc_station_ack_timeout, 52 .maxlen = sizeof(long), 53 .mode = 0644, 54 .proc_handler = proc_dointvec_jiffies, 55 }, 56 { }, 57 }; 58 59 static struct ctl_table llc2_dir_timeout_table[] = { 60 { 61 .procname = "timeout", 62 .mode = 0555, 63 .child = llc2_timeout_table, 64 }, 65 { }, 66 }; 67 68 static struct ctl_table llc_table[] = { 69 { 70 .procname = "llc2", 71 .mode = 0555, 72 .child = llc2_dir_timeout_table, 73 }, 74 { 75 .procname = "station", 76 .mode = 0555, 77 .child = llc_station_table, 78 }, 79 { }, 80 }; 81 82 static struct ctl_path llc_path[] = { 83 { .procname = "net", }, 84 { .procname = "llc", }, 85 { } 86 }; 87 88 static struct ctl_table_header *llc_table_header; 89 90 int __init llc_sysctl_init(void) 91 { 92 llc_table_header = register_sysctl_paths(llc_path, llc_table); 93 94 return llc_table_header ? 0 : -ENOMEM; 95 } 96 97 void llc_sysctl_exit(void) 98 { 99 if (llc_table_header) { 100 unregister_sysctl_table(llc_table_header); 101 llc_table_header = NULL; 102 } 103 } 104