sysctl.c 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. /*
  2. * net/tipc/sysctl.c: sysctl interface to TIPC subsystem
  3. *
  4. * Copyright (c) 2013, Wind River Systems
  5. * All rights reserved.
  6. *
  7. * Redistribution and use in source and binary forms, with or without
  8. * modification, are permitted provided that the following conditions are met:
  9. *
  10. * 1. Redistributions of source code must retain the above copyright
  11. * notice, this list of conditions and the following disclaimer.
  12. * 2. Redistributions in binary form must reproduce the above copyright
  13. * notice, this list of conditions and the following disclaimer in the
  14. * documentation and/or other materials provided with the distribution.
  15. * 3. Neither the names of the copyright holders nor the names of its
  16. * contributors may be used to endorse or promote products derived from
  17. * this software without specific prior written permission.
  18. *
  19. * Alternatively, this software may be distributed under the terms of the
  20. * GNU General Public License ("GPL") version 2 as published by the Free
  21. * Software Foundation.
  22. *
  23. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  24. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  25. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  26. * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  27. * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  28. * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  29. * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  30. * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  31. * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  32. * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  33. * POSSIBILITY OF SUCH DAMAGE.
  34. */
  35. #include "core.h"
  36. #include "trace.h"
  37. #include "crypto.h"
  38. #include "bcast.h"
  39. #include <linux/sysctl.h>
  40. static struct ctl_table_header *tipc_ctl_hdr;
  41. static struct ctl_table tipc_table[] = {
  42. {
  43. .procname = "tipc_rmem",
  44. .data = &sysctl_tipc_rmem,
  45. .maxlen = sizeof(sysctl_tipc_rmem),
  46. .mode = 0644,
  47. .proc_handler = proc_dointvec_minmax,
  48. .extra1 = SYSCTL_ONE,
  49. },
  50. {
  51. .procname = "named_timeout",
  52. .data = &sysctl_tipc_named_timeout,
  53. .maxlen = sizeof(sysctl_tipc_named_timeout),
  54. .mode = 0644,
  55. .proc_handler = proc_dointvec_minmax,
  56. .extra1 = SYSCTL_ZERO,
  57. },
  58. {
  59. .procname = "sk_filter",
  60. .data = &sysctl_tipc_sk_filter,
  61. .maxlen = sizeof(sysctl_tipc_sk_filter),
  62. .mode = 0644,
  63. .proc_handler = proc_doulongvec_minmax,
  64. },
  65. #ifdef CONFIG_TIPC_CRYPTO
  66. {
  67. .procname = "max_tfms",
  68. .data = &sysctl_tipc_max_tfms,
  69. .maxlen = sizeof(sysctl_tipc_max_tfms),
  70. .mode = 0644,
  71. .proc_handler = proc_dointvec_minmax,
  72. .extra1 = SYSCTL_ONE,
  73. },
  74. {
  75. .procname = "key_exchange_enabled",
  76. .data = &sysctl_tipc_key_exchange_enabled,
  77. .maxlen = sizeof(sysctl_tipc_key_exchange_enabled),
  78. .mode = 0644,
  79. .proc_handler = proc_dointvec_minmax,
  80. .extra1 = SYSCTL_ZERO,
  81. .extra2 = SYSCTL_ONE,
  82. },
  83. #endif
  84. {
  85. .procname = "bc_retruni",
  86. .data = &sysctl_tipc_bc_retruni,
  87. .maxlen = sizeof(sysctl_tipc_bc_retruni),
  88. .mode = 0644,
  89. .proc_handler = proc_doulongvec_minmax,
  90. },
  91. {}
  92. };
  93. int tipc_register_sysctl(void)
  94. {
  95. tipc_ctl_hdr = register_net_sysctl(&init_net, "net/tipc", tipc_table);
  96. if (tipc_ctl_hdr == NULL)
  97. return -ENOMEM;
  98. return 0;
  99. }
  100. void tipc_unregister_sysctl(void)
  101. {
  102. unregister_net_sysctl_table(tipc_ctl_hdr);
  103. }