LCOV - code coverage report
Current view: top level - wpa_supplicant - driver_i.h (source / functions) Hit Total Coverage
Test: wpa_supplicant hwsim test run 1388167526 Lines: 169 297 56.9 %
Date: 2013-12-27 Functions: 44 73 60.3 %
Branches: 44 148 29.7 %

           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                 :         22 : static inline void * wpa_drv_init(struct wpa_supplicant *wpa_s,
      16                 :            :                                   const char *ifname)
      17                 :            : {
      18         [ +  - ]:         22 :         if (wpa_s->driver->init2)
      19                 :         22 :                 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                 :         22 :         return NULL;
      25                 :            : }
      26                 :            : 
      27                 :         22 : static inline void wpa_drv_deinit(struct wpa_supplicant *wpa_s)
      28                 :            : {
      29         [ +  - ]:         22 :         if (wpa_s->driver->deinit)
      30                 :         22 :                 wpa_s->driver->deinit(wpa_s->drv_priv);
      31                 :         22 : }
      32                 :            : 
      33                 :         22 : static inline int wpa_drv_set_param(struct wpa_supplicant *wpa_s,
      34                 :            :                                     const char *param)
      35                 :            : {
      36         [ +  - ]:         22 :         if (wpa_s->driver->set_param)
      37                 :         22 :                 return wpa_s->driver->set_param(wpa_s->drv_priv, param);
      38                 :         22 :         return 0;
      39                 :            : }
      40                 :            : 
      41                 :         44 : static inline int wpa_drv_set_countermeasures(struct wpa_supplicant *wpa_s,
      42                 :            :                                               int enabled)
      43                 :            : {
      44         [ -  + ]:         44 :         if (wpa_s->driver->set_countermeasures) {
      45                 :          0 :                 return wpa_s->driver->set_countermeasures(wpa_s->drv_priv,
      46                 :            :                                                           enabled);
      47                 :            :         }
      48                 :         44 :         return -1;
      49                 :            : }
      50                 :            : 
      51                 :        356 : static inline int wpa_drv_authenticate(struct wpa_supplicant *wpa_s,
      52                 :            :                                        struct wpa_driver_auth_params *params)
      53                 :            : {
      54         [ +  - ]:        356 :         if (wpa_s->driver->authenticate)
      55                 :        356 :                 return wpa_s->driver->authenticate(wpa_s->drv_priv, params);
      56                 :        356 :         return -1;
      57                 :            : }
      58                 :            : 
      59                 :        390 : static inline int wpa_drv_associate(struct wpa_supplicant *wpa_s,
      60                 :            :                                     struct wpa_driver_associate_params *params)
      61                 :            : {
      62         [ +  - ]:        390 :         if (wpa_s->driver->associate) {
      63                 :        390 :                 return wpa_s->driver->associate(wpa_s->drv_priv, params);
      64                 :            :         }
      65                 :        390 :         return -1;
      66                 :            : }
      67                 :            : 
      68                 :        774 : static inline int wpa_drv_scan(struct wpa_supplicant *wpa_s,
      69                 :            :                                struct wpa_driver_scan_params *params)
      70                 :            : {
      71         [ +  - ]:        774 :         if (wpa_s->driver->scan2)
      72                 :        774 :                 return wpa_s->driver->scan2(wpa_s->drv_priv, params);
      73                 :        774 :         return -1;
      74                 :            : }
      75                 :            : 
      76                 :          0 : static inline int wpa_drv_sched_scan(struct wpa_supplicant *wpa_s,
      77                 :            :                                      struct wpa_driver_scan_params *params,
      78                 :            :                                      u32 interval)
      79                 :            : {
      80         [ #  # ]:          0 :         if (wpa_s->driver->sched_scan)
      81                 :          0 :                 return wpa_s->driver->sched_scan(wpa_s->drv_priv,
      82                 :            :                                                  params, interval);
      83                 :          0 :         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                 :        767 : static inline struct wpa_scan_results * wpa_drv_get_scan_results2(
      94                 :            :         struct wpa_supplicant *wpa_s)
      95                 :            : {
      96         [ +  - ]:        767 :         if (wpa_s->driver->get_scan_results2)
      97                 :        767 :                 return wpa_s->driver->get_scan_results2(wpa_s->drv_priv);
      98                 :        767 :         return NULL;
      99                 :            : }
     100                 :            : 
     101                 :        553 : static inline int wpa_drv_get_bssid(struct wpa_supplicant *wpa_s, u8 *bssid)
     102                 :            : {
     103         [ +  - ]:        553 :         if (wpa_s->driver->get_bssid) {
     104                 :        553 :                 return wpa_s->driver->get_bssid(wpa_s->drv_priv, bssid);
     105                 :            :         }
     106                 :        553 :         return -1;
     107                 :            : }
     108                 :            : 
     109                 :        206 : static inline int wpa_drv_get_ssid(struct wpa_supplicant *wpa_s, u8 *ssid)
     110                 :            : {
     111         [ +  - ]:        206 :         if (wpa_s->driver->get_ssid) {
     112                 :        206 :                 return wpa_s->driver->get_ssid(wpa_s->drv_priv, ssid);
     113                 :            :         }
     114                 :        206 :         return -1;
     115                 :            : }
     116                 :            : 
     117                 :       4615 : 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         [ +  - ]:       4615 :         if (wpa_s->driver->set_key) {
     124                 :       4615 :                 wpa_s->keys_cleared = 0;
     125                 :       4615 :                 return wpa_s->driver->set_key(wpa_s->ifname, wpa_s->drv_priv,
     126                 :            :                                               alg, addr, key_idx, set_tx,
     127                 :            :                                               seq, seq_len, key, key_len);
     128                 :            :         }
     129                 :       4615 :         return -1;
     130                 :            : }
     131                 :            : 
     132                 :          0 : static inline int wpa_drv_sta_deauth(struct wpa_supplicant *wpa_s,
     133                 :            :                                      const u8 *addr, int reason_code)
     134                 :            : {
     135         [ #  # ]:          0 :         if (wpa_s->driver->sta_deauth) {
     136                 :          0 :                 return wpa_s->driver->sta_deauth(wpa_s->drv_priv,
     137                 :          0 :                                                  wpa_s->own_addr, addr,
     138                 :            :                                                  reason_code);
     139                 :            :         }
     140                 :          0 :         return -1;
     141                 :            : }
     142                 :            : 
     143                 :        329 : static inline int wpa_drv_deauthenticate(struct wpa_supplicant *wpa_s,
     144                 :            :                                          const u8 *addr, int reason_code)
     145                 :            : {
     146         [ +  - ]:        329 :         if (wpa_s->driver->deauthenticate) {
     147                 :        329 :                 return wpa_s->driver->deauthenticate(wpa_s->drv_priv, addr,
     148                 :            :                                                      reason_code);
     149                 :            :         }
     150                 :        329 :         return -1;
     151                 :            : }
     152                 :            : 
     153                 :         42 : static inline int wpa_drv_add_pmkid(struct wpa_supplicant *wpa_s,
     154                 :            :                                     const u8 *bssid, const u8 *pmkid)
     155                 :            : {
     156         [ +  - ]:         42 :         if (wpa_s->driver->add_pmkid) {
     157                 :         42 :                 return wpa_s->driver->add_pmkid(wpa_s->drv_priv, bssid, pmkid);
     158                 :            :         }
     159                 :         42 :         return -1;
     160                 :            : }
     161                 :            : 
     162                 :         42 : static inline int wpa_drv_remove_pmkid(struct wpa_supplicant *wpa_s,
     163                 :            :                                        const u8 *bssid, const u8 *pmkid)
     164                 :            : {
     165         [ +  - ]:         42 :         if (wpa_s->driver->remove_pmkid) {
     166                 :         42 :                 return wpa_s->driver->remove_pmkid(wpa_s->drv_priv, bssid,
     167                 :            :                                                    pmkid);
     168                 :            :         }
     169                 :         42 :         return -1;
     170                 :            : }
     171                 :            : 
     172                 :         22 : static inline int wpa_drv_flush_pmkid(struct wpa_supplicant *wpa_s)
     173                 :            : {
     174         [ +  - ]:         22 :         if (wpa_s->driver->flush_pmkid) {
     175                 :         22 :                 return wpa_s->driver->flush_pmkid(wpa_s->drv_priv);
     176                 :            :         }
     177                 :         22 :         return -1;
     178                 :            : }
     179                 :            : 
     180                 :         96 : static inline int wpa_drv_get_capa(struct wpa_supplicant *wpa_s,
     181                 :            :                                    struct wpa_driver_capa *capa)
     182                 :            : {
     183         [ +  - ]:         96 :         if (wpa_s->driver->get_capa) {
     184                 :         96 :                 return wpa_s->driver->get_capa(wpa_s->drv_priv, capa);
     185                 :            :         }
     186                 :         96 :         return -1;
     187                 :            : }
     188                 :            : 
     189                 :        385 : static inline void wpa_drv_poll(struct wpa_supplicant *wpa_s)
     190                 :            : {
     191         [ -  + ]:        385 :         if (wpa_s->driver->poll) {
     192                 :          0 :                 wpa_s->driver->poll(wpa_s->drv_priv);
     193                 :            :         }
     194                 :        385 : }
     195                 :            : 
     196                 :         22 : static inline const char * wpa_drv_get_ifname(struct wpa_supplicant *wpa_s)
     197                 :            : {
     198         [ -  + ]:         22 :         if (wpa_s->driver->get_ifname) {
     199                 :          0 :                 return wpa_s->driver->get_ifname(wpa_s->drv_priv);
     200                 :            :         }
     201                 :         22 :         return NULL;
     202                 :            : }
     203                 :            : 
     204                 :         22 : static inline const u8 * wpa_drv_get_mac_addr(struct wpa_supplicant *wpa_s)
     205                 :            : {
     206         [ +  - ]:         22 :         if (wpa_s->driver->get_mac_addr) {
     207                 :         22 :                 return wpa_s->driver->get_mac_addr(wpa_s->drv_priv);
     208                 :            :         }
     209                 :         22 :         return NULL;
     210                 :            : }
     211                 :            : 
     212                 :          0 : static inline int wpa_drv_send_eapol(struct wpa_supplicant *wpa_s,
     213                 :            :                                      const u8 *dst, u16 proto,
     214                 :            :                                      const u8 *data, size_t data_len)
     215                 :            : {
     216         [ #  # ]:          0 :         if (wpa_s->driver->send_eapol)
     217                 :          0 :                 return wpa_s->driver->send_eapol(wpa_s->drv_priv, dst, proto,
     218                 :            :                                                  data, data_len);
     219                 :          0 :         return -1;
     220                 :            : }
     221                 :            : 
     222                 :       2116 : static inline int wpa_drv_set_operstate(struct wpa_supplicant *wpa_s,
     223                 :            :                                         int state)
     224                 :            : {
     225         [ +  - ]:       2116 :         if (wpa_s->driver->set_operstate)
     226                 :       2116 :                 return wpa_s->driver->set_operstate(wpa_s->drv_priv, state);
     227                 :       2116 :         return 0;
     228                 :            : }
     229                 :            : 
     230                 :        933 : static inline int wpa_drv_mlme_setprotection(struct wpa_supplicant *wpa_s,
     231                 :            :                                              const u8 *addr, int protect_type,
     232                 :            :                                              int key_type)
     233                 :            : {
     234         [ -  + ]:        933 :         if (wpa_s->driver->mlme_setprotection)
     235                 :          0 :                 return wpa_s->driver->mlme_setprotection(wpa_s->drv_priv, addr,
     236                 :            :                                                          protect_type,
     237                 :            :                                                          key_type);
     238                 :        933 :         return 0;
     239                 :            : }
     240                 :            : 
     241                 :            : static inline struct hostapd_hw_modes *
     242                 :        817 : wpa_drv_get_hw_feature_data(struct wpa_supplicant *wpa_s, u16 *num_modes,
     243                 :            :                             u16 *flags)
     244                 :            : {
     245         [ +  - ]:        817 :         if (wpa_s->driver->get_hw_feature_data)
     246                 :        817 :                 return wpa_s->driver->get_hw_feature_data(wpa_s->drv_priv,
     247                 :            :                                                           num_modes, flags);
     248                 :        817 :         return NULL;
     249                 :            : }
     250                 :            : 
     251                 :          0 : static inline int wpa_drv_set_country(struct wpa_supplicant *wpa_s,
     252                 :            :                                       const char *alpha2)
     253                 :            : {
     254         [ #  # ]:          0 :         if (wpa_s->driver->set_country)
     255                 :          0 :                 return wpa_s->driver->set_country(wpa_s->drv_priv, alpha2);
     256                 :          0 :         return 0;
     257                 :            : }
     258                 :            : 
     259                 :        249 : static inline int wpa_drv_send_mlme(struct wpa_supplicant *wpa_s,
     260                 :            :                                     const u8 *data, size_t data_len, int noack)
     261                 :            : {
     262         [ +  - ]:        249 :         if (wpa_s->driver->send_mlme)
     263                 :        249 :                 return wpa_s->driver->send_mlme(wpa_s->drv_priv,
     264                 :            :                                                 data, data_len, noack);
     265                 :        249 :         return -1;
     266                 :            : }
     267                 :            : 
     268                 :          0 : static inline int wpa_drv_update_ft_ies(struct wpa_supplicant *wpa_s,
     269                 :            :                                         const u8 *md,
     270                 :            :                                         const u8 *ies, size_t ies_len)
     271                 :            : {
     272         [ #  # ]:          0 :         if (wpa_s->driver->update_ft_ies)
     273                 :          0 :                 return wpa_s->driver->update_ft_ies(wpa_s->drv_priv, md,
     274                 :            :                                                     ies, ies_len);
     275                 :          0 :         return -1;
     276                 :            : }
     277                 :            : 
     278                 :          0 : static inline int wpa_drv_send_ft_action(struct wpa_supplicant *wpa_s,
     279                 :            :                                          u8 action, const u8 *target_ap,
     280                 :            :                                          const u8 *ies, size_t ies_len)
     281                 :            : {
     282         [ #  # ]:          0 :         if (wpa_s->driver->send_ft_action)
     283                 :          0 :                 return wpa_s->driver->send_ft_action(wpa_s->drv_priv, action,
     284                 :            :                                                      target_ap, ies, ies_len);
     285                 :          0 :         return -1;
     286                 :            : }
     287                 :            : 
     288                 :            : static inline int wpa_drv_set_ap(struct wpa_supplicant *wpa_s,
     289                 :            :                                  struct wpa_driver_ap_params *params)
     290                 :            : {
     291                 :            :         if (wpa_s->driver->set_ap)
     292                 :            :                 return wpa_s->driver->set_ap(wpa_s->drv_priv, params);
     293                 :            :         return -1;
     294                 :            : }
     295                 :            : 
     296                 :         81 : static inline int wpa_drv_sta_add(struct wpa_supplicant *wpa_s,
     297                 :            :                                   struct hostapd_sta_add_params *params)
     298                 :            : {
     299         [ +  - ]:         81 :         if (wpa_s->driver->sta_add)
     300                 :         81 :                 return wpa_s->driver->sta_add(wpa_s->drv_priv, params);
     301                 :         81 :         return -1;
     302                 :            : }
     303                 :            : 
     304                 :            : static inline int wpa_drv_sta_remove(struct wpa_supplicant *wpa_s,
     305                 :            :                                      const u8 *addr)
     306                 :            : {
     307                 :            :         if (wpa_s->driver->sta_remove)
     308                 :            :                 return wpa_s->driver->sta_remove(wpa_s->drv_priv, addr);
     309                 :            :         return -1;
     310                 :            : }
     311                 :            : 
     312                 :            : static inline int wpa_drv_hapd_send_eapol(struct wpa_supplicant *wpa_s,
     313                 :            :                                           const u8 *addr, const u8 *data,
     314                 :            :                                           size_t data_len, int encrypt,
     315                 :            :                                           const u8 *own_addr, u32 flags)
     316                 :            : {
     317                 :            :         if (wpa_s->driver->hapd_send_eapol)
     318                 :            :                 return wpa_s->driver->hapd_send_eapol(wpa_s->drv_priv, addr,
     319                 :            :                                                       data, data_len, encrypt,
     320                 :            :                                                       own_addr, flags);
     321                 :            :         return -1;
     322                 :            : }
     323                 :            : 
     324                 :         12 : static inline int wpa_drv_sta_set_flags(struct wpa_supplicant *wpa_s,
     325                 :            :                                         const u8 *addr, int total_flags,
     326                 :            :                                         int flags_or, int flags_and)
     327                 :            : {
     328         [ +  - ]:         12 :         if (wpa_s->driver->sta_set_flags)
     329                 :         12 :                 return wpa_s->driver->sta_set_flags(wpa_s->drv_priv, addr,
     330                 :            :                                                     total_flags, flags_or,
     331                 :            :                                                     flags_and);
     332                 :         12 :         return -1;
     333                 :            : }
     334                 :            : 
     335                 :       4808 : static inline int wpa_drv_set_supp_port(struct wpa_supplicant *wpa_s,
     336                 :            :                                         int authorized)
     337                 :            : {
     338         [ +  - ]:       4808 :         if (wpa_s->driver->set_supp_port) {
     339                 :       4808 :                 return wpa_s->driver->set_supp_port(wpa_s->drv_priv,
     340                 :            :                                                     authorized);
     341                 :            :         }
     342                 :       4808 :         return 0;
     343                 :            : }
     344                 :            : 
     345                 :        301 : static inline int wpa_drv_send_action(struct wpa_supplicant *wpa_s,
     346                 :            :                                       unsigned int freq,
     347                 :            :                                       unsigned int wait,
     348                 :            :                                       const u8 *dst, const u8 *src,
     349                 :            :                                       const u8 *bssid,
     350                 :            :                                       const u8 *data, size_t data_len,
     351                 :            :                                       int no_cck)
     352                 :            : {
     353         [ +  - ]:        301 :         if (wpa_s->driver->send_action)
     354                 :        301 :                 return wpa_s->driver->send_action(wpa_s->drv_priv, freq,
     355                 :            :                                                   wait, dst, src, bssid,
     356                 :            :                                                   data, data_len, no_cck);
     357                 :        301 :         return -1;
     358                 :            : }
     359                 :            : 
     360                 :        135 : static inline void wpa_drv_send_action_cancel_wait(struct wpa_supplicant *wpa_s)
     361                 :            : {
     362         [ +  - ]:        135 :         if (wpa_s->driver->send_action_cancel_wait)
     363                 :        135 :                 wpa_s->driver->send_action_cancel_wait(wpa_s->drv_priv);
     364                 :        135 : }
     365                 :            : 
     366                 :            : static inline int wpa_drv_set_freq(struct wpa_supplicant *wpa_s,
     367                 :            :                                    struct hostapd_freq_params *freq)
     368                 :            : {
     369                 :            :         if (wpa_s->driver->set_freq)
     370                 :            :                 return wpa_s->driver->set_freq(wpa_s->drv_priv, freq);
     371                 :            :         return -1;
     372                 :            : }
     373                 :            : 
     374                 :         19 : static inline int wpa_drv_if_add(struct wpa_supplicant *wpa_s,
     375                 :            :                                  enum wpa_driver_if_type type,
     376                 :            :                                  const char *ifname, const u8 *addr,
     377                 :            :                                  void *bss_ctx, char *force_ifname,
     378                 :            :                                  u8 *if_addr, const char *bridge)
     379                 :            : {
     380         [ +  - ]:         19 :         if (wpa_s->driver->if_add)
     381                 :         19 :                 return wpa_s->driver->if_add(wpa_s->drv_priv, type, ifname,
     382                 :            :                                              addr, bss_ctx, NULL, force_ifname,
     383                 :            :                                              if_addr, bridge, 0);
     384                 :         19 :         return -1;
     385                 :            : }
     386                 :            : 
     387                 :         19 : static inline int wpa_drv_if_remove(struct wpa_supplicant *wpa_s,
     388                 :            :                                     enum wpa_driver_if_type type,
     389                 :            :                                     const char *ifname)
     390                 :            : {
     391         [ +  - ]:         19 :         if (wpa_s->driver->if_remove)
     392                 :         19 :                 return wpa_s->driver->if_remove(wpa_s->drv_priv, type, ifname);
     393                 :         19 :         return -1;
     394                 :            : }
     395                 :            : 
     396                 :        483 : static inline int wpa_drv_remain_on_channel(struct wpa_supplicant *wpa_s,
     397                 :            :                                             unsigned int freq,
     398                 :            :                                             unsigned int duration)
     399                 :            : {
     400         [ +  - ]:        483 :         if (wpa_s->driver->remain_on_channel)
     401                 :        483 :                 return wpa_s->driver->remain_on_channel(wpa_s->drv_priv, freq,
     402                 :            :                                                         duration);
     403                 :        483 :         return -1;
     404                 :            : }
     405                 :            : 
     406                 :        159 : static inline int wpa_drv_cancel_remain_on_channel(
     407                 :            :         struct wpa_supplicant *wpa_s)
     408                 :            : {
     409         [ +  - ]:        159 :         if (wpa_s->driver->cancel_remain_on_channel)
     410                 :        159 :                 return wpa_s->driver->cancel_remain_on_channel(
     411                 :            :                         wpa_s->drv_priv);
     412                 :        159 :         return -1;
     413                 :            : }
     414                 :            : 
     415                 :       2276 : static inline int wpa_drv_probe_req_report(struct wpa_supplicant *wpa_s,
     416                 :            :                                            int report)
     417                 :            : {
     418         [ +  - ]:       2276 :         if (wpa_s->driver->probe_req_report)
     419                 :       2276 :                 return wpa_s->driver->probe_req_report(wpa_s->drv_priv,
     420                 :            :                                                        report);
     421                 :       2276 :         return -1;
     422                 :            : }
     423                 :            : 
     424                 :         55 : static inline int wpa_drv_deinit_ap(struct wpa_supplicant *wpa_s)
     425                 :            : {
     426         [ +  - ]:         55 :         if (wpa_s->driver->deinit_ap)
     427                 :         55 :                 return wpa_s->driver->deinit_ap(wpa_s->drv_priv);
     428                 :         55 :         return 0;
     429                 :            : }
     430                 :            : 
     431                 :         49 : static inline int wpa_drv_deinit_p2p_cli(struct wpa_supplicant *wpa_s)
     432                 :            : {
     433         [ +  - ]:         49 :         if (wpa_s->driver->deinit_p2p_cli)
     434                 :         49 :                 return wpa_s->driver->deinit_p2p_cli(wpa_s->drv_priv);
     435                 :         49 :         return 0;
     436                 :            : }
     437                 :            : 
     438                 :          0 : static inline void wpa_drv_suspend(struct wpa_supplicant *wpa_s)
     439                 :            : {
     440         [ #  # ]:          0 :         if (wpa_s->driver->suspend)
     441                 :          0 :                 wpa_s->driver->suspend(wpa_s->drv_priv);
     442                 :          0 : }
     443                 :            : 
     444                 :          0 : static inline void wpa_drv_resume(struct wpa_supplicant *wpa_s)
     445                 :            : {
     446         [ #  # ]:          0 :         if (wpa_s->driver->resume)
     447                 :          0 :                 wpa_s->driver->resume(wpa_s->drv_priv);
     448                 :          0 : }
     449                 :            : 
     450                 :          0 : static inline int wpa_drv_signal_monitor(struct wpa_supplicant *wpa_s,
     451                 :            :                                          int threshold, int hysteresis)
     452                 :            : {
     453         [ #  # ]:          0 :         if (wpa_s->driver->signal_monitor)
     454                 :          0 :                 return wpa_s->driver->signal_monitor(wpa_s->drv_priv,
     455                 :            :                                                      threshold, hysteresis);
     456                 :          0 :         return -1;
     457                 :            : }
     458                 :            : 
     459                 :          0 : static inline int wpa_drv_signal_poll(struct wpa_supplicant *wpa_s,
     460                 :            :                                       struct wpa_signal_info *si)
     461                 :            : {
     462         [ #  # ]:          0 :         if (wpa_s->driver->signal_poll)
     463                 :          0 :                 return wpa_s->driver->signal_poll(wpa_s->drv_priv, si);
     464                 :          0 :         return -1;
     465                 :            : }
     466                 :            : 
     467                 :          0 : static inline int wpa_drv_pktcnt_poll(struct wpa_supplicant *wpa_s,
     468                 :            :                                       struct hostap_sta_driver_data *sta)
     469                 :            : {
     470         [ #  # ]:          0 :         if (wpa_s->driver->read_sta_data)
     471                 :          0 :                 return wpa_s->driver->read_sta_data(wpa_s->drv_priv, sta,
     472                 :          0 :                                                     wpa_s->bssid);
     473                 :          0 :         return -1;
     474                 :            : }
     475                 :            : 
     476                 :       2254 : static inline int wpa_drv_set_ap_wps_ie(struct wpa_supplicant *wpa_s,
     477                 :            :                                         const struct wpabuf *beacon,
     478                 :            :                                         const struct wpabuf *proberesp,
     479                 :            :                                         const struct wpabuf *assocresp)
     480                 :            : {
     481         [ +  - ]:       2254 :         if (!wpa_s->driver->set_ap_wps_ie)
     482                 :       2254 :                 return -1;
     483                 :       2254 :         return wpa_s->driver->set_ap_wps_ie(wpa_s->drv_priv, beacon,
     484                 :            :                                             proberesp, assocresp);
     485                 :            : }
     486                 :            : 
     487                 :          3 : static inline int wpa_drv_shared_freq(struct wpa_supplicant *wpa_s)
     488                 :            : {
     489         [ -  + ]:          3 :         if (!wpa_s->driver->shared_freq)
     490                 :          0 :                 return -1;
     491                 :          3 :         return wpa_s->driver->shared_freq(wpa_s->drv_priv);
     492                 :            : }
     493                 :            : 
     494                 :          0 : static inline int wpa_drv_get_noa(struct wpa_supplicant *wpa_s,
     495                 :            :                                   u8 *buf, size_t buf_len)
     496                 :            : {
     497         [ #  # ]:          0 :         if (!wpa_s->driver->get_noa)
     498                 :          0 :                 return -1;
     499                 :          0 :         return wpa_s->driver->get_noa(wpa_s->drv_priv, buf, buf_len);
     500                 :            : }
     501                 :            : 
     502                 :          0 : static inline int wpa_drv_set_p2p_powersave(struct wpa_supplicant *wpa_s,
     503                 :            :                                             int legacy_ps, int opp_ps,
     504                 :            :                                             int ctwindow)
     505                 :            : {
     506         [ #  # ]:          0 :         if (!wpa_s->driver->set_p2p_powersave)
     507                 :          0 :                 return -1;
     508                 :          0 :         return wpa_s->driver->set_p2p_powersave(wpa_s->drv_priv, legacy_ps,
     509                 :            :                                                 opp_ps, ctwindow);
     510                 :            : }
     511                 :            : 
     512                 :          0 : static inline int wpa_drv_ampdu(struct wpa_supplicant *wpa_s, int ampdu)
     513                 :            : {
     514         [ #  # ]:          0 :         if (!wpa_s->driver->ampdu)
     515                 :          0 :                 return -1;
     516                 :          0 :         return wpa_s->driver->ampdu(wpa_s->drv_priv, ampdu);
     517                 :            : }
     518                 :            : 
     519                 :          0 : static inline int wpa_drv_p2p_find(struct wpa_supplicant *wpa_s,
     520                 :            :                                    unsigned int timeout, int type)
     521                 :            : {
     522         [ #  # ]:          0 :         if (!wpa_s->driver->p2p_find)
     523                 :          0 :                 return -1;
     524                 :          0 :         return wpa_s->driver->p2p_find(wpa_s->drv_priv, timeout, type);
     525                 :            : }
     526                 :            : 
     527                 :          0 : static inline int wpa_drv_p2p_stop_find(struct wpa_supplicant *wpa_s)
     528                 :            : {
     529         [ #  # ]:          0 :         if (!wpa_s->driver->p2p_stop_find)
     530                 :          0 :                 return -1;
     531                 :          0 :         return wpa_s->driver->p2p_stop_find(wpa_s->drv_priv);
     532                 :            : }
     533                 :            : 
     534                 :          0 : static inline int wpa_drv_p2p_listen(struct wpa_supplicant *wpa_s,
     535                 :            :                                      unsigned int timeout)
     536                 :            : {
     537         [ #  # ]:          0 :         if (!wpa_s->driver->p2p_listen)
     538                 :          0 :                 return -1;
     539                 :          0 :         return wpa_s->driver->p2p_listen(wpa_s->drv_priv, timeout);
     540                 :            : }
     541                 :            : 
     542                 :          0 : static inline int wpa_drv_p2p_connect(struct wpa_supplicant *wpa_s,
     543                 :            :                                       const u8 *peer_addr, int wps_method,
     544                 :            :                                       int go_intent,
     545                 :            :                                       const u8 *own_interface_addr,
     546                 :            :                                       unsigned int force_freq,
     547                 :            :                                       int persistent_group)
     548                 :            : {
     549         [ #  # ]:          0 :         if (!wpa_s->driver->p2p_connect)
     550                 :          0 :                 return -1;
     551                 :          0 :         return wpa_s->driver->p2p_connect(wpa_s->drv_priv, peer_addr,
     552                 :            :                                           wps_method, go_intent,
     553                 :            :                                           own_interface_addr, force_freq,
     554                 :            :                                           persistent_group);
     555                 :            : }
     556                 :            : 
     557                 :          0 : static inline int wpa_drv_wps_success_cb(struct wpa_supplicant *wpa_s,
     558                 :            :                                          const u8 *peer_addr)
     559                 :            : {
     560         [ #  # ]:          0 :         if (!wpa_s->driver->wps_success_cb)
     561                 :          0 :                 return -1;
     562                 :          0 :         return wpa_s->driver->wps_success_cb(wpa_s->drv_priv, peer_addr);
     563                 :            : }
     564                 :            : 
     565                 :            : static inline int
     566                 :          0 : wpa_drv_p2p_group_formation_failed(struct wpa_supplicant *wpa_s)
     567                 :            : {
     568         [ #  # ]:          0 :         if (!wpa_s->driver->p2p_group_formation_failed)
     569                 :          0 :                 return -1;
     570                 :          0 :         return wpa_s->driver->p2p_group_formation_failed(wpa_s->drv_priv);
     571                 :            : }
     572                 :            : 
     573                 :          0 : static inline int wpa_drv_p2p_set_params(struct wpa_supplicant *wpa_s,
     574                 :            :                                          const struct p2p_params *params)
     575                 :            : {
     576         [ #  # ]:          0 :         if (!wpa_s->driver->p2p_set_params)
     577                 :          0 :                 return -1;
     578                 :          0 :         return wpa_s->driver->p2p_set_params(wpa_s->drv_priv, params);
     579                 :            : }
     580                 :            : 
     581                 :          0 : static inline int wpa_drv_p2p_prov_disc_req(struct wpa_supplicant *wpa_s,
     582                 :            :                                             const u8 *peer_addr,
     583                 :            :                                             u16 config_methods, int join)
     584                 :            : {
     585         [ #  # ]:          0 :         if (!wpa_s->driver->p2p_prov_disc_req)
     586                 :          0 :                 return -1;
     587                 :          0 :         return wpa_s->driver->p2p_prov_disc_req(wpa_s->drv_priv, peer_addr,
     588                 :            :                                                 config_methods, join);
     589                 :            : }
     590                 :            : 
     591                 :          0 : static inline u64 wpa_drv_p2p_sd_request(struct wpa_supplicant *wpa_s,
     592                 :            :                                          const u8 *dst,
     593                 :            :                                          const struct wpabuf *tlvs)
     594                 :            : {
     595         [ #  # ]:          0 :         if (!wpa_s->driver->p2p_sd_request)
     596                 :          0 :                 return 0;
     597                 :          0 :         return wpa_s->driver->p2p_sd_request(wpa_s->drv_priv, dst, tlvs);
     598                 :            : }
     599                 :            : 
     600                 :          0 : static inline int wpa_drv_p2p_sd_cancel_request(struct wpa_supplicant *wpa_s,
     601                 :            :                                                 u64 req)
     602                 :            : {
     603         [ #  # ]:          0 :         if (!wpa_s->driver->p2p_sd_cancel_request)
     604                 :          0 :                 return -1;
     605                 :          0 :         return wpa_s->driver->p2p_sd_cancel_request(wpa_s->drv_priv, req);
     606                 :            : }
     607                 :            : 
     608                 :          0 : static inline int wpa_drv_p2p_sd_response(struct wpa_supplicant *wpa_s,
     609                 :            :                                           int freq, const u8 *dst,
     610                 :            :                                           u8 dialog_token,
     611                 :            :                                           const struct wpabuf *resp_tlvs)
     612                 :            : {
     613         [ #  # ]:          0 :         if (!wpa_s->driver->p2p_sd_response)
     614                 :          0 :                 return -1;
     615                 :          0 :         return wpa_s->driver->p2p_sd_response(wpa_s->drv_priv, freq, dst,
     616                 :            :                                               dialog_token, resp_tlvs);
     617                 :            : }
     618                 :            : 
     619                 :          0 : static inline int wpa_drv_p2p_service_update(struct wpa_supplicant *wpa_s)
     620                 :            : {
     621         [ #  # ]:          0 :         if (!wpa_s->driver->p2p_service_update)
     622                 :          0 :                 return -1;
     623                 :          0 :         return wpa_s->driver->p2p_service_update(wpa_s->drv_priv);
     624                 :            : }
     625                 :            : 
     626                 :          0 : static inline int wpa_drv_p2p_reject(struct wpa_supplicant *wpa_s,
     627                 :            :                                      const u8 *addr)
     628                 :            : {
     629         [ #  # ]:          0 :         if (!wpa_s->driver->p2p_reject)
     630                 :          0 :                 return -1;
     631                 :          0 :         return wpa_s->driver->p2p_reject(wpa_s->drv_priv, addr);
     632                 :            : }
     633                 :            : 
     634                 :          0 : static inline int wpa_drv_p2p_invite(struct wpa_supplicant *wpa_s,
     635                 :            :                                      const u8 *peer, int role, const u8 *bssid,
     636                 :            :                                      const u8 *ssid, size_t ssid_len,
     637                 :            :                                      const u8 *go_dev_addr,
     638                 :            :                                      int persistent_group)
     639                 :            : {
     640         [ #  # ]:          0 :         if (!wpa_s->driver->p2p_invite)
     641                 :          0 :                 return -1;
     642                 :          0 :         return wpa_s->driver->p2p_invite(wpa_s->drv_priv, peer, role, bssid,
     643                 :            :                                          ssid, ssid_len, go_dev_addr,
     644                 :            :                                          persistent_group);
     645                 :            : }
     646                 :            : 
     647                 :        105 : static inline int wpa_drv_send_tdls_mgmt(struct wpa_supplicant *wpa_s,
     648                 :            :                                          const u8 *dst, u8 action_code,
     649                 :            :                                          u8 dialog_token, u16 status_code,
     650                 :            :                                          const u8 *buf, size_t len)
     651                 :            : {
     652         [ +  - ]:        105 :         if (wpa_s->driver->send_tdls_mgmt) {
     653                 :        105 :                 return wpa_s->driver->send_tdls_mgmt(wpa_s->drv_priv, dst,
     654                 :            :                                                      action_code, dialog_token,
     655                 :            :                                                      status_code, buf, len);
     656                 :            :         }
     657                 :        105 :         return -1;
     658                 :            : }
     659                 :            : 
     660                 :        672 : static inline int wpa_drv_tdls_oper(struct wpa_supplicant *wpa_s,
     661                 :            :                                     enum tdls_oper oper, const u8 *peer)
     662                 :            : {
     663         [ -  + ]:        672 :         if (!wpa_s->driver->tdls_oper)
     664                 :          0 :                 return -1;
     665                 :        672 :         return wpa_s->driver->tdls_oper(wpa_s->drv_priv, oper, peer);
     666                 :            : }
     667                 :            : 
     668                 :            : #ifdef ANDROID
     669                 :            : static inline int wpa_drv_driver_cmd(struct wpa_supplicant *wpa_s,
     670                 :            :                                      char *cmd, char *buf, size_t buf_len)
     671                 :            : {
     672                 :            :         if (!wpa_s->driver->driver_cmd)
     673                 :            :                 return -1;
     674                 :            :         return wpa_s->driver->driver_cmd(wpa_s->drv_priv, cmd, buf, buf_len);
     675                 :            : }
     676                 :            : #endif /* ANDROID */
     677                 :            : 
     678                 :        181 : static inline void wpa_drv_set_rekey_info(struct wpa_supplicant *wpa_s,
     679                 :            :                                           const u8 *kek, const u8 *kck,
     680                 :            :                                           const u8 *replay_ctr)
     681                 :            : {
     682         [ -  + ]:        181 :         if (!wpa_s->driver->set_rekey_info)
     683                 :        181 :                 return;
     684                 :        181 :         wpa_s->driver->set_rekey_info(wpa_s->drv_priv, kek, kck, replay_ctr);
     685                 :            : }
     686                 :            : 
     687                 :        574 : static inline int wpa_drv_radio_disable(struct wpa_supplicant *wpa_s,
     688                 :            :                                         int disabled)
     689                 :            : {
     690         [ +  - ]:        574 :         if (!wpa_s->driver->radio_disable)
     691                 :        574 :                 return -1;
     692                 :        574 :         return wpa_s->driver->radio_disable(wpa_s->drv_priv, disabled);
     693                 :            : }
     694                 :            : 
     695                 :            : static inline int wpa_drv_switch_channel(struct wpa_supplicant *wpa_s,
     696                 :            :                                          struct csa_settings *settings)
     697                 :            : {
     698                 :            :         if (!wpa_s->driver->switch_channel)
     699                 :            :                 return -1;
     700                 :            :         return wpa_s->driver->switch_channel(wpa_s->drv_priv, settings);
     701                 :            : }
     702                 :            : 
     703                 :         16 : static inline int wpa_drv_wnm_oper(struct wpa_supplicant *wpa_s,
     704                 :            :                                    enum wnm_oper oper, const u8 *peer,
     705                 :            :                                    u8 *buf, u16 *buf_len)
     706                 :            : {
     707         [ +  - ]:         16 :         if (!wpa_s->driver->wnm_oper)
     708                 :         16 :                 return -1;
     709                 :         16 :         return wpa_s->driver->wnm_oper(wpa_s->drv_priv, oper, peer, buf,
     710                 :            :                                        buf_len);
     711                 :            : }
     712                 :            : 
     713                 :        579 : static inline int wpa_drv_status(struct wpa_supplicant *wpa_s,
     714                 :            :                                  char *buf, size_t buflen)
     715                 :            : {
     716         [ -  + ]:        579 :         if (!wpa_s->driver->status)
     717                 :          0 :                 return -1;
     718                 :        579 :         return wpa_s->driver->status(wpa_s->drv_priv, buf, buflen);
     719                 :            : }
     720                 :            : 
     721                 :          2 : static inline int wpa_drv_set_qos_map(struct wpa_supplicant *wpa_s,
     722                 :            :                                       const u8 *qos_map_set, u8 qos_map_set_len)
     723                 :            : {
     724         [ -  + ]:          2 :         if (!wpa_s->driver->set_qos_map)
     725                 :          0 :                 return -1;
     726                 :          2 :         return wpa_s->driver->set_qos_map(wpa_s->drv_priv, qos_map_set,
     727                 :            :                                           qos_map_set_len);
     728                 :            : }
     729                 :            : 
     730                 :            : #endif /* DRIVER_I_H */

Generated by: LCOV version 1.9