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