diff options
author | Dan Williams <dcbw@redhat.com> | 2007-05-25 22:15:56 +0200 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2007-06-11 20:28:41 +0200 |
commit | fcdb53dbc743f288bf72e485fefb3a967b733686 (patch) | |
tree | ceafcff8076af2da654214e3b72caa7b15164a28 /drivers/net/wireless/libertas/scan.h | |
parent | [PATCH] libertas: updated mesh commands for 5.220.9.p11 (diff) | |
download | linux-fcdb53dbc743f288bf72e485fefb3a967b733686.tar.xz linux-fcdb53dbc743f288bf72e485fefb3a967b733686.zip |
[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 { u8 mode; u8 libertas_supported_rates[WLAN_SUPPORTED_RATES]; - int extra_ie; - u8 timestamp[8]; //!< TSF value included in the beacon/probe response + unsigned long last_scanned; + union ieeetypes_phyparamset phyparamset; union IEEEtypes_ssparamset ssparamset; struct ieeetypes_capinfo cap; @@ -172,14 +172,21 @@ struct bss_descriptor { size_t wpa_ie_len; u8 rsn_ie[MAX_WPA_IE_LEN]; size_t rsn_ie_len; + + struct list_head list; }; extern int libertas_SSID_cmp(struct WLAN_802_11_SSID *ssid1, - struct WLAN_802_11_SSID *ssid2); -extern int libertas_find_SSID_in_list(wlan_adapter * adapter, struct WLAN_802_11_SSID *ssid, - u8 * bssid, u8 mode); -int libertas_find_best_SSID_in_list(wlan_adapter * adapter, u8 mode); -extern int libertas_find_BSSID_in_list(wlan_adapter * adapter, u8 * bssid, u8 mode); + struct WLAN_802_11_SSID *ssid2); + +struct bss_descriptor * libertas_find_SSID_in_list(wlan_adapter * adapter, + struct WLAN_802_11_SSID *ssid, u8 * bssid, u8 mode); + +struct bss_descriptor * libertas_find_best_SSID_in_list(wlan_adapter * adapter, + u8 mode); + +extern struct bss_descriptor * libertas_find_BSSID_in_list(wlan_adapter * adapter, + u8 * bssid, u8 mode); int libertas_find_best_network_SSID(wlan_private * priv, struct WLAN_802_11_SSID *pSSID, |