diff options
author | Dan Williams <dcbw@redhat.com> | 2007-10-10 23:56:25 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:03:32 -0500 |
commit | 1e3428e9e327a6e4163b3674b260dbd719f59839 (patch) | |
tree | 98cb9a4e11e72db5da6070c6ff94311097020a13 /drivers/net/wireless/orinoco.h | |
parent | 40faacc4078d0fef6daaf6f5d1d332d08631bdd8 (diff) |
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.h | 12 |
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 { | |||
36 | FIRMWARE_TYPE_SYMBOL | 36 | FIRMWARE_TYPE_SYMBOL |
37 | } fwtype_t; | 37 | } fwtype_t; |
38 | 38 | ||
39 | typedef struct { | ||
40 | union hermes_scan_info bss; | ||
41 | unsigned long last_scanned; | ||
42 | struct list_head list; | ||
43 | } bss_element; | ||
44 | |||
39 | struct orinoco_private { | 45 | struct orinoco_private { |
40 | void *card; /* Pointer to card dependent structure */ | 46 | void *card; /* Pointer to card dependent structure */ |
41 | int (*hard_reset)(struct orinoco_private *); | 47 | int (*hard_reset)(struct orinoco_private *); |
@@ -105,10 +111,12 @@ struct orinoco_private { | |||
105 | int promiscuous, mc_count; | 111 | int promiscuous, mc_count; |
106 | 112 | ||
107 | /* Scanning support */ | 113 | /* Scanning support */ |
114 | struct list_head bss_list; | ||
115 | struct list_head bss_free_list; | ||
116 | bss_element *bss_data; | ||
117 | |||
108 | int scan_inprogress; /* Scan pending... */ | 118 | int scan_inprogress; /* Scan pending... */ |
109 | u32 scan_mode; /* Type of scan done */ | 119 | u32 scan_mode; /* Type of scan done */ |
110 | char * scan_result; /* Result of previous scan */ | ||
111 | int scan_len; /* Lenght of result */ | ||
112 | }; | 120 | }; |
113 | 121 | ||
114 | #ifdef ORINOCO_DEBUG | 122 | #ifdef ORINOCO_DEBUG |