2
2
* Linux-specific portion of Broadcom 802.11abg Networking Device Driver
5
* Copyright (C) 2010, Broadcom Corporation
8
* THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
9
* KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
10
* SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
11
* FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
5
* Copyright (C) 2011, Broadcom Corporation. All Rights Reserved.
7
* Permission to use, copy, modify, and/or distribute this software for any
8
* purpose with or without fee is hereby granted, provided that the above
9
* copyright notice and this permission notice appear in all copies.
11
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
14
* SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
16
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
17
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
13
* $Id: wl_cfg80211.h,v 1.1.8.1 2011-01-26 00:57:46 Exp $
19
* $Id: wl_cfg80211.h,v 1.1.8.1 2011-01-26 00:57:46 $
16
22
#ifndef _wl_cfg80211_h_
113
116
struct ieee80211_channel channel;
116
struct wl_event_loop {
117
s32(*handler[WLC_E_LAST]) (struct wl_priv *wl, struct net_device *ndev,
119
struct wl_cfg80211_event_loop {
120
s32(*handler[WLC_E_LAST]) (struct wl_cfg80211_priv *wl, struct net_device *ndev,
118
121
const wl_event_msg_t *e, void *data);
130
struct wlc_ssid ssid;
132
struct wl_cfg80211_scan_req {
133
wl_scan_params_hyb_t wl_scan_req;
136
struct wl_cfg80211_ie {
135
138
u8 buf[WL_TLV_INFO_MAX];
141
struct wl_cfg80211_event_q {
139
142
struct list_head eq_list;
141
144
wl_event_msg_t emsg;
148
struct wl_cfg80211_security {
146
149
u32 wpa_versions;
148
151
u32 cipher_pairwise;
156
struct wl_cfg80211_profile {
154
157
struct wlc_ssid ssid;
155
158
u8 bssid[ETHER_ADDR_LEN];
156
struct wl_security sec;
159
struct wl_cfg80211_security sec;
160
struct wl_connect_info {
163
struct wl_cfg80211_connect_info {
167
struct wl_assoc_ielen {
170
struct wl_cfg80211_assoc_ielen {
175
struct wl_cfg80211_pmk_list {
173
176
pmkid_list_t pmkids;
174
177
pmkid_t foo[MAXPMKID - 1];
180
struct wl_cfg80211_priv {
178
181
struct wireless_dev *wdev;
179
struct wl_conf *conf;
182
struct wl_cfg80211_conf *conf;
180
183
struct cfg80211_scan_request *scan_request;
181
struct wl_event_loop el;
184
struct wl_cfg80211_event_loop el;
182
185
struct list_head eq_list;
183
186
spinlock_t eq_lock;
184
struct wl_scan_req *scan_req_int;
187
struct wl_cfg80211_scan_req *scan_req_int;
188
struct wl_cfg80211_ie ie;
186
189
struct ether_addr bssid;
187
190
struct semaphore event_sync;
188
struct wl_profile *profile;
189
struct wl_connect_info conn_info;
190
struct wl_pmk_list *pmk_list;
191
struct wl_cfg80211_profile *profile;
192
struct wl_cfg80211_connect_info conn_info;
193
struct wl_cfg80211_pmk_list *pmk_list;
191
194
struct task_struct *event_tsk;
192
195
unsigned long status;
193
196
bool active_scan;
197
199
u8 ci[0] __attribute__ ((__aligned__(NETDEV_ALIGN)));
200
202
#define wl_to_dev(w) (wiphy_dev(wl->wdev->wiphy))
201
203
#define wl_to_wiphy(w) (w->wdev->wiphy)
202
#define wiphy_to_wl(w) ((struct wl_priv *)(wiphy_priv(w)))
204
#define wiphy_to_wl(w) ((struct wl_cfg80211_priv *)(wiphy_priv(w)))
203
205
#define wl_to_wdev(w) (w->wdev)
204
#define wdev_to_wl(w) ((struct wl_priv *)(wdev_priv(w)))
206
#define wdev_to_wl(w) ((struct wl_cfg80211_priv *)(wdev_priv(w)))
205
207
#define wl_to_ndev(w) (w->wdev->netdev)
206
208
#define ndev_to_wl(n) (wdev_to_wl(n->ieee80211_ptr))
207
209
#define wl_to_sr(w) (w->scan_req_int)