]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/net/wireless/orinoco.h
[PATCH] orinoco: scanning support
[mv-sheeva.git] / drivers / net / wireless / orinoco.h
index f749b50d10883359c0a9f73596eaab8644c42ae3..2a6b1c09b26de3d75ab87c88c8fd4b1f0ed8b67a 100644 (file)
@@ -22,6 +22,8 @@
 
 #define WIRELESS_SPY           // enable iwspy support
 
+#define MAX_SCAN_LEN           4096
+
 #define ORINOCO_MAX_KEY_SIZE   14
 #define ORINOCO_MAX_KEYS       4
 
@@ -30,6 +32,20 @@ struct orinoco_key {
        char data[ORINOCO_MAX_KEY_SIZE];
 } __attribute__ ((packed));
 
+struct header_struct {
+       /* 802.3 */
+       u8 dest[ETH_ALEN];
+       u8 src[ETH_ALEN];
+       u16 len;
+       /* 802.2 */
+       u8 dsap;
+       u8 ssap;
+       u8 ctrl;
+       /* SNAP */
+       u8 oui[3];
+       u16 ethertype;
+} __attribute__ ((packed));
+
 typedef enum {
        FIRMWARE_TYPE_AGERE,
        FIRMWARE_TYPE_INTERSIL,
@@ -48,6 +64,8 @@ struct orinoco_private {
        /* driver state */
        int open;
        u16 last_linkstatus;
+       struct work_struct join_work;
+       struct work_struct wevent_work;
 
        /* Net device stuff */
        struct net_device *ndev;
@@ -74,6 +92,7 @@ struct orinoco_private {
        unsigned int has_pm:1;
        unsigned int has_preamble:1;
        unsigned int has_sensitivity:1;
+       unsigned int has_hostscan:1;
        unsigned int broken_disableport:1;
 
        /* Configuration paramaters */
@@ -84,6 +103,8 @@ struct orinoco_private {
        int bitratemode;
        char nick[IW_ESSID_MAX_SIZE+1];
        char desired_essid[IW_ESSID_MAX_SIZE+1];
+       char desired_bssid[ETH_ALEN];
+       int bssid_fixed;
        u16 frag_thresh, mwo_robust;
        u16 channel;
        u16 ap_density, rts_thresh;
@@ -98,6 +119,12 @@ struct orinoco_private {
        /* Configuration dependent variables */
        int port_type, createibss;
        int promiscuous, mc_count;
+
+       /* Scanning support */
+       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