Added support for global driver data (shared by multiple interfaces)
[libeap.git] / wpa_supplicant / wpa_supplicant_i.h
index 9afae2a..dcfa59b 100644 (file)
@@ -156,6 +156,8 @@ struct wpa_global {
        struct wpa_params params;
        struct ctrl_iface_global_priv *ctrl_iface;
        struct ctrl_iface_dbus_priv *dbus_ctrl_iface;
+       void **drv_priv;
+       size_t drv_count;
 };
 
 
@@ -334,6 +336,12 @@ struct wpa_supplicant {
        struct wpa_client_mlme mlme;
        int use_client_mlme;
        int driver_4way_handshake;
+
+       int pending_mic_error_report;
+       int pending_mic_error_pairwise;
+       int mic_errors_seen; /* Michael MIC errors with the current PTK */
+
+       struct wps_context *wps;
 };
 
 
@@ -390,6 +398,8 @@ void wpa_supplicant_mark_disassoc(struct wpa_supplicant *wpa_s);
 static inline void * wpa_drv_init(struct wpa_supplicant *wpa_s,
                                  const char *ifname)
 {
+       if (wpa_s->driver->init2)
+               return wpa_s->driver->init2(wpa_s, ifname, wpa_s->global);
        if (wpa_s->driver->init) {
                return wpa_s->driver->init(wpa_s, ifname);
        }
@@ -670,6 +680,14 @@ static inline int wpa_drv_set_bssid(struct wpa_supplicant *wpa_s,
        return -1;
 }
 
+static inline int wpa_drv_set_country(struct wpa_supplicant *wpa_s,
+                                     const char *alpha2)
+{
+       if (wpa_s->driver->set_country)
+               return wpa_s->driver->set_country(wpa_s->drv_priv, alpha2);
+       return 0;
+}
+
 static inline int wpa_drv_send_mlme(struct wpa_supplicant *wpa_s,
                                    const u8 *data, size_t data_len)
 {