Blame view

net/ieee802154/rdev-ops.h 8.82 KB
b24413180   Greg Kroah-Hartman   License cleanup: ...
1
  /* SPDX-License-Identifier: GPL-2.0 */
4a9a816a4   Alexander Aring   cfg802154: conver...
2
3
4
5
6
7
  #ifndef __CFG802154_RDEV_OPS
  #define __CFG802154_RDEV_OPS
  
  #include <net/cfg802154.h>
  
  #include "core.h"
1cc800e7a   Guido Günther   ieee802154: Add t...
8
  #include "trace.h"
4a9a816a4   Alexander Aring   cfg802154: conver...
9
10
11
  
  static inline struct net_device *
  rdev_add_virtual_intf_deprecated(struct cfg802154_registered_device *rdev,
5b4a10390   Varka Bhadram   cfg802154: pass n...
12
13
14
  				 const char *name,
  				 unsigned char name_assign_type,
  				 int type)
4a9a816a4   Alexander Aring   cfg802154: conver...
15
16
  {
  	return rdev->ops->add_virtual_intf_deprecated(&rdev->wpan_phy, name,
5b4a10390   Varka Bhadram   cfg802154: pass n...
17
  						      name_assign_type, type);
4a9a816a4   Alexander Aring   cfg802154: conver...
18
19
20
21
22
23
24
25
  }
  
  static inline void
  rdev_del_virtual_intf_deprecated(struct cfg802154_registered_device *rdev,
  				 struct net_device *dev)
  {
  	rdev->ops->del_virtual_intf_deprecated(&rdev->wpan_phy, dev);
  }
ab0bd5617   Alexander Aring   ieee820154: add c...
26
  static inline int
a6cb869b3   Varka Bhadram   cfg802154: add PM...
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
  rdev_suspend(struct cfg802154_registered_device *rdev)
  {
  	int ret;
  	trace_802154_rdev_suspend(&rdev->wpan_phy);
  	ret = rdev->ops->suspend(&rdev->wpan_phy);
  	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  	return ret;
  }
  
  static inline int
  rdev_resume(struct cfg802154_registered_device *rdev)
  {
  	int ret;
  	trace_802154_rdev_resume(&rdev->wpan_phy);
  	ret = rdev->ops->resume(&rdev->wpan_phy);
  	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  	return ret;
  }
  
  static inline int
f3ea5e442   Alexander Aring   ieee802154: add n...
47
  rdev_add_virtual_intf(struct cfg802154_registered_device *rdev, char *name,
5b4a10390   Varka Bhadram   cfg802154: pass n...
48
  		      unsigned char name_assign_type,
0e57547eb   Alexander Aring   ieee802154: setti...
49
  		      enum nl802154_iftype type, __le64 extended_addr)
f3ea5e442   Alexander Aring   ieee802154: add n...
50
  {
1cc800e7a   Guido Günther   ieee802154: Add t...
51
52
53
  	int ret;
  
  	trace_802154_rdev_add_virtual_intf(&rdev->wpan_phy, name, type,
0e57547eb   Alexander Aring   ieee802154: setti...
54
  					   extended_addr);
5b4a10390   Varka Bhadram   cfg802154: pass n...
55
56
  	ret = rdev->ops->add_virtual_intf(&rdev->wpan_phy, name,
  					  name_assign_type, type,
1cc800e7a   Guido Günther   ieee802154: Add t...
57
58
59
  					  extended_addr);
  	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  	return ret;
f3ea5e442   Alexander Aring   ieee802154: add n...
60
61
62
  }
  
  static inline int
b821ecd4c   Alexander Aring   ieee802154: add d...
63
64
65
  rdev_del_virtual_intf(struct cfg802154_registered_device *rdev,
  		      struct wpan_dev *wpan_dev)
  {
1cc800e7a   Guido Günther   ieee802154: Add t...
66
67
68
69
70
71
  	int ret;
  
  	trace_802154_rdev_del_virtual_intf(&rdev->wpan_phy, wpan_dev);
  	ret = rdev->ops->del_virtual_intf(&rdev->wpan_phy, wpan_dev);
  	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  	return ret;
b821ecd4c   Alexander Aring   ieee802154: add d...
72
73
74
  }
  
  static inline int
