#define HOSTAPD_H
#include "common.h"
-#include "ap.h"
#include "hostapd_defs.h"
-#include "config.h"
struct wpa_driver_ops;
struct wpa_ctrl_dst;
struct radius_server_data;
+struct upnp_wps_device_sm;
#ifdef CONFIG_FULL_DYNAMIC_VLAN
struct full_dynamic_vlan;
int num_sta; /* number of entries in sta_list */
struct sta_info *sta_list; /* STA info list head */
+#define STA_HASH_SIZE 256
+#define STA_HASH(sta) (sta[5])
struct sta_info *sta_hash[STA_HASH_SIZE];
- /* pointers to STA info; based on allocated AID or NULL if AID free
- * AID is in the range 1-2007, so sta_aid[0] corresponders to AID 1
- * and so on
+ /*
+ * Bitfield for indicating which AIDs are allocated. Only AID values
+ * 1-2007 are used and as such, the bit at index 0 corresponds to AID
+ * 1.
*/
- struct sta_info *sta_aid[MAX_AID_TABLE_SIZE];
+#define AID_WORDS ((2008 + 31) / 32)
+ u32 sta_aid[AID_WORDS];
const struct wpa_driver_ops *driver;
void *drv_priv;
size_t wps_beacon_ie_len;
u8 *wps_probe_resp_ie;
size_t wps_probe_resp_ie_len;
+ unsigned int ap_pin_failures;
+ struct upnp_wps_device_sm *wps_upnp;
#endif /* CONFIG_WPS */
};
* struct hostapd_iface - hostapd per-interface data structure
*/
struct hostapd_iface {
+ void *owner;
char *config_fname;
struct hostapd_config *conf;
};
int hostapd_reload_config(struct hostapd_iface *iface);
+struct hostapd_data *
+hostapd_alloc_bss_data(struct hostapd_iface *hapd_iface,
+ struct hostapd_config *conf,
+ struct hostapd_bss_config *bss);
+int hostapd_setup_interface(struct hostapd_iface *iface);
+void hostapd_interface_deinit(struct hostapd_iface *iface);
+int handle_reload_iface(struct hostapd_iface *iface, void *ctx);
+int handle_dump_state_iface(struct hostapd_iface *iface, void *ctx);
+
+int hostapd_for_each_interface(int (*cb)(struct hostapd_iface *iface,
+ void *ctx), void *ctx);
#endif /* HOSTAPD_H */