aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/libertas/scan.h
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2007-05-25 16:15:56 -0400
committerJohn W. Linville <linville@tuxdriver.com>2007-06-11 14:28:41 -0400
commitfcdb53dbc743f288bf72e485fefb3a967b733686 (patch)
treeceafcff8076af2da654214e3b72caa7b15164a28 /drivers/net/wireless/libertas/scan.h
parent90e8eafc93ed159846bb7126af8502f2a8570a11 (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.h21
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
177extern int libertas_SSID_cmp(struct WLAN_802_11_SSID *ssid1, 179extern int libertas_SSID_cmp(struct WLAN_802_11_SSID *ssid1,
178 struct WLAN_802_11_SSID *ssid2); 180 struct WLAN_802_11_SSID *ssid2);
179extern int libertas_find_SSID_in_list(wlan_adapter * adapter, struct WLAN_802_11_SSID *ssid, 181
180 u8 * bssid, u8 mode); 182struct bss_descriptor * libertas_find_SSID_in_list(wlan_adapter * adapter,
181int libertas_find_best_SSID_in_list(wlan_adapter * adapter, u8 mode); 183 struct WLAN_802_11_SSID *ssid, u8 * bssid, u8 mode);
182extern int libertas_find_BSSID_in_list(wlan_adapter * adapter, u8 * bssid, u8 mode); 184
185struct bss_descriptor * libertas_find_best_SSID_in_list(wlan_adapter * adapter,
186 u8 mode);
187
188extern struct bss_descriptor * libertas_find_BSSID_in_list(wlan_adapter * adapter,
189 u8 * bssid, u8 mode);
183 190
184int libertas_find_best_network_SSID(wlan_private * priv, 191int libertas_find_best_network_SSID(wlan_private * priv,
185 struct WLAN_802_11_SSID *pSSID, 192 struct WLAN_802_11_SSID *pSSID,