blob: 8b61027a24eaed9a9ef5f44fb9b1404db3087b7d [file] [log] [blame]
Latchesar Ionkovbd238fb2007-07-10 17:57:28 -05001/*
2 * net/9p/sysctl.c
3 *
4 * 9P sysctl interface
5 *
6 * Copyright (C) 2007 by Latchesar Ionkov <lucho@ionkov.net>
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2
10 * as published by the Free Software Foundation.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to:
19 * Free Software Foundation
20 * 51 Franklin Street, Fifth Floor
21 * Boston, MA 02111-1301 USA
22 *
23 */
24
25#include <linux/kernel.h>
26#include <linux/mm.h>
27#include <linux/sysctl.h>
28#include <linux/init.h>
29#include <net/9p/9p.h>
30
Eric W. Biedermanb053c202007-07-21 12:53:19 -060031static struct ctl_table p9_table[] = {
Latchesar Ionkovbd238fb2007-07-10 17:57:28 -050032#ifdef CONFIG_NET_9P_DEBUG
33 {
Eric W. Biedermanb053c202007-07-21 12:53:19 -060034 .ctl_name = CTL_UNNUMBERED,
Latchesar Ionkovbd238fb2007-07-10 17:57:28 -050035 .procname = "debug",
36 .data = &p9_debug_level,
37 .maxlen = sizeof(int),
38 .mode = 0644,
39 .proc_handler = &proc_dointvec
40 },
41#endif
Eric W. Biedermanb053c202007-07-21 12:53:19 -060042 {},
Latchesar Ionkovbd238fb2007-07-10 17:57:28 -050043};
44
Eric W. Biedermanb053c202007-07-21 12:53:19 -060045static struct ctl_table p9_net_table[] = {
Latchesar Ionkovbd238fb2007-07-10 17:57:28 -050046 {
Eric W. Biedermanb053c202007-07-21 12:53:19 -060047 .ctl_name = CTL_UNNUMBERED,
Latchesar Ionkovbd238fb2007-07-10 17:57:28 -050048 .procname = "9p",
49 .maxlen = 0,
50 .mode = 0555,
51 .child = p9_table,
52 },
Eric W. Biedermanb053c202007-07-21 12:53:19 -060053 {},
Latchesar Ionkovbd238fb2007-07-10 17:57:28 -050054};
55
Eric W. Biedermanb053c202007-07-21 12:53:19 -060056static struct ctl_table p9_ctl_table[] = {
Latchesar Ionkovbd238fb2007-07-10 17:57:28 -050057 {
58 .ctl_name = CTL_NET,
59 .procname = "net",
60 .maxlen = 0,
61 .mode = 0555,
62 .child = p9_net_table,
63 },
Eric W. Biedermanb053c202007-07-21 12:53:19 -060064 {},
Latchesar Ionkovbd238fb2007-07-10 17:57:28 -050065};
66
67static struct ctl_table_header *p9_table_header;
68
69int __init p9_sysctl_register(void)
70{
71 p9_table_header = register_sysctl_table(p9_ctl_table);
72 if (!p9_table_header)
73 return -ENOMEM;
74
75 return 0;
76}
77
78void __exit p9_sysctl_unregister(void)
79{
80 unregister_sysctl_table(p9_table_header);
81}