1e28a4053SRui Paulo /* 2e28a4053SRui Paulo * WPA Supplicant - background scan and roaming interface 3e28a4053SRui Paulo * Copyright (c) 2009-2010, Jouni Malinen <j@w1.fi> 4e28a4053SRui Paulo * 5f05cddf9SRui Paulo * This software may be distributed under the terms of the BSD license. 6f05cddf9SRui Paulo * See README for more details. 7e28a4053SRui Paulo */ 8e28a4053SRui Paulo 9e28a4053SRui Paulo #ifndef BGSCAN_H 10e28a4053SRui Paulo #define BGSCAN_H 11e28a4053SRui Paulo 12e28a4053SRui Paulo struct wpa_supplicant; 13e28a4053SRui Paulo struct wpa_ssid; 14e28a4053SRui Paulo 15e28a4053SRui Paulo struct bgscan_ops { 16e28a4053SRui Paulo const char *name; 17e28a4053SRui Paulo 18e28a4053SRui Paulo void * (*init)(struct wpa_supplicant *wpa_s, const char *params, 19e28a4053SRui Paulo const struct wpa_ssid *ssid); 20e28a4053SRui Paulo void (*deinit)(void *priv); 21e28a4053SRui Paulo 22f05cddf9SRui Paulo int (*notify_scan)(void *priv, struct wpa_scan_results *scan_res); 23e28a4053SRui Paulo void (*notify_beacon_loss)(void *priv); 24f05cddf9SRui Paulo void (*notify_signal_change)(void *priv, int above, 25f05cddf9SRui Paulo int current_signal, 26f05cddf9SRui Paulo int current_noise, 27f05cddf9SRui Paulo int current_txrate); 28e28a4053SRui Paulo }; 29e28a4053SRui Paulo 30e28a4053SRui Paulo #ifdef CONFIG_BGSCAN 31e28a4053SRui Paulo 325b9c547cSRui Paulo int bgscan_init(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid, 335b9c547cSRui Paulo const char *name); 34e28a4053SRui Paulo void bgscan_deinit(struct wpa_supplicant *wpa_s); 35f05cddf9SRui Paulo int bgscan_notify_scan(struct wpa_supplicant *wpa_s, 36f05cddf9SRui Paulo struct wpa_scan_results *scan_res); 37e28a4053SRui Paulo void bgscan_notify_beacon_loss(struct wpa_supplicant *wpa_s); 38f05cddf9SRui Paulo void bgscan_notify_signal_change(struct wpa_supplicant *wpa_s, int above, 39f05cddf9SRui Paulo int current_signal, int current_noise, 40f05cddf9SRui Paulo int current_txrate); 41e28a4053SRui Paulo 42*780fb4a2SCy Schubert /* Available bgscan modules */ 43*780fb4a2SCy Schubert 44*780fb4a2SCy Schubert #ifdef CONFIG_BGSCAN_SIMPLE 45*780fb4a2SCy Schubert extern const struct bgscan_ops bgscan_simple_ops; 46*780fb4a2SCy Schubert #endif /* CONFIG_BGSCAN_SIMPLE */ 47*780fb4a2SCy Schubert #ifdef CONFIG_BGSCAN_LEARN 48*780fb4a2SCy Schubert extern const struct bgscan_ops bgscan_learn_ops; 49*780fb4a2SCy Schubert #endif /* CONFIG_BGSCAN_LEARN */ 50*780fb4a2SCy Schubert 51e28a4053SRui Paulo #else /* CONFIG_BGSCAN */ 52e28a4053SRui Paulo 53e28a4053SRui Paulo static inline int bgscan_init(struct wpa_supplicant *wpa_s, 545b9c547cSRui Paulo struct wpa_ssid *ssid, const char name) 55e28a4053SRui Paulo { 56e28a4053SRui Paulo return 0; 57e28a4053SRui Paulo } 58e28a4053SRui Paulo 59e28a4053SRui Paulo static inline void bgscan_deinit(struct wpa_supplicant *wpa_s) 60e28a4053SRui Paulo { 61e28a4053SRui Paulo } 62e28a4053SRui Paulo 63f05cddf9SRui Paulo static inline int bgscan_notify_scan(struct wpa_supplicant *wpa_s, 64f05cddf9SRui Paulo struct wpa_scan_results *scan_res) 65e28a4053SRui Paulo { 66e28a4053SRui Paulo return 0; 67e28a4053SRui Paulo } 68e28a4053SRui Paulo 69e28a4053SRui Paulo static inline void bgscan_notify_beacon_loss(struct wpa_supplicant *wpa_s) 70e28a4053SRui Paulo { 71e28a4053SRui Paulo } 72e28a4053SRui Paulo 73e28a4053SRui Paulo static inline void bgscan_notify_signal_change(struct wpa_supplicant *wpa_s, 74f05cddf9SRui Paulo int above, int current_signal, 75f05cddf9SRui Paulo int current_noise, 76f05cddf9SRui Paulo int current_txrate) 77e28a4053SRui Paulo { 78e28a4053SRui Paulo } 79e28a4053SRui Paulo 80e28a4053SRui Paulo #endif /* CONFIG_BGSCAN */ 81e28a4053SRui Paulo 82e28a4053SRui Paulo #endif /* BGSCAN_H */ 83