1214501Srpaulo/*
2214501Srpaulo * WPA Supplicant - background scan and roaming interface
3214501Srpaulo * Copyright (c) 2009-2010, Jouni Malinen <j@w1.fi>
4214501Srpaulo *
5252726Srpaulo * This software may be distributed under the terms of the BSD license.
6252726Srpaulo * See README for more details.
7214501Srpaulo */
8214501Srpaulo
9214501Srpaulo#ifndef BGSCAN_H
10214501Srpaulo#define BGSCAN_H
11214501Srpaulo
12214501Srpaulostruct wpa_supplicant;
13214501Srpaulostruct wpa_ssid;
14214501Srpaulo
15214501Srpaulostruct bgscan_ops {
16214501Srpaulo	const char *name;
17214501Srpaulo
18214501Srpaulo	void * (*init)(struct wpa_supplicant *wpa_s, const char *params,
19214501Srpaulo		       const struct wpa_ssid *ssid);
20214501Srpaulo	void (*deinit)(void *priv);
21214501Srpaulo
22252726Srpaulo	int (*notify_scan)(void *priv, struct wpa_scan_results *scan_res);
23214501Srpaulo	void (*notify_beacon_loss)(void *priv);
24252726Srpaulo	void (*notify_signal_change)(void *priv, int above,
25252726Srpaulo				     int current_signal,
26252726Srpaulo				     int current_noise,
27252726Srpaulo				     int current_txrate);
28214501Srpaulo};
29214501Srpaulo
30214501Srpaulo#ifdef CONFIG_BGSCAN
31214501Srpaulo
32214501Srpauloint bgscan_init(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid);
33214501Srpaulovoid bgscan_deinit(struct wpa_supplicant *wpa_s);
34252726Srpauloint bgscan_notify_scan(struct wpa_supplicant *wpa_s,
35252726Srpaulo		       struct wpa_scan_results *scan_res);
36214501Srpaulovoid bgscan_notify_beacon_loss(struct wpa_supplicant *wpa_s);
37252726Srpaulovoid bgscan_notify_signal_change(struct wpa_supplicant *wpa_s, int above,
38252726Srpaulo				 int current_signal, int current_noise,
39252726Srpaulo				 int current_txrate);
40214501Srpaulo
41214501Srpaulo#else /* CONFIG_BGSCAN */
42214501Srpaulo
43214501Srpaulostatic inline int bgscan_init(struct wpa_supplicant *wpa_s,
44214501Srpaulo			      struct wpa_ssid *ssid)
45214501Srpaulo{
46214501Srpaulo	return 0;
47214501Srpaulo}
48214501Srpaulo
49214501Srpaulostatic inline void bgscan_deinit(struct wpa_supplicant *wpa_s)
50214501Srpaulo{
51214501Srpaulo}
52214501Srpaulo
53252726Srpaulostatic inline int bgscan_notify_scan(struct wpa_supplicant *wpa_s,
54252726Srpaulo				     struct wpa_scan_results *scan_res)
55214501Srpaulo{
56214501Srpaulo	return 0;
57214501Srpaulo}
58214501Srpaulo
59214501Srpaulostatic inline void bgscan_notify_beacon_loss(struct wpa_supplicant *wpa_s)
60214501Srpaulo{
61214501Srpaulo}
62214501Srpaulo
63214501Srpaulostatic inline void bgscan_notify_signal_change(struct wpa_supplicant *wpa_s,
64252726Srpaulo					       int above, int current_signal,
65252726Srpaulo					       int current_noise,
66252726Srpaulo					       int current_txrate)
67214501Srpaulo{
68214501Srpaulo}
69214501Srpaulo
70214501Srpaulo#endif /* CONFIG_BGSCAN */
71214501Srpaulo
72214501Srpaulo#endif /* BGSCAN_H */
73