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