]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/net/wireless/libertas/dev.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
[linux-2.6-omap-h63xx.git] / drivers / net / wireless / libertas / dev.h
index 3f3e7f6e68b39cefb91b47bb1f2e9ad7cdb9dd7d..0d9edb9b11f5e0b300bdf44ad23fc1e32702c0b4 100644 (file)
 #include <linux/wireless.h>
 #include <linux/ethtool.h>
 #include <linux/debugfs.h>
+#include <net/ieee80211.h>
 
 #include "defs.h"
-#include "scan.h"
+#include "hostcmd.h"
 
 extern struct ethtool_ops lbs_ethtool_ops;
 
@@ -128,10 +129,6 @@ struct lbs_private {
        u32 bbp_offset;
        u32 rf_offset;
 
-       /** Upload length */
-       u32 upld_len;
-       /* Upload buffer */
-       u8 upld_buf[LBS_UPLD_SIZE];
        /* Download sent:
           bit0 1/0=data_sent/data_tx_done,
           bit1 1/0=cmd_sent/cmd_tx_done,
@@ -154,21 +151,16 @@ struct lbs_private {
 
        /** Hardware access */
        int (*hw_host_to_card) (struct lbs_private *priv, u8 type, u8 *payload, u16 nb);
-       int (*hw_get_int_status) (struct lbs_private *priv, u8 *);
-       int (*hw_read_event_cause) (struct lbs_private *);
 
        /* Wake On LAN */
        uint32_t wol_criteria;
        uint8_t wol_gpio;
        uint8_t wol_gap;
 
-       /* was struct lbs_adapter from here... */
-
        /** Wlan adapter data structure*/
        /** STATUS variables */
        u32 fwrelease;
        u32 fwcapinfo;
-       /* protected with big lock */
 
        struct mutex lock;
 
@@ -180,7 +172,6 @@ struct lbs_private {
 
        /** command-related variables */
        u16 seqnum;
-       /* protected by big lock */
 
        struct cmd_ctrl_node *cmd_array;
        /** Current command */
@@ -193,12 +184,17 @@ struct lbs_private {
        struct list_head cmdpendingq;
 
        wait_queue_head_t cmd_pending;
-       /* command related variables protected by priv->driver_lock */
 
-       /** Async and Sync Event variables */
-       u32 intcounter;
-       u32 eventcause;
-       u8 nodename[16];        /* nickname */
+       /* Command responses sent from the hardware to the driver */
+       u8 resp_idx;
+       u8 resp_buf[2][LBS_UPLD_SIZE];
+       u32 resp_len[2];
+
+       /* Events sent from hardware to driver */
+       struct kfifo *event_fifo;
+
+       /* nickname */
+       u8 nodename[16];
 
        /** spin locks */
        spinlock_t driver_lock;
@@ -208,8 +204,6 @@ struct lbs_private {
        int nr_retries;
        int cmd_timed_out;
 
-       u8 hisregcpy;
-
        /** current ssid/bssid related parameters*/
        struct current_bss_params curbssparams;
 
@@ -325,6 +319,44 @@ struct lbs_private {
 
 extern struct cmd_confirm_sleep confirm_sleep;
 
+/**
+ *  @brief Structure used to store information for each beacon/probe response
+ */
+struct bss_descriptor {
+       u8 bssid[ETH_ALEN];
+
+       u8 ssid[IW_ESSID_MAX_SIZE + 1];
+       u8 ssid_len;
+
+       u16 capability;
+       u32 rssi;
+       u32 channel;
+       u16 beaconperiod;
+       u32 atimwindow;
+
+       /* IW_MODE_AUTO, IW_MODE_ADHOC, IW_MODE_INFRA */
+       u8 mode;
+
+       /* zero-terminated array of supported data rates */
+       u8 rates[MAX_RATES + 1];
+
+       unsigned long last_scanned;
+
+       union ieeetypes_phyparamset phyparamset;
+       union IEEEtypes_ssparamset ssparamset;
+
+       struct ieeetypes_countryinfofullset countryinfo;
+
+       u8 wpa_ie[MAX_WPA_IE_LEN];
+       size_t wpa_ie_len;
+       u8 rsn_ie[MAX_WPA_IE_LEN];
+       size_t rsn_ie_len;
+
+       u8 mesh;
+
+       struct list_head list;
+};
+
 /** Association request
  *
  * Encapsulates all the options that describe a specific assocation request