summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/orinoco.h
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2007-10-11 07:56:25 +0400
committerDavid S. Miller <davem@davemloft.net>2008-01-29 02:03:32 +0300
commit1e3428e9e327a6e4163b3674b260dbd719f59839 (patch)
tree98cb9a4e11e72db5da6070c6ff94311097020a13 /drivers/net/wireless/orinoco.h
parent40faacc4078d0fef6daaf6f5d1d332d08631bdd8 (diff)
downloadlinux-1e3428e9e327a6e4163b3674b260dbd719f59839.tar.xz
orinoco: more reliable scan handling
Bring scan result handling more in line with drivers like ipw. Scan results are aggregated and a BSS dropped after 15 seconds if no beacon is received. This allows the driver to interact better with userspace where more than one process may request scans or results at any time. Signed-off-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/orinoco.h')
-rw-r--r--drivers/net/wireless/orinoco.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/net/wireless/orinoco.h b/drivers/net/wireless/orinoco.h
index 4720fb20d66d..c6b1858abde8 100644
--- a/drivers/net/wireless/orinoco.h
+++ b/drivers/net/wireless/orinoco.h
@@ -36,6 +36,12 @@ typedef enum {
FIRMWARE_TYPE_SYMBOL
} fwtype_t;
+typedef struct {
+ union hermes_scan_info bss;
+ unsigned long last_scanned;
+ struct list_head list;
+} bss_element;
+
struct orinoco_private {
void *card; /* Pointer to card dependent structure */
int (*hard_reset)(struct orinoco_private *);
@@ -105,10 +111,12 @@ struct orinoco_private {
int promiscuous, mc_count;
/* Scanning support */
+ struct list_head bss_list;
+ struct list_head bss_free_list;
+ bss_element *bss_data;
+
int scan_inprogress; /* Scan pending... */
u32 scan_mode; /* Type of scan done */
- char * scan_result; /* Result of previous scan */
- int scan_len; /* Lenght of result */
};
#ifdef ORINOCO_DEBUG