sysctl.c 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /*
  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. #include <linux/kernel.h>
  25. #include <linux/mm.h>
  26. #include <linux/sysctl.h>
  27. #include <linux/init.h>
  28. #include <net/9p/9p.h>
  29. enum {
  30. P9_SYSCTL_NET = 487,
  31. P9_SYSCTL_DEBUG = 1,
  32. };
  33. static ctl_table p9_table[] = {
  34. #ifdef CONFIG_NET_9P_DEBUG
  35. {
  36. .ctl_name = P9_SYSCTL_DEBUG,
  37. .procname = "debug",
  38. .data = &p9_debug_level,
  39. .maxlen = sizeof(int),
  40. .mode = 0644,
  41. .proc_handler = &proc_dointvec
  42. },
  43. #endif
  44. { .ctl_name = 0 },
  45. };
  46. static ctl_table p9_net_table[] = {
  47. {
  48. .ctl_name = P9_SYSCTL_NET,
  49. .procname = "9p",
  50. .maxlen = 0,
  51. .mode = 0555,
  52. .child = p9_table,
  53. },
  54. { .ctl_name = 0 },
  55. };
  56. static ctl_table p9_ctl_table[] = {
  57. {
  58. .ctl_name = CTL_NET,
  59. .procname = "net",
  60. .maxlen = 0,
  61. .mode = 0555,
  62. .child = p9_net_table,
  63. },
  64. { .ctl_name = 0 },
  65. };
  66. static struct ctl_table_header *p9_table_header;
  67. int __init p9_sysctl_register(void)
  68. {
  69. p9_table_header = register_sysctl_table(p9_ctl_table);
  70. if (!p9_table_header)
  71. return -ENOMEM;
  72. return 0;
  73. }
  74. void __exit p9_sysctl_unregister(void)
  75. {
  76. unregister_sysctl_table(p9_table_header);
  77. }