628b1e113   Alexander Aring   mac802154: remove...
75
  rdev_set_channel(struct cfg802154_registered_device *rdev, u8 page, u8 channel)
ab0bd5617   Alexander Aring   ieee820154: add c...
76
  {
1cc800e7a   Guido Günther   ieee802154: Add t...
77
78
79
80
81
82
  	int ret;
  
  	trace_802154_rdev_set_channel(&rdev->wpan_phy, page, channel);
  	ret = rdev->ops->set_channel(&rdev->wpan_phy, page, channel);
  	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  	return ret;
ab0bd5617   Alexander Aring   ieee820154: add c...
83
  }
702bf3712   Alexander Aring   ieee820154: add p...
84
  static inline int
ba2a9506a   Alexander Aring   nl802154: introdu...
85
86
87
  rdev_set_cca_mode(struct cfg802154_registered_device *rdev,
  		  const struct wpan_phy_cca *cca)
  {
1cc800e7a   Guido Günther   ieee802154: Add t...
88
89
90
91
92
93
  	int ret;
  
  	trace_802154_rdev_set_cca_mode(&rdev->wpan_phy, cca);
  	ret = rdev->ops->set_cca_mode(&rdev->wpan_phy, cca);
  	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  	return ret;
ba2a9506a   Alexander Aring   nl802154: introdu...
94
95
96
  }
  
  static inline int
b69644c1c   Alexander Aring   nl802154: add sup...
97
98
99
100
101
102
103
104
105
106
107
  rdev_set_cca_ed_level(struct cfg802154_registered_device *rdev, s32 ed_level)
  {
  	int ret;
  
  	trace_802154_rdev_set_cca_ed_level(&rdev->wpan_phy, ed_level);
  	ret = rdev->ops->set_cca_ed_level(&rdev->wpan_phy, ed_level);
  	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  	return ret;
  }
  
  static inline int
0f999b09f   Varka Bhadram   ieee802154: add s...
108
109
110
111
112
113
114
115
116
117
118
119
  rdev_set_tx_power(struct cfg802154_registered_device *rdev,
  		  s32 power)
  {
  	int ret;
  
  	trace_802154_rdev_set_tx_power(&rdev->wpan_phy, power);
  	ret = rdev->ops->set_tx_power(&rdev->wpan_phy, power);
  	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  	return ret;
  }
  
  static inline int
702bf3712   Alexander Aring   ieee820154: add p...
120
  rdev_set_pan_id(struct cfg802154_registered_device *rdev,
ee7b9053b   Alexander Aring   ieee802154: fix b...
121
  		struct wpan_dev *wpan_dev, __le16 pan_id)
702bf3712   Alexander Aring   ieee820154: add p...
122
  {
1cc800e7a   Guido Günther   ieee802154: Add t...
123
124
125
126
127
128
  	int ret;
  
  	trace_802154_rdev_set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id);
  	ret = rdev->ops->set_pan_id(&rdev->wpan_phy, wpan_dev, pan_id);
  	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  	return ret;
702bf3712   Alexander Aring   ieee820154: add p...
129
  }
9830c62a0   Alexander Aring   ieee820154: add s...
130
131
  static inline int
  rdev_set_short_addr(struct cfg802154_registered_device *rdev,
ee7b9053b   Alexander Aring   ieee802154: fix b...
132
  		    struct wpan_dev *wpan_dev, __le16 short_addr)
9830c62a0   Alexander Aring   ieee820154: add s...
133
  {
1cc800e7a   Guido Günther   ieee802154: Add t...
134
135
136
137
138
139
  	int ret;
  
  	trace_802154_rdev_set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr);
  	ret = rdev->ops->set_short_addr(&rdev->wpan_phy, wpan_dev, short_addr);
  	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  	return ret;
9830c62a0   Alexander Aring   ieee820154: add s...
140
  }
656a999e8   Alexander Aring   ieee820154: add b...
141
142
  static inline int
  rdev_set_backoff_exponent(struct cfg802154_registered_device *rdev,
628b1e113   Alexander Aring   mac802154: remove...
143
  			  struct wpan_dev *wpan_dev, u8 min_be, u8 max_be)
