Branch data Line data Source code
1 : : /*
2 : : * wpa_supplicant - Internal driver interface wrappers
3 : : * Copyright (c) 2003-2009, Jouni Malinen <j@w1.fi>
4 : : *
5 : : * This software may be distributed under the terms of the BSD license.
6 : : * See README for more details.
7 : : */
8 : :
9 : : #ifndef DRIVER_I_H
10 : : #define DRIVER_I_H
11 : :
12 : : #include "drivers/driver.h"
13 : :
14 : : /* driver_ops */
15 : 39 : static inline void * wpa_drv_init(struct wpa_supplicant *wpa_s,
16 : : const char *ifname)
17 : : {
18 [ + - ]: 39 : if (wpa_s->driver->init2)
19 : 39 : return wpa_s->driver->init2(wpa_s, ifname,
20 : : wpa_s->global_drv_priv);
21 [ # # ]: 0 : if (wpa_s->driver->init) {
22 : 0 : return wpa_s->driver->init(wpa_s, ifname);
23 : : }
24 : 39 : return NULL;
25 : : }
26 : :
27 : 39 : static inline void wpa_drv_deinit(struct wpa_supplicant *wpa_s)
28 : : {
29 [ + - ]: 39 : if (wpa_s->driver->deinit)
30 : 39 : wpa_s->driver->deinit(wpa_s->drv_priv);
31 : 39 : }
32 : :
33 : 39 : static inline int wpa_drv_set_param(struct wpa_supplicant *wpa_s,
34 : : const char *param)
35 : : {
36 [ + - ]: 39 : if (wpa_s->driver->set_param)
37 : 39 : return wpa_s->driver->set_param(wpa_s->drv_priv, param);
38 : 39 : return 0;
39 : : }
40 : :
41 : 78 : static inline int wpa_drv_set_countermeasures(struct wpa_supplicant *wpa_s,
42 : : int enabled)
43 : : {
44 [ - + ]: 78 : if (wpa_s->driver->set_countermeasures) {
45 : 0 : return wpa_s->driver->set_countermeasures(wpa_s->drv_priv,
46 : : enabled);
47 : : }
48 : 78 : return -1;
49 : : }
50 : :
51 : 708 : static inline int wpa_drv_authenticate(struct wpa_supplicant *wpa_s,
52 : : struct wpa_driver_auth_params *params)
53 : : {
54 [ + - ]: 708 : if (wpa_s->driver->authenticate)
55 : 708 : return wpa_s->driver->authenticate(wpa_s->drv_priv, params);
56 : 708 : return -1;
57 : : }
58 : :
59 : 766 : static inline int wpa_drv_associate(struct wpa_supplicant *wpa_s,
60 : : struct wpa_driver_associate_params *params)
61 : : {
62 [ + - ]: 766 : if (wpa_s->driver->associate) {
63 : 766 : return wpa_s->driver->associate(wpa_s->drv_priv, params);
64 : : }
65 : 766 : return -1;
66 : : }
67 : :
68 : 1355 : static inline int wpa_drv_scan(struct wpa_supplicant *wpa_s,
69 : : struct wpa_driver_scan_params *params)
70 : : {
71 [ + - ]: 1355 : if (wpa_s->driver->scan2)
72 : 1355 : return wpa_s->driver->scan2(wpa_s->drv_priv, params);
73 : 1355 : return -1;
74 : : }
75 : :
76 : 1 : static inline int wpa_drv_sched_scan(struct wpa_supplicant *wpa_s,
77 : : struct wpa_driver_scan_params *params,
78 : : u32 interval)
79 : : {
80 [ + - ]: 1 : if (wpa_s->driver->sched_scan)
81 : 1 : return wpa_s->driver->sched_scan(wpa_s->drv_priv,
82 : : params, interval);
83 : 1 : return -1;
84 : : }
85 : :
86 : 0 : static inline int wpa_drv_stop_sched_scan(struct wpa_supplicant *wpa_s)
87 : : {
88 [ # # ]: 0 : if (wpa_s->driver->stop_sched_scan)
89 : 0 : return wpa_s->driver->stop_sched_scan(wpa_s->drv_priv);
90 : 0 : return -1;
91 : : }
92 : :
93 : 1357 : static inline struct wpa_scan_results * wpa_drv_get_scan_results2(
94 : : struct wpa_supplicant *wpa_s)
95 : : {
96 [ + - ]: 1357 : if (wpa_s->driver->get_scan_results2)
97 : 1357 : return wpa_s->driver->get_scan_results2(wpa_s->drv_priv);
98 : 1357 : return NULL;
99 : : }
100 : :
101 : 1141 : static inline int wpa_drv_get_bssid(struct wpa_supplicant *wpa_s, u8 *bssid)
102 : : {
103 [ + - ]: 1141 : if (wpa_s->driver->get_bssid) {
104 : 1141 : return wpa_s->driver->get_bssid(wpa_s->drv_priv, bssid);
105 : : }
106 : 1141 : return -1;
107 : : }
108 : :
109 : 433 : static inline int wpa_drv_get_ssid(struct wpa_supplicant *wpa_s, u8 *ssid)
110 : : {
111 [ + - ]: 433 : if (wpa_s->driver->get_ssid) {
112 : 433 : return wpa_s->driver->get_ssid(wpa_s->drv_priv, ssid);
113 : : }
114 : 433 : return -1;
115 : : }
116 : :
117 : 2492 : static inline int wpa_drv_set_key(struct wpa_supplicant *wpa_s,
118 : : enum wpa_alg alg, const u8 *addr,
119 : : int key_idx, int set_tx,
120 : : const u8 *seq, size_t seq_len,
121 : : const u8 *key, size_t key_len)
122 : : {
123 [ + + ]: 2492 : if (alg != WPA_ALG_NONE) {
124 [ + + ][ + - ]: 968 : if (key_idx >= 0 && key_idx <= 6)
125 : 900 : wpa_s->keys_cleared &= ~BIT(key_idx);
126 : : else
127 : 68 : wpa_s->keys_cleared = 0;
128 : : }
129 [ + - ]: 2492 : if (wpa_s->driver->set_key) {
130 : 2492 : return wpa_s->driver->set_key(wpa_s->ifname, wpa_s->drv_priv,
131 : : alg, addr, key_idx, set_tx,
132 : : seq, seq_len, key, key_len);
133 : : }
134 : 2492 : return -1;
135 : : }
136 : :
137 : 0 : static inline int wpa_drv_sta_deauth(struct wpa_supplicant *wpa_s,
138 : : const u8 *addr, int reason_code)
139 : : {
140 [ # # ]: 0 : if (wpa_s->driver->sta_deauth) {
141 : 0 : return wpa_s->driver->sta_deauth(wpa_s->drv_priv,
142 : 0 : wpa_s->own_addr, addr,
143 : : reason_code);
144 : : }
145 : 0 : return -1;
146 : : }
147 : :
148 : 633 : static inline int wpa_drv_deauthenticate(struct wpa_supplicant *wpa_s,
149 : : const u8 *addr, int reason_code)
150 : : {
151 [ + - ]: 633 : if (wpa_s->driver->deauthenticate) {
152 : 633 : return wpa_s->driver->deauthenticate(wpa_s->drv_priv, addr,
153 : : reason_code);
154 : : }
155 : 633 : return -1;
156 : : }
157 : :
158 : 172 : static inline int wpa_drv_add_pmkid(struct wpa_supplicant *wpa_s,
159 : : const u8 *bssid, const u8 *pmkid)
160 : : {
161 [ + - ]: 172 : if (wpa_s->driver->add_pmkid) {
162 : 172 : return wpa_s->driver->add_pmkid(wpa_s->drv_priv, bssid, pmkid);
163 : : }
164 : 172 : return -1;
165 : : }
166 : :
167 : 172 : static inline int wpa_drv_remove_pmkid(struct wpa_supplicant *wpa_s,
168 : : const u8 *bssid, const u8 *pmkid)
169 : : {
170 [ + - ]: 172 : if (wpa_s->driver->remove_pmkid) {
171 : 172 : return wpa_s->driver->remove_pmkid(wpa_s->drv_priv, bssid,
172 : : pmkid);
173 : : }
174 : 172 : return -1;
175 : : }
176 : :
177 : 39 : static inline int wpa_drv_flush_pmkid(struct wpa_supplicant *wpa_s)
178 : : {
179 [ + - ]: 39 : if (wpa_s->driver->flush_pmkid) {
180 : 39 : return wpa_s->driver->flush_pmkid(wpa_s->drv_priv);
181 : : }
182 : 39 : return -1;
183 : : }
184 : :
185 : 170 : static inline int wpa_drv_get_capa(struct wpa_supplicant *wpa_s,
186 : : struct wpa_driver_capa *capa)
187 : : {
188 [ + - ]: 170 : if (wpa_s->driver->get_capa) {
189 : 170 : return wpa_s->driver->get_capa(wpa_s->drv_priv, capa);
190 : : }
191 : 170 : return -1;
192 : : }
193 : :
194 : 844 : static inline void wpa_drv_poll(struct wpa_supplicant *wpa_s)
195 : : {
196 [ - + ]: 844 : if (wpa_s->driver->poll) {
197 : 0 : wpa_s->driver->poll(wpa_s->drv_priv);
198 : : }
199 : 844 : }
200 : :
201 : 39 : static inline const char * wpa_drv_get_ifname(struct wpa_supplicant *wpa_s)
202 : : {
203 [ - + ]: 39 : if (wpa_s->driver->get_ifname) {
204 : 0 : return wpa_s->driver->get_ifname(wpa_s->drv_priv);
205 : : }
206 : 39 : return NULL;
207 : : }
208 : :
209 : 39 : static inline const u8 * wpa_drv_get_mac_addr(struct wpa_supplicant *wpa_s)
210 : : {
211 [ + - ]: 39 : if (wpa_s->driver->get_mac_addr) {
212 : 39 : return wpa_s->driver->get_mac_addr(wpa_s->drv_priv);
213 : : }
214 : 39 : return NULL;
215 : : }
216 : :
217 : 0 : static inline int wpa_drv_send_eapol(struct wpa_supplicant *wpa_s,
218 : : const u8 *dst, u16 proto,
219 : : const u8 *data, size_t data_len)
220 : : {
221 [ # # ]: 0 : if (wpa_s->driver->send_eapol)
222 : 0 : return wpa_s->driver->send_eapol(wpa_s->drv_priv, dst, proto,
223 : : data, data_len);
224 : 0 : return -1;
225 : : }
226 : :
227 : 4102 : static inline int wpa_drv_set_operstate(struct wpa_supplicant *wpa_s,
228 : : int state)
229 : : {
230 [ + - ]: 4102 : if (wpa_s->driver->set_operstate)
231 : 4102 : return wpa_s->driver->set_operstate(wpa_s->drv_priv, state);
232 : 4102 : return 0;
233 : : }
234 : :
235 : 1206 : static inline int wpa_drv_mlme_setprotection(struct wpa_supplicant *wpa_s,
236 : : const u8 *addr, int protect_type,
237 : : int key_type)
238 : : {
239 [ - + ]: 1206 : if (wpa_s->driver->mlme_setprotection)
240 : 0 : return wpa_s->driver->mlme_setprotection(wpa_s->drv_priv, addr,
241 : : protect_type,
242 : : key_type);
243 : 1206 : return 0;
244 : : }
245 : :
246 : : static inline struct hostapd_hw_modes *
247 : 1719 : wpa_drv_get_hw_feature_data(struct wpa_supplicant *wpa_s, u16 *num_modes,
248 : : u16 *flags)
249 : : {
250 [ + - ]: 1719 : if (wpa_s->driver->get_hw_feature_data)
251 : 1719 : return wpa_s->driver->get_hw_feature_data(wpa_s->drv_priv,
252 : : num_modes, flags);
253 : 1719 : return NULL;
254 : : }
255 : :
256 : 0 : static inline int wpa_drv_set_country(struct wpa_supplicant *wpa_s,
257 : : const char *alpha2)
258 : : {
259 [ # # ]: 0 : if (wpa_s->driver->set_country)
260 : 0 : return wpa_s->driver->set_country(wpa_s->drv_priv, alpha2);
261 : 0 : return 0;
262 : : }
263 : :
264 : 335 : static inline int wpa_drv_send_mlme(struct wpa_supplicant *wpa_s,
265 : : const u8 *data, size_t data_len, int noack)
266 : : {
267 [ + - ]: 335 : if (wpa_s->driver->send_mlme)
268 : 335 : return wpa_s->driver->send_mlme(wpa_s->drv_priv,
269 : : data, data_len, noack);
270 : 335 : return -1;
271 : : }
272 : :
273 : 0 : static inline int wpa_drv_update_ft_ies(struct wpa_supplicant *wpa_s,
274 : : const u8 *md,
275 : : const u8 *ies, size_t ies_len)
276 : : {
277 [ # # ]: 0 : if (wpa_s->driver->update_ft_ies)
278 : 0 : return wpa_s->driver->update_ft_ies(wpa_s->drv_priv, md,
279 : : ies, ies_len);
280 : 0 : return -1;
281 : : }
282 : :
283 : 6 : static inline int wpa_drv_send_ft_action(struct wpa_supplicant *wpa_s,
284 : : u8 action, const u8 *target_ap,
285 : : const u8 *ies, size_t ies_len)
286 : : {
287 [ + - ]: 6 : if (wpa_s->driver->send_ft_action)
288 : 6 : return wpa_s->driver->send_ft_action(wpa_s->drv_priv, action,
289 : : target_ap, ies, ies_len);
290 : 6 : return -1;
291 : : }
292 : :
293 : : static inline int wpa_drv_set_ap(struct wpa_supplicant *wpa_s,
294 : : struct wpa_driver_ap_params *params)
295 : : {
296 : : if (wpa_s->driver->set_ap)
297 : : return wpa_s->driver->set_ap(wpa_s->drv_priv, params);
298 : : return -1;
299 : : }
300 : :
301 : 81 : static inline int wpa_drv_sta_add(struct wpa_supplicant *wpa_s,
302 : : struct hostapd_sta_add_params *params)
303 : : {
304 [ + - ]: 81 : if (wpa_s->driver->sta_add)
305 : 81 : return wpa_s->driver->sta_add(wpa_s->drv_priv, params);
306 : 81 : return -1;
307 : : }
308 : :
309 : : static inline int wpa_drv_sta_remove(struct wpa_supplicant *wpa_s,
310 : : const u8 *addr)
311 : : {
312 : : if (wpa_s->driver->sta_remove)
313 : : return wpa_s->driver->sta_remove(wpa_s->drv_priv, addr);
314 : : return -1;
315 : : }
316 : :
317 : : static inline int wpa_drv_hapd_send_eapol(struct wpa_supplicant *wpa_s,
318 : : const u8 *addr, const u8 *data,
319 : : size_t data_len, int encrypt,
320 : : const u8 *own_addr, u32 flags)
321 : : {
322 : : if (wpa_s->driver->hapd_send_eapol)
323 : : return wpa_s->driver->hapd_send_eapol(wpa_s->drv_priv, addr,
324 : : data, data_len, encrypt,
325 : : own_addr, flags);
326 : : return -1;
327 : : }
328 : :
329 : 4 : static inline int wpa_drv_sta_set_flags(struct wpa_supplicant *wpa_s,
330 : : const u8 *addr, int total_flags,
331 : : int flags_or, int flags_and)
332 : : {
333 [ + - ]: 4 : if (wpa_s->driver->sta_set_flags)
334 : 4 : return wpa_s->driver->sta_set_flags(wpa_s->drv_priv, addr,
335 : : total_flags, flags_or,
336 : : flags_and);
337 : 4 : return -1;
338 : : }
339 : :
340 : 1402 : static inline int wpa_drv_set_supp_port(struct wpa_supplicant *wpa_s,
341 : : int authorized)
342 : : {
343 [ + - ]: 1402 : if (wpa_s->driver->set_supp_port) {
344 : 1402 : return wpa_s->driver->set_supp_port(wpa_s->drv_priv,
345 : : authorized);
346 : : }
347 : 1402 : return 0;
348 : : }
349 : :
350 : 884 : static inline int wpa_drv_send_action(struct wpa_supplicant *wpa_s,
351 : : unsigned int freq,
352 : : unsigned int wait,
353 : : const u8 *dst, const u8 *src,
354 : : const u8 *bssid,
355 : : const u8 *data, size_t data_len,
356 : : int no_cck)
357 : : {
358 [ + - ]: 884 : if (wpa_s->driver->send_action)
359 : 884 : return wpa_s->driver->send_action(wpa_s->drv_priv, freq,
360 : : wait, dst, src, bssid,
361 : : data, data_len, no_cck);
362 : 884 : return -1;
363 : : }
364 : :
365 : 463 : static inline void wpa_drv_send_action_cancel_wait(struct wpa_supplicant *wpa_s)
366 : : {
367 [ + - ]: 463 : if (wpa_s->driver->send_action_cancel_wait)
368 : 463 : wpa_s->driver->send_action_cancel_wait(wpa_s->drv_priv);
369 : 463 : }
370 : :
371 : : static inline int wpa_drv_set_freq(struct wpa_supplicant *wpa_s,
372 : : struct hostapd_freq_params *freq)
373 : : {
374 : : if (wpa_s->driver->set_freq)
375 : : return wpa_s->driver->set_freq(wpa_s->drv_priv, freq);
376 : : return -1;
377 : : }
378 : :
379 : 24 : static inline int wpa_drv_if_add(struct wpa_supplicant *wpa_s,
380 : : enum wpa_driver_if_type type,
381 : : const char *ifname, const u8 *addr,
382 : : void *bss_ctx, char *force_ifname,
383 : : u8 *if_addr, const char *bridge)
384 : : {
385 [ + - ]: 24 : if (wpa_s->driver->if_add)
386 : 24 : return wpa_s->driver->if_add(wpa_s->drv_priv, type, ifname,
387 : : addr, bss_ctx, NULL, force_ifname,
388 : : if_addr, bridge, 0);
389 : 24 : return -1;
390 : : }
391 : :
392 : 24 : static inline int wpa_drv_if_remove(struct wpa_supplicant *wpa_s,
393 : : enum wpa_driver_if_type type,
394 : : const char *ifname)
395 : : {
396 [ + - ]: 24 : if (wpa_s->driver->if_remove)
397 : 24 : return wpa_s->driver->if_remove(wpa_s->drv_priv, type, ifname);
398 : 24 : return -1;
399 : : }
400 : :
401 : 775 : static inline int wpa_drv_remain_on_channel(struct wpa_supplicant *wpa_s,
402 : : unsigned int freq,
403 : : unsigned int duration)
404 : : {
405 [ + - ]: 775 : if (wpa_s->driver->remain_on_channel)
406 : 775 : return wpa_s->driver->remain_on_channel(wpa_s->drv_priv, freq,
407 : : duration);
408 : 775 : return -1;
409 : : }
410 : :
411 : 249 : static inline int wpa_drv_cancel_remain_on_channel(
412 : : struct wpa_supplicant *wpa_s)
413 : : {
414 [ + - ]: 249 : if (wpa_s->driver->cancel_remain_on_channel)
415 : 249 : return wpa_s->driver->cancel_remain_on_channel(
416 : : wpa_s->drv_priv);
417 : 249 : return -1;
418 : : }
419 : :
420 : 4160 : static inline int wpa_drv_probe_req_report(struct wpa_supplicant *wpa_s,
421 : : int report)
422 : : {
423 [ + - ]: 4160 : if (wpa_s->driver->probe_req_report)
424 : 4160 : return wpa_s->driver->probe_req_report(wpa_s->drv_priv,
425 : : report);
426 : 4160 : return -1;
427 : : }
428 : :
429 : 86 : static inline int wpa_drv_deinit_ap(struct wpa_supplicant *wpa_s)
430 : : {
431 [ + - ]: 86 : if (wpa_s->driver->deinit_ap)
432 : 86 : return wpa_s->driver->deinit_ap(wpa_s->drv_priv);
433 : 86 : return 0;
434 : : }
435 : :
436 : 76 : static inline int wpa_drv_deinit_p2p_cli(struct wpa_supplicant *wpa_s)
437 : : {
438 [ + - ]: 76 : if (wpa_s->driver->deinit_p2p_cli)
439 : 76 : return wpa_s->driver->deinit_p2p_cli(wpa_s->drv_priv);
440 : 76 : return 0;
441 : : }
442 : :
443 : 0 : static inline void wpa_drv_suspend(struct wpa_supplicant *wpa_s)
444 : : {
445 [ # # ]: 0 : if (wpa_s->driver->suspend)
446 : 0 : wpa_s->driver->suspend(wpa_s->drv_priv);
447 : 0 : }
448 : :
449 : 0 : static inline void wpa_drv_resume(struct wpa_supplicant *wpa_s)
450 : : {
451 [ # # ]: 0 : if (wpa_s->driver->resume)
452 : 0 : wpa_s->driver->resume(wpa_s->drv_priv);
453 : 0 : }
454 : :
455 : 0 : static inline int wpa_drv_signal_monitor(struct wpa_supplicant *wpa_s,
456 : : int threshold, int hysteresis)
457 : : {
458 [ # # ]: 0 : if (wpa_s->driver->signal_monitor)
459 : 0 : return wpa_s->driver->signal_monitor(wpa_s->drv_priv,
460 : : threshold, hysteresis);
461 : 0 : return -1;
462 : : }
463 : :
464 : 0 : static inline int wpa_drv_signal_poll(struct wpa_supplicant *wpa_s,
465 : : struct wpa_signal_info *si)
466 : : {
467 [ # # ]: 0 : if (wpa_s->driver->signal_poll)
468 : 0 : return wpa_s->driver->signal_poll(wpa_s->drv_priv, si);
469 : 0 : return -1;
470 : : }
471 : :
472 : 0 : static inline int wpa_drv_pktcnt_poll(struct wpa_supplicant *wpa_s,
473 : : struct hostap_sta_driver_data *sta)
474 : : {
475 [ # # ]: 0 : if (wpa_s->driver->read_sta_data)
476 : 0 : return wpa_s->driver->read_sta_data(wpa_s->drv_priv, sta,
477 : 0 : wpa_s->bssid);
478 : 0 : return -1;
479 : : }
480 : :
481 : 4121 : static inline int wpa_drv_set_ap_wps_ie(struct wpa_supplicant *wpa_s,
482 : : const struct wpabuf *beacon,
483 : : const struct wpabuf *proberesp,
484 : : const struct wpabuf *assocresp)
485 : : {
486 [ + - ]: 4121 : if (!wpa_s->driver->set_ap_wps_ie)
487 : 4121 : return -1;
488 : 4121 : return wpa_s->driver->set_ap_wps_ie(wpa_s->drv_priv, beacon,
489 : : proberesp, assocresp);
490 : : }
491 : :
492 : 9 : static inline int wpa_drv_shared_freq(struct wpa_supplicant *wpa_s)
493 : : {
494 [ - + ]: 9 : if (!wpa_s->driver->shared_freq)
495 : 0 : return -1;
496 : 9 : return wpa_s->driver->shared_freq(wpa_s->drv_priv);
497 : : }
498 : :
499 : 2 : static inline int wpa_drv_get_noa(struct wpa_supplicant *wpa_s,
500 : : u8 *buf, size_t buf_len)
501 : : {
502 [ + - ]: 2 : if (!wpa_s->driver->get_noa)
503 : 2 : return -1;
504 : 2 : return wpa_s->driver->get_noa(wpa_s->drv_priv, buf, buf_len);
505 : : }
506 : :
507 : 0 : static inline int wpa_drv_set_p2p_powersave(struct wpa_supplicant *wpa_s,
508 : : int legacy_ps, int opp_ps,
509 : : int ctwindow)
510 : : {
511 [ # # ]: 0 : if (!wpa_s->driver->set_p2p_powersave)
512 : 0 : return -1;
513 : 0 : return wpa_s->driver->set_p2p_powersave(wpa_s->drv_priv, legacy_ps,
514 : : opp_ps, ctwindow);
515 : : }
516 : :
517 : 0 : static inline int wpa_drv_ampdu(struct wpa_supplicant *wpa_s, int ampdu)
518 : : {
519 [ # # ]: 0 : if (!wpa_s->driver->ampdu)
520 : 0 : return -1;
521 : 0 : return wpa_s->driver->ampdu(wpa_s->drv_priv, ampdu);
522 : : }
523 : :
524 : 106 : static inline int wpa_drv_send_tdls_mgmt(struct wpa_supplicant *wpa_s,
525 : : const u8 *dst, u8 action_code,
526 : : u8 dialog_token, u16 status_code,
527 : : const u8 *buf, size_t len)
528 : : {
529 [ + - ]: 106 : if (wpa_s->driver->send_tdls_mgmt) {
530 : 106 : return wpa_s->driver->send_tdls_mgmt(wpa_s->drv_priv, dst,
531 : : action_code, dialog_token,
532 : : status_code, buf, len);
533 : : }
534 : 106 : return -1;
535 : : }
536 : :
537 : 1281 : static inline int wpa_drv_tdls_oper(struct wpa_supplicant *wpa_s,
538 : : enum tdls_oper oper, const u8 *peer)
539 : : {
540 [ - + ]: 1281 : if (!wpa_s->driver->tdls_oper)
541 : 0 : return -1;
542 : 1281 : return wpa_s->driver->tdls_oper(wpa_s->drv_priv, oper, peer);
543 : : }
544 : :
545 : : #ifdef ANDROID
546 : : static inline int wpa_drv_driver_cmd(struct wpa_supplicant *wpa_s,
547 : : char *cmd, char *buf, size_t buf_len)
548 : : {
549 : : if (!wpa_s->driver->driver_cmd)
550 : : return -1;
551 : : return wpa_s->driver->driver_cmd(wpa_s->drv_priv, cmd, buf, buf_len);
552 : : }
553 : : #endif /* ANDROID */
554 : :
555 : 403 : static inline void wpa_drv_set_rekey_info(struct wpa_supplicant *wpa_s,
556 : : const u8 *kek, const u8 *kck,
557 : : const u8 *replay_ctr)
558 : : {
559 [ - + ]: 403 : if (!wpa_s->driver->set_rekey_info)
560 : 403 : return;
561 : 403 : wpa_s->driver->set_rekey_info(wpa_s->drv_priv, kek, kck, replay_ctr);
562 : : }
563 : :
564 : 1183 : static inline int wpa_drv_radio_disable(struct wpa_supplicant *wpa_s,
565 : : int disabled)
566 : : {
567 [ + - ]: 1183 : if (!wpa_s->driver->radio_disable)
568 : 1183 : return -1;
569 : 1183 : return wpa_s->driver->radio_disable(wpa_s->drv_priv, disabled);
570 : : }
571 : :
572 : : static inline int wpa_drv_switch_channel(struct wpa_supplicant *wpa_s,
573 : : struct csa_settings *settings)
574 : : {
575 : : if (!wpa_s->driver->switch_channel)
576 : : return -1;
577 : : return wpa_s->driver->switch_channel(wpa_s->drv_priv, settings);
578 : : }
579 : :
580 : 7 : static inline int wpa_drv_wnm_oper(struct wpa_supplicant *wpa_s,
581 : : enum wnm_oper oper, const u8 *peer,
582 : : u8 *buf, u16 *buf_len)
583 : : {
584 [ + - ]: 7 : if (!wpa_s->driver->wnm_oper)
585 : 7 : return -1;
586 : 7 : return wpa_s->driver->wnm_oper(wpa_s->drv_priv, oper, peer, buf,
587 : : buf_len);
588 : : }
589 : :
590 : 1186 : static inline int wpa_drv_status(struct wpa_supplicant *wpa_s,
591 : : char *buf, size_t buflen)
592 : : {
593 [ - + ]: 1186 : if (!wpa_s->driver->status)
594 : 0 : return -1;
595 : 1186 : return wpa_s->driver->status(wpa_s->drv_priv, buf, buflen);
596 : : }
597 : :
598 : 2 : static inline int wpa_drv_set_qos_map(struct wpa_supplicant *wpa_s,
599 : : const u8 *qos_map_set, u8 qos_map_set_len)
600 : : {
601 [ - + ]: 2 : if (!wpa_s->driver->set_qos_map)
602 : 0 : return -1;
603 : 2 : return wpa_s->driver->set_qos_map(wpa_s->drv_priv, qos_map_set,
604 : : qos_map_set_len);
605 : : }
606 : :
607 : : #endif /* DRIVER_I_H */
|