lpfc_attr.h 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. /*******************************************************************
  2. * This file is part of the Emulex Linux Device Driver for *
  3. * Fibre Channel Host Bus Adapters. *
  4. * Copyright (C) 2017 Broadcom. All Rights Reserved. The term *
  5. * “Broadcom” refers to Broadcom Limited and/or its subsidiaries. *
  6. * Copyright (C) 2004-2016 Emulex. All rights reserved. *
  7. * EMULEX and SLI are trademarks of Emulex. *
  8. * www.broadcom.com *
  9. * Portions Copyright (C) 2004-2005 Christoph Hellwig *
  10. * *
  11. * This program is free software; you can redistribute it and/or *
  12. * modify it under the terms of version 2 of the GNU General *
  13. * Public License as published by the Free Software Foundation. *
  14. * This program is distributed in the hope that it will be useful. *
  15. * ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND *
  16. * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, *
  17. * FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT, ARE *
  18. * DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD *
  19. * TO BE LEGALLY INVALID. See the GNU General Public License for *
  20. * more details, a copy of which can be found in the file COPYING *
  21. * included with this package. *
  22. *******************************************************************/
  23. #define LPFC_ATTR(name, defval, minval, maxval, desc) \
  24. static uint lpfc_##name = defval;\
  25. module_param(lpfc_##name, uint, S_IRUGO);\
  26. MODULE_PARM_DESC(lpfc_##name, desc);\
  27. lpfc_param_init(name, defval, minval, maxval)
  28. #define LPFC_ATTR_R(name, defval, minval, maxval, desc) \
  29. static uint lpfc_##name = defval;\
  30. module_param(lpfc_##name, uint, S_IRUGO);\
  31. MODULE_PARM_DESC(lpfc_##name, desc);\
  32. lpfc_param_show(name)\
  33. lpfc_param_init(name, defval, minval, maxval)\
  34. static DEVICE_ATTR(lpfc_##name, S_IRUGO, lpfc_##name##_show, NULL)
  35. #define LPFC_ATTR_RW(name, defval, minval, maxval, desc) \
  36. static uint lpfc_##name = defval;\
  37. module_param(lpfc_##name, uint, S_IRUGO);\
  38. MODULE_PARM_DESC(lpfc_##name, desc);\
  39. lpfc_param_show(name)\
  40. lpfc_param_init(name, defval, minval, maxval)\
  41. lpfc_param_set(name, defval, minval, maxval)\
  42. lpfc_param_store(name)\
  43. static DEVICE_ATTR(lpfc_##name, S_IRUGO | S_IWUSR,\
  44. lpfc_##name##_show, lpfc_##name##_store)
  45. #define LPFC_BBCR_ATTR_RW(name, defval, minval, maxval, desc) \
  46. static uint lpfc_##name = defval;\
  47. module_param(lpfc_##name, uint, 0444);\
  48. MODULE_PARM_DESC(lpfc_##name, desc);\
  49. lpfc_param_show(name)\
  50. lpfc_param_init(name, defval, minval, maxval)\
  51. lpfc_param_store(name)\
  52. static DEVICE_ATTR(lpfc_##name, 0444 | 0644,\
  53. lpfc_##name##_show, lpfc_##name##_store)
  54. #define LPFC_ATTR_HEX_R(name, defval, minval, maxval, desc) \
  55. static uint lpfc_##name = defval;\
  56. module_param(lpfc_##name, uint, S_IRUGO);\
  57. MODULE_PARM_DESC(lpfc_##name, desc);\
  58. lpfc_param_hex_show(name)\
  59. lpfc_param_init(name, defval, minval, maxval)\
  60. static DEVICE_ATTR(lpfc_##name, S_IRUGO, lpfc_##name##_show, NULL)
  61. #define LPFC_ATTR_HEX_RW(name, defval, minval, maxval, desc) \
  62. static uint lpfc_##name = defval;\
  63. module_param(lpfc_##name, uint, S_IRUGO);\
  64. MODULE_PARM_DESC(lpfc_##name, desc);\
  65. lpfc_param_hex_show(name)\
  66. lpfc_param_init(name, defval, minval, maxval)\
  67. lpfc_param_set(name, defval, minval, maxval)\
  68. lpfc_param_store(name)\
  69. static DEVICE_ATTR(lpfc_##name, S_IRUGO | S_IWUSR,\
  70. lpfc_##name##_show, lpfc_##name##_store)
  71. #define LPFC_VPORT_ATTR(name, defval, minval, maxval, desc) \
  72. static uint lpfc_##name = defval;\
  73. module_param(lpfc_##name, uint, S_IRUGO);\
  74. MODULE_PARM_DESC(lpfc_##name, desc);\
  75. lpfc_vport_param_init(name, defval, minval, maxval)
  76. #define LPFC_VPORT_ATTR_R(name, defval, minval, maxval, desc) \
  77. static uint lpfc_##name = defval;\
  78. module_param(lpfc_##name, uint, S_IRUGO);\
  79. MODULE_PARM_DESC(lpfc_##name, desc);\
  80. lpfc_vport_param_show(name)\
  81. lpfc_vport_param_init(name, defval, minval, maxval)\
  82. static DEVICE_ATTR(lpfc_##name, S_IRUGO, lpfc_##name##_show, NULL)
  83. #define LPFC_VPORT_ULL_ATTR_R(name, defval, minval, maxval, desc) \
  84. static uint64_t lpfc_##name = defval;\
  85. module_param(lpfc_##name, ullong, S_IRUGO);\
  86. MODULE_PARM_DESC(lpfc_##name, desc);\
  87. lpfc_vport_param_show(name)\
  88. lpfc_vport_param_init(name, defval, minval, maxval)\
  89. static DEVICE_ATTR(lpfc_##name, S_IRUGO, lpfc_##name##_show, NULL)
  90. #define LPFC_VPORT_ATTR_RW(name, defval, minval, maxval, desc) \
  91. static uint lpfc_##name = defval;\
  92. module_param(lpfc_##name, uint, S_IRUGO);\
  93. MODULE_PARM_DESC(lpfc_##name, desc);\
  94. lpfc_vport_param_show(name)\
  95. lpfc_vport_param_init(name, defval, minval, maxval)\
  96. lpfc_vport_param_set(name, defval, minval, maxval)\
  97. lpfc_vport_param_store(name)\
  98. static DEVICE_ATTR(lpfc_##name, S_IRUGO | S_IWUSR,\
  99. lpfc_##name##_show, lpfc_##name##_store)
  100. #define LPFC_VPORT_ATTR_HEX_R(name, defval, minval, maxval, desc) \
  101. static uint lpfc_##name = defval;\
  102. module_param(lpfc_##name, uint, S_IRUGO);\
  103. MODULE_PARM_DESC(lpfc_##name, desc);\
  104. lpfc_vport_param_hex_show(name)\
  105. lpfc_vport_param_init(name, defval, minval, maxval)\
  106. static DEVICE_ATTR(lpfc_##name, S_IRUGO, lpfc_##name##_show, NULL)
  107. #define LPFC_VPORT_ATTR_HEX_RW(name, defval, minval, maxval, desc) \
  108. static uint lpfc_##name = defval;\
  109. module_param(lpfc_##name, uint, S_IRUGO);\
  110. MODULE_PARM_DESC(lpfc_##name, desc);\
  111. lpfc_vport_param_hex_show(name)\
  112. lpfc_vport_param_init(name, defval, minval, maxval)\
  113. lpfc_vport_param_set(name, defval, minval, maxval)\
  114. lpfc_vport_param_store(name)\
  115. static DEVICE_ATTR(lpfc_##name, S_IRUGO | S_IWUSR,\
  116. lpfc_##name##_show, lpfc_##name##_store)