656a999e8   Alexander Aring   ieee820154: add b...
144
  {
1cc800e7a   Guido Günther   ieee802154: Add t...
145
146
147
  	int ret;
  
  	trace_802154_rdev_set_backoff_exponent(&rdev->wpan_phy, wpan_dev,
656a999e8   Alexander Aring   ieee820154: add b...
148
  					       min_be, max_be);
1cc800e7a   Guido Günther   ieee802154: Add t...
149
150
151
152
  	ret = rdev->ops->set_backoff_exponent(&rdev->wpan_phy, wpan_dev,
  					      min_be, max_be);
  	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  	return ret;
656a999e8   Alexander Aring   ieee820154: add b...
153
  }
a01ba7652   Alexander Aring   ieee820154: add m...
154
155
  static inline int
  rdev_set_max_csma_backoffs(struct cfg802154_registered_device *rdev,
628b1e113   Alexander Aring   mac802154: remove...
156
  			   struct wpan_dev *wpan_dev, u8 max_csma_backoffs)
a01ba7652   Alexander Aring   ieee820154: add m...
157
  {
1cc800e7a   Guido Günther   ieee802154: Add t...
158
159
160
161
162
163
164
165
  	int ret;
  
  	trace_802154_rdev_set_csma_backoffs(&rdev->wpan_phy, wpan_dev,
  					    max_csma_backoffs);
  	ret = rdev->ops->set_max_csma_backoffs(&rdev->wpan_phy, wpan_dev,
  					       max_csma_backoffs);
  	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  	return ret;
a01ba7652   Alexander Aring   ieee820154: add m...
166
  }
17a3a46bf   Alexander Aring   ieee820154: add m...
167
168
  static inline int
  rdev_set_max_frame_retries(struct cfg802154_registered_device *rdev,
628b1e113   Alexander Aring   mac802154: remove...
169
  			   struct wpan_dev *wpan_dev, s8 max_frame_retries)
17a3a46bf   Alexander Aring   ieee820154: add m...
170
  {
1cc800e7a   Guido Günther   ieee802154: Add t...
171
172
173
  	int ret;
  
  	trace_802154_rdev_set_max_frame_retries(&rdev->wpan_phy, wpan_dev,
17a3a46bf   Alexander Aring   ieee820154: add m...
174
  						max_frame_retries);
1cc800e7a   Guido Günther   ieee802154: Add t...
175
176
177
178
  	ret = rdev->ops->set_max_frame_retries(&rdev->wpan_phy, wpan_dev,
  					       max_frame_retries);
  	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  	return ret;
17a3a46bf   Alexander Aring   ieee820154: add m...
179
  }
c8937a1d1   Alexander Aring   ieee820154: add l...
180
181
  static inline int
  rdev_set_lbt_mode(struct cfg802154_registered_device *rdev,
628b1e113   Alexander Aring   mac802154: remove...
182
  		  struct wpan_dev *wpan_dev, bool mode)
c8937a1d1   Alexander Aring   ieee820154: add l...
183
  {
1cc800e7a   Guido Günther   ieee802154: Add t...
184
185
186
187
188
189
  	int ret;
  
  	trace_802154_rdev_set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode);
  	ret = rdev->ops->set_lbt_mode(&rdev->wpan_phy, wpan_dev, mode);
  	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  	return ret;
c8937a1d1   Alexander Aring   ieee820154: add l...
190
  }
c91208d81   Alexander Aring   ieee802154: add a...
191
192
193
194
195
196
197
198
199
200
201
202
  static inline int
  rdev_set_ackreq_default(struct cfg802154_registered_device *rdev,
  			struct wpan_dev *wpan_dev, bool ackreq)
  {
  	int ret;
  
  	trace_802154_rdev_set_ackreq_default(&rdev->wpan_phy, wpan_dev,
  					     ackreq);
  	ret = rdev->ops->set_ackreq_default(&rdev->wpan_phy, wpan_dev, ackreq);
  	trace_802154_rdev_return_int(&rdev->wpan_phy, ret);
  	return ret;
  }
