|
wpa_supplicant / hostapd 2.0
|
00001 00010 #ifndef DRIVER_I_H 00011 #define DRIVER_I_H 00012 00013 #include "drivers/driver.h" 00014 00015 /* driver_ops */ 00016 static inline void * wpa_drv_init(struct wpa_supplicant *wpa_s, 00017 const char *ifname) 00018 { 00019 if (wpa_s->driver->init2) 00020 return wpa_s->driver->init2(wpa_s, ifname, 00021 wpa_s->global_drv_priv); 00022 if (wpa_s->driver->init) { 00023 return wpa_s->driver->init(wpa_s, ifname); 00024 } 00025 return NULL; 00026 } 00027 00028 static inline void wpa_drv_deinit(struct wpa_supplicant *wpa_s) 00029 { 00030 if (wpa_s->driver->deinit) 00031 wpa_s->driver->deinit(wpa_s->drv_priv); 00032 } 00033 00034 static inline int wpa_drv_set_param(struct wpa_supplicant *wpa_s, 00035 const char *param) 00036 { 00037 if (wpa_s->driver->set_param) 00038 return wpa_s->driver->set_param(wpa_s->drv_priv, param); 00039 return 0; 00040 } 00041 00042 static inline int wpa_drv_set_countermeasures(struct wpa_supplicant *wpa_s, 00043 int enabled) 00044 { 00045 if (wpa_s->driver->set_countermeasures) { 00046 return wpa_s->driver->set_countermeasures(wpa_s->drv_priv, 00047 enabled); 00048 } 00049 return -1; 00050 } 00051 00052 static inline int wpa_drv_authenticate(struct wpa_supplicant *wpa_s, 00053 struct wpa_driver_auth_params *params) 00054 { 00055 if (wpa_s->driver->authenticate) 00056 return wpa_s->driver->authenticate(wpa_s->drv_priv, params); 00057 return -1; 00058 } 00059 00060 static inline int wpa_drv_associate(struct wpa_supplicant *wpa_s, 00061 struct wpa_driver_associate_params *params) 00062 { 00063 if (wpa_s->driver->associate) { 00064 return wpa_s->driver->associate(wpa_s->drv_priv, params); 00065 } 00066 return -1; 00067 } 00068 00069 static inline int wpa_drv_scan(struct wpa_supplicant *wpa_s, 00070 struct wpa_driver_scan_params *params) 00071 { 00072 if (wpa_s->driver->scan2) 00073 return wpa_s->driver->scan2(wpa_s->drv_priv, params); 00074 return -1; 00075 } 00076 00077 static inline int wpa_drv_sched_scan(struct wpa_supplicant *wpa_s, 00078 struct wpa_driver_scan_params *params, 00079 u32 interval) 00080 { 00081 if (wpa_s->driver->sched_scan) 00082 return wpa_s->driver->sched_scan(wpa_s->drv_priv, 00083 params, interval); 00084 return -1; 00085 } 00086 00087 static inline int wpa_drv_stop_sched_scan(struct wpa_supplicant *wpa_s) 00088 { 00089 if (wpa_s->driver->stop_sched_scan) 00090 return wpa_s->driver->stop_sched_scan(wpa_s->drv_priv); 00091 return -1; 00092 } 00093 00094 static inline struct wpa_scan_results * wpa_drv_get_scan_results2( 00095 struct wpa_supplicant *wpa_s) 00096 { 00097 if (wpa_s->driver->get_scan_results2) 00098 return wpa_s->driver->get_scan_results2(wpa_s->drv_priv); 00099 return NULL; 00100 } 00101 00102 static inline int wpa_drv_get_bssid(struct wpa_supplicant *wpa_s, u8 *bssid) 00103 { 00104 if (wpa_s->driver->get_bssid) { 00105 return wpa_s->driver->get_bssid(wpa_s->drv_priv, bssid); 00106 } 00107 return -1; 00108 } 00109 00110 static inline int wpa_drv_get_ssid(struct wpa_supplicant *wpa_s, u8 *ssid) 00111 { 00112 if (wpa_s->driver->get_ssid) { 00113 return wpa_s->driver->get_ssid(wpa_s->drv_priv, ssid); 00114 } 00115 return -1; 00116 } 00117 00118 static inline int wpa_drv_set_key(struct wpa_supplicant *wpa_s, 00119 enum wpa_alg alg, const u8 *addr, 00120 int key_idx, int set_tx, 00121 const u8 *seq, size_t seq_len, 00122 const u8 *key, size_t key_len) 00123 { 00124 if (wpa_s->driver->set_key) { 00125 wpa_s->keys_cleared = 0; 00126 return wpa_s->driver->set_key(wpa_s->ifname, wpa_s->drv_priv, 00127 alg, addr, key_idx, set_tx, 00128 seq, seq_len, key, key_len); 00129 } 00130 return -1; 00131 } 00132 00133 static inline int wpa_drv_deauthenticate(struct wpa_supplicant *wpa_s, 00134 const u8 *addr, int reason_code) 00135 { 00136 if (wpa_s->driver->deauthenticate) { 00137 return wpa_s->driver->deauthenticate(wpa_s->drv_priv, addr, 00138 reason_code); 00139 } 00140 return -1; 00141 } 00142 00143 static inline int wpa_drv_disassociate(struct wpa_supplicant *wpa_s, 00144 const u8 *addr, int reason_code) 00145 { 00146 if (wpa_s->driver->disassociate) { 00147 return wpa_s->driver->disassociate(wpa_s->drv_priv, addr, 00148 reason_code); 00149 } 00150 return -1; 00151 } 00152 00153 static inline int wpa_drv_add_pmkid(struct wpa_supplicant *wpa_s, 00154 const u8 *bssid, const u8 *pmkid) 00155 { 00156 if (wpa_s->driver->add_pmkid) { 00157 return wpa_s->driver->add_pmkid(wpa_s->drv_priv, bssid, pmkid); 00158 } 00159 return -1; 00160 } 00161 00162 static inline int wpa_drv_remove_pmkid(struct wpa_supplicant *wpa_s, 00163 const u8 *bssid, const u8 *pmkid) 00164 { 00165 if (wpa_s->driver->remove_pmkid) { 00166 return wpa_s->driver->remove_pmkid(wpa_s->drv_priv, bssid, 00167 pmkid); 00168 } 00169 return -1; 00170 } 00171 00172 static inline int wpa_drv_flush_pmkid(struct wpa_supplicant *wpa_s) 00173 { 00174 if (wpa_s->driver->flush_pmkid) { 00175 return wpa_s->driver->flush_pmkid(wpa_s->drv_priv); 00176 } 00177 return -1; 00178 } 00179 00180 static inline int wpa_drv_get_capa(struct wpa_supplicant *wpa_s, 00181 struct wpa_driver_capa *capa) 00182 { 00183 if (wpa_s->driver->get_capa) { 00184 return wpa_s->driver->get_capa(wpa_s->drv_priv, capa); 00185 } 00186 return -1; 00187 } 00188 00189 static inline void wpa_drv_poll(struct wpa_supplicant *wpa_s) 00190 { 00191 if (wpa_s->driver->poll) { 00192 wpa_s->driver->poll(wpa_s->drv_priv); 00193 } 00194 } 00195 00196 static inline const char * wpa_drv_get_ifname(struct wpa_supplicant *wpa_s) 00197 { 00198 if (wpa_s->driver->get_ifname) { 00199 return wpa_s->driver->get_ifname(wpa_s->drv_priv); 00200 } 00201 return NULL; 00202 } 00203 00204 static inline const u8 * wpa_drv_get_mac_addr(struct wpa_supplicant *wpa_s) 00205 { 00206 if (wpa_s->driver->get_mac_addr) { 00207 return wpa_s->driver->get_mac_addr(wpa_s->drv_priv); 00208 } 00209 return NULL; 00210 } 00211 00212 static inline int wpa_drv_send_eapol(struct wpa_supplicant *wpa_s, 00213 const u8 *dst, u16 proto, 00214 const u8 *data, size_t data_len) 00215 { 00216 if (wpa_s->driver->send_eapol) 00217 return wpa_s->driver->send_eapol(wpa_s->drv_priv, dst, proto, 00218 data, data_len); 00219 return -1; 00220 } 00221 00222 static inline int wpa_drv_set_operstate(struct wpa_supplicant *wpa_s, 00223 int state) 00224 { 00225 if (wpa_s->driver->set_operstate) 00226 return wpa_s->driver->set_operstate(wpa_s->drv_priv, state); 00227 return 0; 00228 } 00229 00230 static inline int wpa_drv_mlme_setprotection(struct wpa_supplicant *wpa_s, 00231 const u8 *addr, int protect_type, 00232 int key_type) 00233 { 00234 if (wpa_s->driver->mlme_setprotection) 00235 return wpa_s->driver->mlme_setprotection(wpa_s->drv_priv, addr, 00236 protect_type, 00237 key_type); 00238 return 0; 00239 } 00240 00241 static inline struct hostapd_hw_modes * 00242 wpa_drv_get_hw_feature_data(struct wpa_supplicant *wpa_s, u16 *num_modes, 00243 u16 *flags) 00244 { 00245 if (wpa_s->driver->get_hw_feature_data) 00246 return wpa_s->driver->get_hw_feature_data(wpa_s->drv_priv, 00247 num_modes, flags); 00248 return NULL; 00249 } 00250 00251 static inline int wpa_drv_set_country(struct wpa_supplicant *wpa_s, 00252 const char *alpha2) 00253 { 00254 if (wpa_s->driver->set_country) 00255 return wpa_s->driver->set_country(wpa_s->drv_priv, alpha2); 00256 return 0; 00257 } 00258 00259 static inline int wpa_drv_send_mlme(struct wpa_supplicant *wpa_s, 00260 const u8 *data, size_t data_len, int noack) 00261 { 00262 if (wpa_s->driver->send_mlme) 00263 return wpa_s->driver->send_mlme(wpa_s->drv_priv, 00264 data, data_len, noack); 00265 return -1; 00266 } 00267 00268 static inline int wpa_drv_update_ft_ies(struct wpa_supplicant *wpa_s, 00269 const u8 *md, 00270 const u8 *ies, size_t ies_len) 00271 { 00272 if (wpa_s->driver->update_ft_ies) 00273 return wpa_s->driver->update_ft_ies(wpa_s->drv_priv, md, 00274 ies, ies_len); 00275 return -1; 00276 } 00277 00278 static inline int wpa_drv_send_ft_action(struct wpa_supplicant *wpa_s, 00279 u8 action, const u8 *target_ap, 00280 const u8 *ies, size_t ies_len) 00281 { 00282 if (wpa_s->driver->send_ft_action) 00283 return wpa_s->driver->send_ft_action(wpa_s->drv_priv, action, 00284 target_ap, ies, ies_len); 00285 return -1; 00286 } 00287 00288 static inline int wpa_drv_set_ap(struct wpa_supplicant *wpa_s, 00289 struct wpa_driver_ap_params *params) 00290 { 00291 if (wpa_s->driver->set_ap) 00292 return wpa_s->driver->set_ap(wpa_s->drv_priv, params); 00293 return -1; 00294 } 00295 00296 static inline int wpa_drv_sta_add(struct wpa_supplicant *wpa_s, 00297 struct hostapd_sta_add_params *params) 00298 { 00299 if (wpa_s->driver->sta_add) 00300 return wpa_s->driver->sta_add(wpa_s->drv_priv, params); 00301 return -1; 00302 } 00303 00304 static inline int wpa_drv_sta_remove(struct wpa_supplicant *wpa_s, 00305 const u8 *addr) 00306 { 00307 if (wpa_s->driver->sta_remove) 00308 return wpa_s->driver->sta_remove(wpa_s->drv_priv, addr); 00309 return -1; 00310 } 00311 00312 static inline int wpa_drv_hapd_send_eapol(struct wpa_supplicant *wpa_s, 00313 const u8 *addr, const u8 *data, 00314 size_t data_len, int encrypt, 00315 const u8 *own_addr, u32 flags) 00316 { 00317 if (wpa_s->driver->hapd_send_eapol) 00318 return wpa_s->driver->hapd_send_eapol(wpa_s->drv_priv, addr, 00319 data, data_len, encrypt, 00320 own_addr, flags); 00321 return -1; 00322 } 00323 00324 static inline int wpa_drv_sta_set_flags(struct wpa_supplicant *wpa_s, 00325 const u8 *addr, int total_flags, 00326 int flags_or, int flags_and) 00327 { 00328 if (wpa_s->driver->sta_set_flags) 00329 return wpa_s->driver->sta_set_flags(wpa_s->drv_priv, addr, 00330 total_flags, flags_or, 00331 flags_and); 00332 return -1; 00333 } 00334 00335 static inline int wpa_drv_set_supp_port(struct wpa_supplicant *wpa_s, 00336 int authorized) 00337 { 00338 if (wpa_s->driver->set_supp_port) { 00339 return wpa_s->driver->set_supp_port(wpa_s->drv_priv, 00340 authorized); 00341 } 00342 return 0; 00343 } 00344 00345 static inline int wpa_drv_send_action(struct wpa_supplicant *wpa_s, 00346 unsigned int freq, 00347 unsigned int wait, 00348 const u8 *dst, const u8 *src, 00349 const u8 *bssid, 00350 const u8 *data, size_t data_len, 00351 int no_cck) 00352 { 00353 if (wpa_s->driver->send_action) 00354 return wpa_s->driver->send_action(wpa_s->drv_priv, freq, 00355 wait, dst, src, bssid, 00356 data, data_len, no_cck); 00357 return -1; 00358 } 00359 00360 static inline void wpa_drv_send_action_cancel_wait(struct wpa_supplicant *wpa_s) 00361 { 00362 if (wpa_s->driver->send_action_cancel_wait) 00363 wpa_s->driver->send_action_cancel_wait(wpa_s->drv_priv); 00364 } 00365 00366 static inline int wpa_drv_set_freq(struct wpa_supplicant *wpa_s, 00367 struct hostapd_freq_params *freq) 00368 { 00369 if (wpa_s->driver->set_freq) 00370 return wpa_s->driver->set_freq(wpa_s->drv_priv, freq); 00371 return -1; 00372 } 00373 00374 static inline int wpa_drv_if_add(struct wpa_supplicant *wpa_s, 00375 enum wpa_driver_if_type type, 00376 const char *ifname, const u8 *addr, 00377 void *bss_ctx, char *force_ifname, 00378 u8 *if_addr, const char *bridge) 00379 { 00380 if (wpa_s->driver->if_add) 00381 return wpa_s->driver->if_add(wpa_s->drv_priv, type, ifname, 00382 addr, bss_ctx, NULL, force_ifname, 00383 if_addr, bridge); 00384 return -1; 00385 } 00386 00387 static inline int wpa_drv_if_remove(struct wpa_supplicant *wpa_s, 00388 enum wpa_driver_if_type type, 00389 const char *ifname) 00390 { 00391 if (wpa_s->driver->if_remove) 00392 return wpa_s->driver->if_remove(wpa_s->drv_priv, type, ifname); 00393 return -1; 00394 } 00395 00396 static inline int wpa_drv_remain_on_channel(struct wpa_supplicant *wpa_s, 00397 unsigned int freq, 00398 unsigned int duration) 00399 { 00400 if (wpa_s->driver->remain_on_channel) 00401 return wpa_s->driver->remain_on_channel(wpa_s->drv_priv, freq, 00402 duration); 00403 return -1; 00404 } 00405 00406 static inline int wpa_drv_cancel_remain_on_channel( 00407 struct wpa_supplicant *wpa_s) 00408 { 00409 if (wpa_s->driver->cancel_remain_on_channel) 00410 return wpa_s->driver->cancel_remain_on_channel( 00411 wpa_s->drv_priv); 00412 return -1; 00413 } 00414 00415 static inline int wpa_drv_probe_req_report(struct wpa_supplicant *wpa_s, 00416 int report) 00417 { 00418 if (wpa_s->driver->probe_req_report) 00419 return wpa_s->driver->probe_req_report(wpa_s->drv_priv, 00420 report); 00421 return -1; 00422 } 00423 00424 static inline int wpa_drv_deinit_ap(struct wpa_supplicant *wpa_s) 00425 { 00426 if (wpa_s->driver->deinit_ap) 00427 return wpa_s->driver->deinit_ap(wpa_s->drv_priv); 00428 return 0; 00429 } 00430 00431 static inline int wpa_drv_deinit_p2p_cli(struct wpa_supplicant *wpa_s) 00432 { 00433 if (wpa_s->driver->deinit_p2p_cli) 00434 return wpa_s->driver->deinit_p2p_cli(wpa_s->drv_priv); 00435 return 0; 00436 } 00437 00438 static inline void wpa_drv_suspend(struct wpa_supplicant *wpa_s) 00439 { 00440 if (wpa_s->driver->suspend) 00441 wpa_s->driver->suspend(wpa_s->drv_priv); 00442 } 00443 00444 static inline void wpa_drv_resume(struct wpa_supplicant *wpa_s) 00445 { 00446 if (wpa_s->driver->resume) 00447 wpa_s->driver->resume(wpa_s->drv_priv); 00448 } 00449 00450 static inline int wpa_drv_signal_monitor(struct wpa_supplicant *wpa_s, 00451 int threshold, int hysteresis) 00452 { 00453 if (wpa_s->driver->signal_monitor) 00454 return wpa_s->driver->signal_monitor(wpa_s->drv_priv, 00455 threshold, hysteresis); 00456 return -1; 00457 } 00458 00459 static inline int wpa_drv_signal_poll(struct wpa_supplicant *wpa_s, 00460 struct wpa_signal_info *si) 00461 { 00462 if (wpa_s->driver->signal_poll) 00463 return wpa_s->driver->signal_poll(wpa_s->drv_priv, si); 00464 return -1; 00465 } 00466 00467 static inline int wpa_drv_set_ap_wps_ie(struct wpa_supplicant *wpa_s, 00468 const struct wpabuf *beacon, 00469 const struct wpabuf *proberesp, 00470 const struct wpabuf *assocresp) 00471 { 00472 if (!wpa_s->driver->set_ap_wps_ie) 00473 return -1; 00474 return wpa_s->driver->set_ap_wps_ie(wpa_s->drv_priv, beacon, 00475 proberesp, assocresp); 00476 } 00477 00478 static inline int wpa_drv_shared_freq(struct wpa_supplicant *wpa_s) 00479 { 00480 if (!wpa_s->driver->shared_freq) 00481 return -1; 00482 return wpa_s->driver->shared_freq(wpa_s->drv_priv); 00483 } 00484 00485 static inline int wpa_drv_get_noa(struct wpa_supplicant *wpa_s, 00486 u8 *buf, size_t buf_len) 00487 { 00488 if (!wpa_s->driver->get_noa) 00489 return -1; 00490 return wpa_s->driver->get_noa(wpa_s->drv_priv, buf, buf_len); 00491 } 00492 00493 static inline int wpa_drv_set_p2p_powersave(struct wpa_supplicant *wpa_s, 00494 int legacy_ps, int opp_ps, 00495 int ctwindow) 00496 { 00497 if (!wpa_s->driver->set_p2p_powersave) 00498 return -1; 00499 return wpa_s->driver->set_p2p_powersave(wpa_s->drv_priv, legacy_ps, 00500 opp_ps, ctwindow); 00501 } 00502 00503 static inline int wpa_drv_ampdu(struct wpa_supplicant *wpa_s, int ampdu) 00504 { 00505 if (!wpa_s->driver->ampdu) 00506 return -1; 00507 return wpa_s->driver->ampdu(wpa_s->drv_priv, ampdu); 00508 } 00509 00510 static inline int wpa_drv_p2p_find(struct wpa_supplicant *wpa_s, 00511 unsigned int timeout, int type) 00512 { 00513 if (!wpa_s->driver->p2p_find) 00514 return -1; 00515 return wpa_s->driver->p2p_find(wpa_s->drv_priv, timeout, type); 00516 } 00517 00518 static inline int wpa_drv_p2p_stop_find(struct wpa_supplicant *wpa_s) 00519 { 00520 if (!wpa_s->driver->p2p_stop_find) 00521 return -1; 00522 return wpa_s->driver->p2p_stop_find(wpa_s->drv_priv); 00523 } 00524 00525 static inline int wpa_drv_p2p_listen(struct wpa_supplicant *wpa_s, 00526 unsigned int timeout) 00527 { 00528 if (!wpa_s->driver->p2p_listen) 00529 return -1; 00530 return wpa_s->driver->p2p_listen(wpa_s->drv_priv, timeout); 00531 } 00532 00533 static inline int wpa_drv_p2p_connect(struct wpa_supplicant *wpa_s, 00534 const u8 *peer_addr, int wps_method, 00535 int go_intent, 00536 const u8 *own_interface_addr, 00537 unsigned int force_freq, 00538 int persistent_group) 00539 { 00540 if (!wpa_s->driver->p2p_connect) 00541 return -1; 00542 return wpa_s->driver->p2p_connect(wpa_s->drv_priv, peer_addr, 00543 wps_method, go_intent, 00544 own_interface_addr, force_freq, 00545 persistent_group); 00546 } 00547 00548 static inline int wpa_drv_wps_success_cb(struct wpa_supplicant *wpa_s, 00549 const u8 *peer_addr) 00550 { 00551 if (!wpa_s->driver->wps_success_cb) 00552 return -1; 00553 return wpa_s->driver->wps_success_cb(wpa_s->drv_priv, peer_addr); 00554 } 00555 00556 static inline int 00557 wpa_drv_p2p_group_formation_failed(struct wpa_supplicant *wpa_s) 00558 { 00559 if (!wpa_s->driver->p2p_group_formation_failed) 00560 return -1; 00561 return wpa_s->driver->p2p_group_formation_failed(wpa_s->drv_priv); 00562 } 00563 00564 static inline int wpa_drv_p2p_set_params(struct wpa_supplicant *wpa_s, 00565 const struct p2p_params *params) 00566 { 00567 if (!wpa_s->driver->p2p_set_params) 00568 return -1; 00569 return wpa_s->driver->p2p_set_params(wpa_s->drv_priv, params); 00570 } 00571 00572 static inline int wpa_drv_p2p_prov_disc_req(struct wpa_supplicant *wpa_s, 00573 const u8 *peer_addr, 00574 u16 config_methods, int join) 00575 { 00576 if (!wpa_s->driver->p2p_prov_disc_req) 00577 return -1; 00578 return wpa_s->driver->p2p_prov_disc_req(wpa_s->drv_priv, peer_addr, 00579 config_methods, join); 00580 } 00581 00582 static inline u64 wpa_drv_p2p_sd_request(struct wpa_supplicant *wpa_s, 00583 const u8 *dst, 00584 const struct wpabuf *tlvs) 00585 { 00586 if (!wpa_s->driver->p2p_sd_request) 00587 return 0; 00588 return wpa_s->driver->p2p_sd_request(wpa_s->drv_priv, dst, tlvs); 00589 } 00590 00591 static inline int wpa_drv_p2p_sd_cancel_request(struct wpa_supplicant *wpa_s, 00592 u64 req) 00593 { 00594 if (!wpa_s->driver->p2p_sd_cancel_request) 00595 return -1; 00596 return wpa_s->driver->p2p_sd_cancel_request(wpa_s->drv_priv, req); 00597 } 00598 00599 static inline int wpa_drv_p2p_sd_response(struct wpa_supplicant *wpa_s, 00600 int freq, const u8 *dst, 00601 u8 dialog_token, 00602 const struct wpabuf *resp_tlvs) 00603 { 00604 if (!wpa_s->driver->p2p_sd_response) 00605 return -1; 00606 return wpa_s->driver->p2p_sd_response(wpa_s->drv_priv, freq, dst, 00607 dialog_token, resp_tlvs); 00608 } 00609 00610 static inline int wpa_drv_p2p_service_update(struct wpa_supplicant *wpa_s) 00611 { 00612 if (!wpa_s->driver->p2p_service_update) 00613 return -1; 00614 return wpa_s->driver->p2p_service_update(wpa_s->drv_priv); 00615 } 00616 00617 static inline int wpa_drv_p2p_reject(struct wpa_supplicant *wpa_s, 00618 const u8 *addr) 00619 { 00620 if (!wpa_s->driver->p2p_reject) 00621 return -1; 00622 return wpa_s->driver->p2p_reject(wpa_s->drv_priv, addr); 00623 } 00624 00625 static inline int wpa_drv_p2p_invite(struct wpa_supplicant *wpa_s, 00626 const u8 *peer, int role, const u8 *bssid, 00627 const u8 *ssid, size_t ssid_len, 00628 const u8 *go_dev_addr, 00629 int persistent_group) 00630 { 00631 if (!wpa_s->driver->p2p_invite) 00632 return -1; 00633 return wpa_s->driver->p2p_invite(wpa_s->drv_priv, peer, role, bssid, 00634 ssid, ssid_len, go_dev_addr, 00635 persistent_group); 00636 } 00637 00638 static inline int wpa_drv_send_tdls_mgmt(struct wpa_supplicant *wpa_s, 00639 const u8 *dst, u8 action_code, 00640 u8 dialog_token, u16 status_code, 00641 const u8 *buf, size_t len) 00642 { 00643 if (wpa_s->driver->send_tdls_mgmt) { 00644 return wpa_s->driver->send_tdls_mgmt(wpa_s->drv_priv, dst, 00645 action_code, dialog_token, 00646 status_code, buf, len); 00647 } 00648 return -1; 00649 } 00650 00651 static inline int wpa_drv_tdls_oper(struct wpa_supplicant *wpa_s, 00652 enum tdls_oper oper, const u8 *peer) 00653 { 00654 if (!wpa_s->driver->tdls_oper) 00655 return -1; 00656 return wpa_s->driver->tdls_oper(wpa_s->drv_priv, oper, peer); 00657 } 00658 00659 static inline void wpa_drv_set_rekey_info(struct wpa_supplicant *wpa_s, 00660 const u8 *kek, const u8 *kck, 00661 const u8 *replay_ctr) 00662 { 00663 if (!wpa_s->driver->set_rekey_info) 00664 return; 00665 wpa_s->driver->set_rekey_info(wpa_s->drv_priv, kek, kck, replay_ctr); 00666 } 00667 00668 static inline int wpa_drv_radio_disable(struct wpa_supplicant *wpa_s, 00669 int disabled) 00670 { 00671 if (!wpa_s->driver->radio_disable) 00672 return -1; 00673 return wpa_s->driver->radio_disable(wpa_s->drv_priv, disabled); 00674 } 00675 00676 #endif /* DRIVER_I_H */ 00677
1.7.3