0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef SCAN_H_INCLUDED
0010 #define SCAN_H_INCLUDED
0011
0012 #include <linux/semaphore.h>
0013 #include "wsm.h"
0014
0015 struct sk_buff;
0016 struct cfg80211_scan_request;
0017 struct ieee80211_channel;
0018 struct ieee80211_hw;
0019 struct work_struct;
0020
0021 struct cw1200_scan {
0022 struct semaphore lock;
0023 struct work_struct work;
0024 struct delayed_work timeout;
0025 struct cfg80211_scan_request *req;
0026 struct ieee80211_channel **begin;
0027 struct ieee80211_channel **curr;
0028 struct ieee80211_channel **end;
0029 struct wsm_ssid ssids[WSM_SCAN_MAX_NUM_OF_SSIDS];
0030 int output_power;
0031 int n_ssids;
0032 int status;
0033 atomic_t in_progress;
0034
0035 struct delayed_work probe_work;
0036 int direct_probe;
0037 };
0038
0039 int cw1200_hw_scan(struct ieee80211_hw *hw,
0040 struct ieee80211_vif *vif,
0041 struct ieee80211_scan_request *hw_req);
0042 void cw1200_scan_work(struct work_struct *work);
0043 void cw1200_scan_timeout(struct work_struct *work);
0044 void cw1200_clear_recent_scan_work(struct work_struct *work);
0045 void cw1200_scan_complete_cb(struct cw1200_common *priv,
0046 struct wsm_scan_complete *arg);
0047 void cw1200_scan_failed_cb(struct cw1200_common *priv);
0048
0049
0050
0051 void cw1200_probe_work(struct work_struct *work);
0052
0053 #endif