rdev-ops.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. #ifndef __CFG802154_RDEV_OPS
  2. #define __CFG802154_RDEV_OPS
  3. #include <net/cfg802154.h>
  4. #include "core.h"
  5. #include "trace.h"
  6. static inline struct net_device *
  7. rdev_add_virtual_intf_deprecated(struct cfg802154_registered_device *rdev,
  8. const char *name,
  9. unsigned char name_assign_type,
  10. int type)
  11. {
  12. return rdev->ops->add_virtual_intf_deprecated(&rdev->wpan_phy, name,
  13. name_assign_type, type);
  14. }
  15. static inline void
  16. rdev_del_virtual_intf_deprecated(struct cfg802154_registered_device *rdev,
  17. struct net_device *dev)
  18. {
  19. rdev->ops->del_virtual_intf_deprecated(&rdev->wpan_phy, dev);
  20. }
  21. static inline int
  22. rdev_add_virtual_intf(struct cfg802154_registered_device *rdev, char *name,
  23. unsigned char name_assign_type,
  24. enum nl802154_iftype type, __le64 extended_addr)
  25. {
  26. int ret;
  27. trace_802154_rdev_add_virtual_intf(&rdev->wpan_phy, name, type,
  28. extended_addr);
  29. ret = rdev->ops->add_virtual_intf(&rdev->wpan_phy, name,
  30. name_assign_type, type,
  31. extended_addr);
  32. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  33. return ret;
  34. }
  35. static inline int
  36. rdev_del_virtual_intf(struct cfg802154_registered_device *rdev,
  37. struct wpan_dev *wpan_dev)
  38. {
  39. int ret;
  40. trace_802154_rdev_del_virtual_intf(&rdev->wpan_phy, wpan_dev);
  41. ret = rdev->ops->del_virtual_intf(&rdev->wpan_phy, wpan_dev);
  42. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  43. return ret;
  44. }
  45. static inline int
  46. rdev_set_channel(struct cfg802154_registered_device *rdev, u8 page, u8 channel)
  47. {
  48. int ret;
  49. trace_802154_rdev_set_channel(&rdev->wpan_phy, page, channel);
  50. ret = rdev->ops->set_channel(&rdev->wpan_phy, page, channel);
  51. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  52. return ret;
  53. }
  54. static inline int
  55. rdev_set_cca_mode(struct cfg802154_registered_device *rdev,
  56. const struct wpan_phy_cca *cca)
  57. {
  58. int ret;
  59. trace_802154_rdev_set_cca_mode(&rdev->wpan_phy, cca);
  60. ret = rdev->ops->set_cca_mode(&rdev->wpan_phy, cca);
  61. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  62. return ret;
  63. }
  64. static inline int
  65. rdev_set_cca_ed_level(struct cfg802154_registered_device *rdev, s32 ed_level)
  66. {
  67. int ret;
  68. trace_802154_rdev_set_cca_ed_level(&rdev->wpan_phy, ed_level);
  69. ret = rdev->ops->set_cca_ed_level(&rdev->wpan_phy, ed_level);
  70. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  71. return ret;
  72. }
  73. static inline int
  74. rdev_set_tx_power(struct cfg802154_registered_device *rdev,
  75. s32 power)
  76. {
  77. int ret;
  78. trace_802154_rdev_set_tx_power(&rdev->wpan_phy, power);
  79. ret = rdev->ops->set_tx_power(&rdev->wpan_phy, power);
  80. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  81. return ret;
  82. }
  83. static inline int
  84. rdev_set_pan_id(struct cfg802154_registered_device *rdev,
  85. struct wpan_dev *wpan_dev, __le16 pan_id)
  86. {
  87. int ret;
  88. trace_802154_rdev_set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id);
  89. ret = rdev->ops->set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id);
  90. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  91. return ret;
  92. }
  93. static inline int
  94. rdev_set_short_addr(struct cfg802154_registered_device *rdev,
  95. struct wpan_dev *wpan_dev, __le16 short_addr)
  96. {
  97. int ret;
  98. trace_802154_rdev_set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr);
  99. ret = rdev->ops->set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr);
  100. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  101. return ret;
  102. }
  103. static inline int
  104. rdev_set_backoff_exponent(struct cfg802154_registered_device *rdev,
  105. struct wpan_dev *wpan_dev, u8 min_be, u8 max_be)
  106. {
  107. int ret;
  108. trace_802154_rdev_set_backoff_exponent(&rdev->wpan_phy, wpan_dev,
  109. min_be, max_be);
  110. ret = rdev->ops->set_backoff_exponent(&rdev->wpan_phy, wpan_dev,
  111. min_be, max_be);
  112. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  113. return ret;
  114. }
  115. static inline int
  116. rdev_set_max_csma_backoffs(struct cfg802154_registered_device *rdev,
  117. struct wpan_dev *wpan_dev, u8 max_csma_backoffs)
  118. {
  119. int ret;
  120. trace_802154_rdev_set_csma_backoffs(&rdev->wpan_phy, wpan_dev,
  121. max_csma_backoffs);
  122. ret = rdev->ops->set_max_csma_backoffs(&rdev->wpan_phy, wpan_dev,
  123. max_csma_backoffs);
  124. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  125. return ret;
  126. }
  127. static inline int
  128. rdev_set_max_frame_retries(struct cfg802154_registered_device *rdev,
  129. struct wpan_dev *wpan_dev, s8 max_frame_retries)
  130. {
  131. int ret;
  132. trace_802154_rdev_set_max_frame_retries(&rdev->wpan_phy, wpan_dev,
  133. max_frame_retries);
  134. ret = rdev->ops->set_max_frame_retries(&rdev->wpan_phy, wpan_dev,
  135. max_frame_retries);
  136. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  137. return ret;
  138. }
  139. static inline int
  140. rdev_set_lbt_mode(struct cfg802154_registered_device *rdev,
  141. struct wpan_dev *wpan_dev, bool mode)
  142. {
  143. int ret;
  144. trace_802154_rdev_set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode);
  145. ret = rdev->ops->set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode);
  146. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  147. return ret;
  148. }
  149. #endif /* __CFG802154_RDEV_OPS */