bgscan.h revision 281806
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
32281806Srpauloint bgscan_init(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid,
33281806Srpaulo		const char *name);
34214501Srpaulovoid bgscan_deinit(struct wpa_supplicant *wpa_s);
35252726Srpauloint bgscan_notify_scan(struct wpa_supplicant *wpa_s,
36252726Srpaulo		       struct wpa_scan_results *scan_res);
37214501Srpaulovoid bgscan_notify_beacon_loss(struct wpa_supplicant *wpa_s);
38252726Srpaulovoid bgscan_notify_signal_change(struct wpa_supplicant *wpa_s, int above,
39252726Srpaulo				 int current_signal, int current_noise,
40252726Srpaulo				 int current_txrate);
41214501Srpaulo
42214501Srpaulo#else /* CONFIG_BGSCAN */
43214501Srpaulo
44214501Srpaulostatic inline int bgscan_init(struct wpa_supplicant *wpa_s,
45281806Srpaulo			      struct wpa_ssid *ssid, const char name)
46214501Srpaulo{
47214501Srpaulo	return 0;
48214501Srpaulo}
49214501Srpaulo
50214501Srpaulostatic inline void bgscan_deinit(struct wpa_supplicant *wpa_s)
51214501Srpaulo{
52214501Srpaulo}
53214501Srpaulo
54252726Srpaulostatic inline int bgscan_notify_scan(struct wpa_supplicant *wpa_s,
55252726Srpaulo				     struct wpa_scan_results *scan_res)
56214501Srpaulo{
57214501Srpaulo	return 0;
58214501Srpaulo}
59214501Srpaulo
60214501Srpaulostatic inline void bgscan_notify_beacon_loss(struct wpa_supplicant *wpa_s)
61214501Srpaulo{
62214501Srpaulo}
63214501Srpaulo
64214501Srpaulostatic inline void bgscan_notify_signal_change(struct wpa_supplicant *wpa_s,
65252726Srpaulo					       int above, int current_signal,
66252726Srpaulo					       int current_noise,
67252726Srpaulo					       int current_txrate)
68214501Srpaulo{
69214501Srpaulo}
70214501Srpaulo
71214501Srpaulo#endif /* CONFIG_BGSCAN */
72214501Srpaulo
73214501Srpaulo#endif /* BGSCAN_H */
74