1 /*
2  * sysctl_net_atalk.c: sysctl interface to net AppleTalk subsystem.
3  *
4  * Begun April 1, 1996, Mike Shaver.
5  * Added /proc/sys/net/atalk directory entry (empty =) ). [MS]
6  * Dynamic registration, added aarp entries. (5/30/97 Chris Horn)
7  */
8 
9 #include <linux/sysctl.h>
10 #include <net/sock.h>
11 #include <linux/atalk.h>
12 
13 static struct ctl_table atalk_table[] = {
14 	{
15 		.ctl_name	= NET_ATALK_AARP_EXPIRY_TIME,
16 		.procname	= "aarp-expiry-time",
17 		.data		= &sysctl_aarp_expiry_time,
18 		.maxlen		= sizeof(int),
19 		.mode		= 0644,
20 		.proc_handler	= &proc_dointvec_jiffies,
21 		.strategy	= &sysctl_jiffies,
22 	},
23 	{
24 		.ctl_name	= NET_ATALK_AARP_TICK_TIME,
25 		.procname	= "aarp-tick-time",
26 		.data		= &sysctl_aarp_tick_time,
27 		.maxlen		= sizeof(int),
28 		.mode		= 0644,
29 		.proc_handler	= &proc_dointvec_jiffies,
30 		.strategy	= &sysctl_jiffies,
31 	},
32 	{
33 		.ctl_name	= NET_ATALK_AARP_RETRANSMIT_LIMIT,
34 		.procname	= "aarp-retransmit-limit",
35 		.data		= &sysctl_aarp_retransmit_limit,
36 		.maxlen		= sizeof(int),
37 		.mode		= 0644,
38 		.proc_handler	= &proc_dointvec,
39 	},
40 	{
41 		.ctl_name	= NET_ATALK_AARP_RESOLVE_TIME,
42 		.procname	= "aarp-resolve-time",
43 		.data		= &sysctl_aarp_resolve_time,
44 		.maxlen		= sizeof(int),
45 		.mode		= 0644,
46 		.proc_handler	= &proc_dointvec_jiffies,
47 		.strategy	= &sysctl_jiffies,
48 	},
49 	{ 0 },
50 };
51 
52 static struct ctl_path atalk_path[] = {
53 	{ .procname = "net", .ctl_name = CTL_NET, },
54 	{ .procname = "appletalk", .ctl_name = NET_ATALK, },
55 	{ }
56 };
57 
58 static struct ctl_table_header *atalk_table_header;
59 
60 void atalk_register_sysctl(void)
61 {
62 	atalk_table_header = register_sysctl_paths(atalk_path, atalk_table);
63 }
64 
65 void atalk_unregister_sysctl(void)
66 {
67 	unregister_sysctl_table(atalk_table_header);
68 }
69