sysctl_net_llc.c revision f8572d8f2a2ba75408b97dc24ef47c83671795d7
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 16static 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 48static 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 59static struct ctl_table llc2_dir_timeout_table[] = { 60 { 61 .procname = "timeout", 62 .mode = 0555, 63 .child = llc2_timeout_table, 64 }, 65 { }, 66}; 67 68static 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 82static struct ctl_path llc_path[] = { 83 { .procname = "net", }, 84 { .procname = "llc", }, 85 { } 86}; 87 88static struct ctl_table_header *llc_table_header; 89 90int __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 97void 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