1214501Srpaulo/*
2214501Srpaulo * WPA Supplicant - Scanning
3281806Srpaulo * Copyright (c) 2003-2014, 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 SCAN_H
10214501Srpaulo#define SCAN_H
11214501Srpaulo
12252726Srpauloint wpa_supplicant_enabled_networks(struct wpa_supplicant *wpa_s);
13214501Srpaulovoid wpa_supplicant_req_scan(struct wpa_supplicant *wpa_s, int sec, int usec);
14252726Srpauloint wpa_supplicant_delayed_sched_scan(struct wpa_supplicant *wpa_s,
15252726Srpaulo				      int sec, int usec);
16252726Srpauloint wpa_supplicant_req_sched_scan(struct wpa_supplicant *wpa_s);
17214501Srpaulovoid wpa_supplicant_cancel_scan(struct wpa_supplicant *wpa_s);
18281806Srpaulovoid wpa_supplicant_cancel_delayed_sched_scan(struct wpa_supplicant *wpa_s);
19252726Srpaulovoid wpa_supplicant_cancel_sched_scan(struct wpa_supplicant *wpa_s);
20214501Srpaulovoid wpa_supplicant_notify_scanning(struct wpa_supplicant *wpa_s,
21214501Srpaulo				    int scanning);
22214501Srpaulostruct wpa_driver_scan_params;
23214501Srpauloint wpa_supplicant_trigger_scan(struct wpa_supplicant *wpa_s,
24214501Srpaulo				struct wpa_driver_scan_params *params);
25214501Srpaulostruct wpa_scan_results *
26214501Srpaulowpa_supplicant_get_scan_results(struct wpa_supplicant *wpa_s,
27214501Srpaulo				struct scan_info *info, int new_scan);
28214501Srpauloint wpa_supplicant_update_scan_results(struct wpa_supplicant *wpa_s);
29214501Srpauloconst u8 * wpa_scan_get_ie(const struct wpa_scan_res *res, u8 ie);
30214501Srpauloconst u8 * wpa_scan_get_vendor_ie(const struct wpa_scan_res *res,
31214501Srpaulo				  u32 vendor_type);
32281806Srpauloconst u8 * wpa_scan_get_vendor_ie_beacon(const struct wpa_scan_res *res,
33281806Srpaulo					 u32 vendor_type);
34214501Srpaulostruct wpabuf * wpa_scan_get_vendor_ie_multi(const struct wpa_scan_res *res,
35214501Srpaulo					     u32 vendor_type);
36252726Srpauloint wpa_supplicant_filter_bssid_match(struct wpa_supplicant *wpa_s,
37252726Srpaulo				      const u8 *bssid);
38281806Srpaulovoid wpa_supplicant_update_scan_int(struct wpa_supplicant *wpa_s, int sec);
39281806Srpaulovoid scan_only_handler(struct wpa_supplicant *wpa_s,
40281806Srpaulo		       struct wpa_scan_results *scan_res);
41281806Srpauloint wpas_scan_scheduled(struct wpa_supplicant *wpa_s);
42281806Srpauloint wpa_supplicant_start_sched_scan(struct wpa_supplicant *wpa_s,
43281806Srpaulo				    struct wpa_driver_scan_params *params,
44281806Srpaulo				    int interval);
45281806Srpauloint wpa_supplicant_stop_sched_scan(struct wpa_supplicant *wpa_s);
46281806Srpaulostruct wpa_driver_scan_params *
47281806Srpaulowpa_scan_clone_params(const struct wpa_driver_scan_params *src);
48281806Srpaulovoid wpa_scan_free_params(struct wpa_driver_scan_params *params);
49281806Srpauloint wpas_start_pno(struct wpa_supplicant *wpa_s);
50281806Srpauloint wpas_stop_pno(struct wpa_supplicant *wpa_s);
51214501Srpaulo
52281806Srpaulovoid wpas_mac_addr_rand_scan_clear(struct wpa_supplicant *wpa_s,
53281806Srpaulo				   unsigned int type);
54281806Srpauloint wpas_mac_addr_rand_scan_set(struct wpa_supplicant *wpa_s,
55281806Srpaulo				unsigned int type, const u8 *addr,
56281806Srpaulo				const u8 *mask);
57281806Srpaulo
58214501Srpaulo#endif /* SCAN_H */
59