a26c5fd76   Alexander Aring   nl802154: add sup...
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
  #ifdef CONFIG_IEEE802154_NL802154_EXPERIMENTAL
  /* TODO this is already a nl802154, so move into ieee802154 */
  static inline void
  rdev_get_llsec_table(struct cfg802154_registered_device *rdev,
  		     struct wpan_dev *wpan_dev,
  		     struct ieee802154_llsec_table **table)
  {
  	rdev->ops->get_llsec_table(&rdev->wpan_phy, wpan_dev, table);
  }
  
  static inline void
  rdev_lock_llsec_table(struct cfg802154_registered_device *rdev,
  		      struct wpan_dev *wpan_dev)
  {
  	rdev->ops->lock_llsec_table(&rdev->wpan_phy, wpan_dev);
  }
  
  static inline void
  rdev_unlock_llsec_table(struct cfg802154_registered_device *rdev,
  			struct wpan_dev *wpan_dev)
  {
  	rdev->ops->unlock_llsec_table(&rdev->wpan_phy, wpan_dev);
  }
  
  static inline int
  rdev_get_llsec_params(struct cfg802154_registered_device *rdev,
  		      struct wpan_dev *wpan_dev,
  		      struct ieee802154_llsec_params *params)
  {
  	return rdev->ops->get_llsec_params(&rdev->wpan_phy, wpan_dev, params);
  }
  
  static inline int
  rdev_set_llsec_params(struct cfg802154_registered_device *rdev,
  		      struct wpan_dev *wpan_dev,
  		      const struct ieee802154_llsec_params *params,
  		      u32 changed)
  {
  	return rdev->ops->set_llsec_params(&rdev->wpan_phy, wpan_dev, params,
  					   changed);
  }
  
  static inline int
  rdev_add_llsec_key(struct cfg802154_registered_device *rdev,
  		   struct wpan_dev *wpan_dev,
  		   const struct ieee802154_llsec_key_id *id,
  		   const struct ieee802154_llsec_key *key)
  {
  	return rdev->ops->add_llsec_key(&rdev->wpan_phy, wpan_dev, id, key);
  }
  
  static inline int
  rdev_del_llsec_key(struct cfg802154_registered_device *rdev,
  		   struct wpan_dev *wpan_dev,
  		   const struct ieee802154_llsec_key_id *id)
  {
  	return rdev->ops->del_llsec_key(&rdev->wpan_phy, wpan_dev, id);
  }
  
  static inline int
  rdev_add_seclevel(struct cfg802154_registered_device *rdev,
  		  struct wpan_dev *wpan_dev,
  		  const struct ieee802154_llsec_seclevel *sl)
  {
  	return rdev->ops->add_seclevel(&rdev->wpan_phy, wpan_dev, sl);
  }
  
  static inline int
  rdev_del_seclevel(struct cfg802154_registered_device *rdev,
  		  struct wpan_dev *wpan_dev,
  		  const struct ieee802154_llsec_seclevel *sl)
  {
  	return rdev->ops->del_seclevel(&rdev->wpan_phy, wpan_dev, sl);
  }
  
  static inline int
  rdev_add_device(struct cfg802154_registered_device *rdev,
  		struct wpan_dev *wpan_dev,
  		const struct ieee802154_llsec_device *dev_desc)
  {
  	return rdev->ops->add_device(&rdev->wpan_phy, wpan_dev, dev_desc);
  }
  
  static inline int
  rdev_del_device(struct cfg802154_registered_device *rdev,
  		struct wpan_dev *wpan_dev, __le64 extended_addr)
  {
  	return rdev->ops->del_device(&rdev->wpan_phy, wpan_dev, extended_addr);
  }
  
  static inline int
  rdev_add_devkey(struct cfg802154_registered_device *rdev,
  		struct wpan_dev *wpan_dev, __le64 extended_addr,
  		const struct ieee802154_llsec_device_key *devkey)
  {
  	return rdev->ops->add_devkey(&rdev->wpan_phy, wpan_dev, extended_addr,
  				     devkey);
  }
  
  static inline int
  rdev_del_devkey(struct cfg802154_registered_device *rdev,
  		struct wpan_dev *wpan_dev, __le64 extended_addr,
  		const struct ieee802154_llsec_device_key *devkey)
  {
  	return rdev->ops->del_devkey(&rdev->wpan_phy, wpan_dev, extended_addr,
  				     devkey);
  }
  #endif /* CONFIG_IEEE802154_NL802154_EXPERIMENTAL */
4a9a816a4   Alexander Aring   cfg802154: conver...
311
  #endif /* __CFG802154_RDEV_OPS */