1/*
2 * WPA Supplicant - auto scan
3 * Copyright (c) 2012, Intel Corporation. All rights reserved.
4 *
5 * This software may be distributed under the terms of the BSD license.
6 * See README for more details.
7 */
8
9#ifndef AUTOSCAN_H
10#define AUTOSCAN_H
11
12struct wpa_supplicant;
13
14struct autoscan_ops {
15	const char *name;
16
17	void * (*init)(struct wpa_supplicant *wpa_s, const char *params);
18	void (*deinit)(void *priv);
19
20	int (*notify_scan)(void *priv, struct wpa_scan_results *scan_res);
21};
22
23#ifdef CONFIG_AUTOSCAN
24
25int autoscan_init(struct wpa_supplicant *wpa_s, int req_scan);
26void autoscan_deinit(struct wpa_supplicant *wpa_s);
27int autoscan_notify_scan(struct wpa_supplicant *wpa_s,
28			 struct wpa_scan_results *scan_res);
29
30/* Available autoscan modules */
31
32#ifdef CONFIG_AUTOSCAN_EXPONENTIAL
33extern const struct autoscan_ops autoscan_exponential_ops;
34#endif /* CONFIG_AUTOSCAN_EXPONENTIAL */
35
36#ifdef CONFIG_AUTOSCAN_PERIODIC
37extern const struct autoscan_ops autoscan_periodic_ops;
38#endif /* CONFIG_AUTOSCAN_PERIODIC */
39
40#else /* CONFIG_AUTOSCAN */
41
42static inline int autoscan_init(struct wpa_supplicant *wpa_s, int req_scan)
43{
44	return 0;
45}
46
47static inline void autoscan_deinit(struct wpa_supplicant *wpa_s)
48{
49}
50
51static inline int autoscan_notify_scan(struct wpa_supplicant *wpa_s,
52				       struct wpa_scan_results *scan_res)
53{
54	return 0;
55}
56
57#endif /* CONFIG_AUTOSCAN */
58
59#endif /* AUTOSCAN_H */
60