diff options
author | Dan Williams <dcbw@redhat.com> | 2007-05-25 16:15:56 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2007-06-11 14:28:41 -0400 |
commit | fcdb53dbc743f288bf72e485fefb3a967b733686 (patch) | |
tree | ceafcff8076af2da654214e3b72caa7b15164a28 /drivers/net/wireless/libertas/scan.h | |
parent | 90e8eafc93ed159846bb7126af8502f2a8570a11 (diff) |
[PATCH] libertas: make scan result handling more flexible
- use a linked list for scan results
- age scan results
- pass bss_descriptors around instead of indexes into the scan table
- lock access to the scan results
- stop returning EAGAIN from SIOCGIWSCAN handler
Signed-off-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/libertas/scan.h')
-rw-r--r-- | drivers/net/wireless/libertas/scan.h | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/drivers/net/wireless/libertas/scan.h b/drivers/net/wireless/libertas/scan.h index 4fe8610d8003..74270785063b 100644 --- a/drivers/net/wireless/libertas/scan.h +++ b/drivers/net/wireless/libertas/scan.h | |||
@@ -156,9 +156,9 @@ struct bss_descriptor { | |||
156 | u8 mode; | 156 | u8 mode; |
157 | u8 libertas_supported_rates[WLAN_SUPPORTED_RATES]; | 157 | u8 libertas_supported_rates[WLAN_SUPPORTED_RATES]; |
158 | 158 | ||
159 | int extra_ie; | ||
160 | |||
161 | u8 timestamp[8]; //!< TSF value included in the beacon/probe response | 159 | u8 timestamp[8]; //!< TSF value included in the beacon/probe response |
160 | unsigned long last_scanned; | ||
161 | |||
162 | union ieeetypes_phyparamset phyparamset; | 162 | union ieeetypes_phyparamset phyparamset; |
163 | union IEEEtypes_ssparamset ssparamset; | 163 | union IEEEtypes_ssparamset ssparamset; |
164 | struct ieeetypes_capinfo cap; | 164 | struct ieeetypes_capinfo cap; |
@@ -172,14 +172,21 @@ struct bss_descriptor { | |||
172 | size_t wpa_ie_len; | 172 | size_t wpa_ie_len; |
173 | u8 rsn_ie[MAX_WPA_IE_LEN]; | 173 | u8 rsn_ie[MAX_WPA_IE_LEN]; |
174 | size_t rsn_ie_len; | 174 | size_t rsn_ie_len; |
175 | |||
176 | struct list_head list; | ||
175 | }; | 177 | }; |
176 | 178 | ||
177 | extern int libertas_SSID_cmp(struct WLAN_802_11_SSID *ssid1, | 179 | extern int libertas_SSID_cmp(struct WLAN_802_11_SSID *ssid1, |
178 | struct WLAN_802_11_SSID *ssid2); | 180 | struct WLAN_802_11_SSID *ssid2); |
179 | extern int libertas_find_SSID_in_list(wlan_adapter * adapter, struct WLAN_802_11_SSID *ssid, | 181 | |
180 | u8 * bssid, u8 mode); | 182 | struct bss_descriptor * libertas_find_SSID_in_list(wlan_adapter * adapter, |
181 | int libertas_find_best_SSID_in_list(wlan_adapter * adapter, u8 mode); | 183 | struct WLAN_802_11_SSID *ssid, u8 * bssid, u8 mode); |
182 | extern int libertas_find_BSSID_in_list(wlan_adapter * adapter, u8 * bssid, u8 mode); | 184 | |
185 | struct bss_descriptor * libertas_find_best_SSID_in_list(wlan_adapter * adapter, | ||
186 | u8 mode); | ||
187 | |||
188 | extern struct bss_descriptor * libertas_find_BSSID_in_list(wlan_adapter * adapter, | ||
189 | u8 * bssid, u8 mode); | ||
183 | 190 | ||
184 | int libertas_find_best_network_SSID(wlan_private * priv, | 191 | int libertas_find_best_network_SSID(wlan_private * priv, |
185 | struct WLAN_802_11_SSID *pSSID, | 192 | struct WLAN_802_11_SSID *pSSID, |