Commit | Line | Data |
---|---|---|
010c3a89 RC |
1 | \r |
2 | #ifndef _wl_escan_\r | |
3 | #define _wl_escan_\r | |
4 | \r | |
5 | #include <linux/wireless.h>\r | |
6 | #include <wl_iw.h>\r | |
7 | #include <dngl_stats.h>\r | |
8 | #include <dhd.h>\r | |
9 | #include <linux/time.h>\r | |
10 | \r | |
11 | \r | |
12 | #ifdef DHD_MAX_IFS\r | |
13 | #define WL_MAX_IFS DHD_MAX_IFS\r | |
14 | #else\r | |
15 | #define WL_MAX_IFS 16\r | |
16 | #endif\r | |
17 | \r | |
18 | #define ESCAN_BUF_SIZE (64 * 1024)\r | |
19 | \r | |
20 | #define WL_ESCAN_TIMER_INTERVAL_MS 10000 /* Scan timeout */\r | |
21 | \r | |
22 | /* event queue for cfg80211 main event */\r | |
23 | struct escan_event_q {\r | |
24 | struct list_head eq_list;\r | |
25 | u32 etype;\r | |
26 | wl_event_msg_t emsg;\r | |
27 | s8 edata[1];\r | |
28 | };\r | |
29 | \r | |
30 | /* donlge escan state */\r | |
31 | enum escan_state {\r | |
32 | ESCAN_STATE_IDLE,\r | |
33 | ESCAN_STATE_SCANING\r | |
34 | };\r | |
35 | \r | |
36 | struct wl_escan_info;\r | |
37 | \r | |
38 | typedef s32(*ESCAN_EVENT_HANDLER) (struct wl_escan_info *escan,\r | |
39 | const wl_event_msg_t *e, void *data);\r | |
40 | \r | |
41 | typedef struct wl_escan_info {\r | |
42 | struct net_device *dev;\r | |
43 | dhd_pub_t *pub;\r | |
44 | struct timer_list scan_timeout; /* Timer for catch scan event timeout */\r | |
45 | int escan_state;\r | |
46 | int ioctl_ver;\r | |
47 | \r | |
48 | char ioctlbuf[WLC_IOCTL_SMLEN];\r | |
49 | u8 escan_buf[ESCAN_BUF_SIZE];\r | |
50 | struct wl_scan_results *bss_list;\r | |
51 | struct wl_scan_results *scan_results;\r | |
52 | struct ether_addr disconnected_bssid;\r | |
53 | u8 *escan_ioctl_buf;\r | |
54 | spinlock_t eq_lock; /* for event queue synchronization */\r | |
55 | struct list_head eq_list; /* used for event queue */\r | |
56 | tsk_ctl_t event_tsk; /* task of main event handler thread */\r | |
57 | ESCAN_EVENT_HANDLER evt_handler[WLC_E_LAST];\r | |
58 | struct mutex usr_sync; /* maily for up/down synchronization */\r | |
d964ce36 | 59 | int autochannel;\r |
60 | int best_2g_ch;\r | |
61 | int best_5g_ch;\r | |
62 | #if defined(RSSIAVG)\r | |
63 | wl_rssi_cache_ctrl_t g_rssi_cache_ctrl;\r | |
64 | wl_rssi_cache_ctrl_t g_connected_rssi_cache_ctrl;\r | |
65 | #endif\r | |
66 | #if defined(BSSCACHE)\r | |
67 | wl_bss_cache_ctrl_t g_bss_cache_ctrl;\r | |
68 | #endif\r | |
010c3a89 RC |
69 | } wl_escan_info_t;\r |
70 | \r | |
d964ce36 | 71 | void wl_escan_event(struct net_device *dev, const wl_event_msg_t * e, void *data);\r |
010c3a89 RC |
72 | \r |
73 | int wl_escan_set_scan(\r | |
74 | struct net_device *dev,\r | |
75 | struct iw_request_info *info,\r | |
76 | union iwreq_data *wrqu,\r | |
77 | char *extra\r | |
78 | );\r | |
79 | int wl_escan_get_scan(struct net_device *dev, struct iw_request_info *info,\r | |
80 | struct iw_point *dwrq, char *extra);\r | |
d964ce36 | 81 | s32 wl_escan_autochannel(struct net_device *dev, char* command, int total_len);\r |
ccd15baf RC |
82 | int wl_escan_attach(struct net_device *dev, dhd_pub_t *dhdp);\r |
83 | void wl_escan_detach(dhd_pub_t *dhdp);\r | |
010c3a89 RC |
84 | \r |
85 | #endif /* _wl_escan_ */\r | |
86 | \r |