rdev-ops.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  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_pan_id(struct cfg802154_registered_device *rdev,
  66. struct wpan_dev *wpan_dev, __le16 pan_id)
  67. {
  68. int ret;
  69. trace_802154_rdev_set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id);
  70. ret = rdev->ops->set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id);
  71. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  72. return ret;
  73. }
  74. static inline int
  75. rdev_set_short_addr(struct cfg802154_registered_device *rdev,
  76. struct wpan_dev *wpan_dev, __le16 short_addr)
  77. {
  78. int ret;
  79. trace_802154_rdev_set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr);
  80. ret = rdev->ops->set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr);
  81. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  82. return ret;
  83. }
  84. static inline int
  85. rdev_set_backoff_exponent(struct cfg802154_registered_device *rdev,
  86. struct wpan_dev *wpan_dev, u8 min_be, u8 max_be)
  87. {
  88. int ret;
  89. trace_802154_rdev_set_backoff_exponent(&rdev->wpan_phy, wpan_dev,
  90. min_be, max_be);
  91. ret = rdev->ops->set_backoff_exponent(&rdev->wpan_phy, wpan_dev,
  92. min_be, max_be);
  93. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  94. return ret;
  95. }
  96. static inline int
  97. rdev_set_max_csma_backoffs(struct cfg802154_registered_device *rdev,
  98. struct wpan_dev *wpan_dev, u8 max_csma_backoffs)
  99. {
  100. int ret;
  101. trace_802154_rdev_set_csma_backoffs(&rdev->wpan_phy, wpan_dev,
  102. max_csma_backoffs);
  103. ret = rdev->ops->set_max_csma_backoffs(&rdev->wpan_phy, wpan_dev,
  104. max_csma_backoffs);
  105. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  106. return ret;
  107. }
  108. static inline int
  109. rdev_set_max_frame_retries(struct cfg802154_registered_device *rdev,
  110. struct wpan_dev *wpan_dev, s8 max_frame_retries)
  111. {
  112. int ret;
  113. trace_802154_rdev_set_max_frame_retries(&rdev->wpan_phy, wpan_dev,
  114. max_frame_retries);
  115. ret = rdev->ops->set_max_frame_retries(&rdev->wpan_phy, wpan_dev,
  116. max_frame_retries);
  117. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  118. return ret;
  119. }
  120. static inline int
  121. rdev_set_lbt_mode(struct cfg802154_registered_device *rdev,
  122. struct wpan_dev *wpan_dev, bool mode)
  123. {
  124. int ret;
  125. trace_802154_rdev_set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode);
  126. ret = rdev->ops->set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode);
  127. trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  128. return ret;
  129. }
  130. #endif /* __CFG802154_RDEV_OPS */