~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to drivers/net/wireless/libertas/types.h

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * This header file contains definition for global types
 
3
 */
 
4
#ifndef _LBS_TYPES_H_
 
5
#define _LBS_TYPES_H_
 
6
 
 
7
#include <linux/if_ether.h>
 
8
#include <linux/ieee80211.h>
 
9
#include <asm/byteorder.h>
 
10
 
 
11
struct ieee_ie_header {
 
12
        u8 id;
 
13
        u8 len;
 
14
} __packed;
 
15
 
 
16
struct ieee_ie_cf_param_set {
 
17
        struct ieee_ie_header header;
 
18
 
 
19
        u8 cfpcnt;
 
20
        u8 cfpperiod;
 
21
        __le16 cfpmaxduration;
 
22
        __le16 cfpdurationremaining;
 
23
} __packed;
 
24
 
 
25
 
 
26
struct ieee_ie_ibss_param_set {
 
27
        struct ieee_ie_header header;
 
28
 
 
29
        __le16 atimwindow;
 
30
} __packed;
 
31
 
 
32
union ieee_ss_param_set {
 
33
        struct ieee_ie_cf_param_set cf;
 
34
        struct ieee_ie_ibss_param_set ibss;
 
35
} __packed;
 
36
 
 
37
struct ieee_ie_fh_param_set {
 
38
        struct ieee_ie_header header;
 
39
 
 
40
        __le16 dwelltime;
 
41
        u8 hopset;
 
42
        u8 hoppattern;
 
43
        u8 hopindex;
 
44
} __packed;
 
45
 
 
46
struct ieee_ie_ds_param_set {
 
47
        struct ieee_ie_header header;
 
48
 
 
49
        u8 channel;
 
50
} __packed;
 
51
 
 
52
union ieee_phy_param_set {
 
53
        struct ieee_ie_fh_param_set fh;
 
54
        struct ieee_ie_ds_param_set ds;
 
55
} __packed;
 
56
 
 
57
/* TLV  type ID definition */
 
58
#define PROPRIETARY_TLV_BASE_ID         0x0100
 
59
 
 
60
/* Terminating TLV type */
 
61
#define MRVL_TERMINATE_TLV_ID           0xffff
 
62
 
 
63
#define TLV_TYPE_SSID                           0x0000
 
64
#define TLV_TYPE_RATES                          0x0001
 
65
#define TLV_TYPE_PHY_FH                         0x0002
 
66
#define TLV_TYPE_PHY_DS                         0x0003
 
67
#define TLV_TYPE_CF                                 0x0004
 
68
#define TLV_TYPE_IBSS                           0x0006
 
69
 
 
70
#define TLV_TYPE_DOMAIN                         0x0007
 
71
 
 
72
#define TLV_TYPE_POWER_CAPABILITY       0x0021
 
73
 
 
74
#define TLV_TYPE_KEY_MATERIAL       (PROPRIETARY_TLV_BASE_ID + 0)
 
75
#define TLV_TYPE_CHANLIST           (PROPRIETARY_TLV_BASE_ID + 1)
 
76
#define TLV_TYPE_NUMPROBES          (PROPRIETARY_TLV_BASE_ID + 2)
 
77
#define TLV_TYPE_RSSI_LOW           (PROPRIETARY_TLV_BASE_ID + 4)
 
78
#define TLV_TYPE_SNR_LOW            (PROPRIETARY_TLV_BASE_ID + 5)
 
79
#define TLV_TYPE_FAILCOUNT          (PROPRIETARY_TLV_BASE_ID + 6)
 
80
#define TLV_TYPE_BCNMISS            (PROPRIETARY_TLV_BASE_ID + 7)
 
81
#define TLV_TYPE_LED_GPIO           (PROPRIETARY_TLV_BASE_ID + 8)
 
82
#define TLV_TYPE_LEDBEHAVIOR        (PROPRIETARY_TLV_BASE_ID + 9)
 
83
#define TLV_TYPE_PASSTHROUGH        (PROPRIETARY_TLV_BASE_ID + 10)
 
84
#define TLV_TYPE_REASSOCAP          (PROPRIETARY_TLV_BASE_ID + 11)
 
85
#define TLV_TYPE_POWER_TBL_2_4GHZ   (PROPRIETARY_TLV_BASE_ID + 12)
 
86
#define TLV_TYPE_POWER_TBL_5GHZ     (PROPRIETARY_TLV_BASE_ID + 13)
 
87
#define TLV_TYPE_BCASTPROBE         (PROPRIETARY_TLV_BASE_ID + 14)
 
88
#define TLV_TYPE_NUMSSID_PROBE      (PROPRIETARY_TLV_BASE_ID + 15)
 
89
#define TLV_TYPE_WMMQSTATUS         (PROPRIETARY_TLV_BASE_ID + 16)
 
90
#define TLV_TYPE_CRYPTO_DATA        (PROPRIETARY_TLV_BASE_ID + 17)
 
91
#define TLV_TYPE_WILDCARDSSID       (PROPRIETARY_TLV_BASE_ID + 18)
 
92
#define TLV_TYPE_TSFTIMESTAMP       (PROPRIETARY_TLV_BASE_ID + 19)
 
93
#define TLV_TYPE_RSSI_HIGH          (PROPRIETARY_TLV_BASE_ID + 22)
 
94
#define TLV_TYPE_SNR_HIGH           (PROPRIETARY_TLV_BASE_ID + 23)
 
95
#define TLV_TYPE_AUTH_TYPE          (PROPRIETARY_TLV_BASE_ID + 31)
 
96
#define TLV_TYPE_MESH_ID            (PROPRIETARY_TLV_BASE_ID + 37)
 
97
#define TLV_TYPE_OLD_MESH_ID        (PROPRIETARY_TLV_BASE_ID + 291)
 
98
 
 
99
/* TLV related data structures */
 
100
struct mrvl_ie_header {
 
101
        __le16 type;
 
102
        __le16 len;
 
103
} __packed;
 
104
 
 
105
struct mrvl_ie_data {
 
106
        struct mrvl_ie_header header;
 
107
        u8 Data[1];
 
108
} __packed;
 
109
 
 
110
struct mrvl_ie_rates_param_set {
 
111
        struct mrvl_ie_header header;
 
112
        u8 rates[1];
 
113
} __packed;
 
114
 
 
115
struct mrvl_ie_ssid_param_set {
 
116
        struct mrvl_ie_header header;
 
117
        u8 ssid[1];
 
118
} __packed;
 
119
 
 
120
struct mrvl_ie_wildcard_ssid_param_set {
 
121
        struct mrvl_ie_header header;
 
122
        u8 MaxSsidlength;
 
123
        u8 ssid[1];
 
124
} __packed;
 
125
 
 
126
struct chanscanmode {
 
127
#ifdef __BIG_ENDIAN_BITFIELD
 
128
        u8 reserved_2_7:6;
 
129
        u8 disablechanfilt:1;
 
130
        u8 passivescan:1;
 
131
#else
 
132
        u8 passivescan:1;
 
133
        u8 disablechanfilt:1;
 
134
        u8 reserved_2_7:6;
 
135
#endif
 
136
} __packed;
 
137
 
 
138
struct chanscanparamset {
 
139
        u8 radiotype;
 
140
        u8 channumber;
 
141
        struct chanscanmode chanscanmode;
 
142
        __le16 minscantime;
 
143
        __le16 maxscantime;
 
144
} __packed;
 
145
 
 
146
struct mrvl_ie_chanlist_param_set {
 
147
        struct mrvl_ie_header header;
 
148
        struct chanscanparamset chanscanparam[1];
 
149
} __packed;
 
150
 
 
151
struct mrvl_ie_cf_param_set {
 
152
        struct mrvl_ie_header header;
 
153
        u8 cfpcnt;
 
154
        u8 cfpperiod;
 
155
        __le16 cfpmaxduration;
 
156
        __le16 cfpdurationremaining;
 
157
} __packed;
 
158
 
 
159
struct mrvl_ie_ds_param_set {
 
160
        struct mrvl_ie_header header;
 
161
        u8 channel;
 
162
} __packed;
 
163
 
 
164
struct mrvl_ie_rsn_param_set {
 
165
        struct mrvl_ie_header header;
 
166
        u8 rsnie[1];
 
167
} __packed;
 
168
 
 
169
struct mrvl_ie_tsf_timestamp {
 
170
        struct mrvl_ie_header header;
 
171
        __le64 tsftable[1];
 
172
} __packed;
 
173
 
 
174
/* v9 and later firmware only */
 
175
struct mrvl_ie_auth_type {
 
176
        struct mrvl_ie_header header;
 
177
        __le16 auth;
 
178
} __packed;
 
179
 
 
180
/*  Local Power capability */
 
181
struct mrvl_ie_power_capability {
 
182
        struct mrvl_ie_header header;
 
183
        s8 minpower;
 
184
        s8 maxpower;
 
185
} __packed;
 
186
 
 
187
/* used in CMD_802_11_SUBSCRIBE_EVENT for SNR, RSSI and Failure */
 
188
struct mrvl_ie_thresholds {
 
189
        struct mrvl_ie_header header;
 
190
        u8 value;
 
191
        u8 freq;
 
192
} __packed;
 
193
 
 
194
struct mrvl_ie_beacons_missed {
 
195
        struct mrvl_ie_header header;
 
196
        u8 beaconmissed;
 
197
        u8 reserved;
 
198
} __packed;
 
199
 
 
200
struct mrvl_ie_num_probes {
 
201
        struct mrvl_ie_header header;
 
202
        __le16 numprobes;
 
203
} __packed;
 
204
 
 
205
struct mrvl_ie_bcast_probe {
 
206
        struct mrvl_ie_header header;
 
207
        __le16 bcastprobe;
 
208
} __packed;
 
209
 
 
210
struct mrvl_ie_num_ssid_probe {
 
211
        struct mrvl_ie_header header;
 
212
        __le16 numssidprobe;
 
213
} __packed;
 
214
 
 
215
struct led_pin {
 
216
        u8 led;
 
217
        u8 pin;
 
218
} __packed;
 
219
 
 
220
struct mrvl_ie_ledgpio {
 
221
        struct mrvl_ie_header header;
 
222
        struct led_pin ledpin[1];
 
223
} __packed;
 
224
 
 
225
struct led_bhv {
 
226
        uint8_t firmwarestate;
 
227
        uint8_t led;
 
228
        uint8_t ledstate;
 
229
        uint8_t ledarg;
 
230
} __packed;
 
231
 
 
232
 
 
233
struct mrvl_ie_ledbhv {
 
234
        struct mrvl_ie_header header;
 
235
        struct led_bhv ledbhv[1];
 
236
} __packed;
 
237
 
 
238
/*
 
239
 * Meant to be packed as the value member of a struct ieee80211_info_element.
 
240
 * Note that the len member of the ieee80211_info_element varies depending on
 
241
 * the mesh_id_len
 
242
 */
 
243
struct mrvl_meshie_val {
 
244
        uint8_t oui[3];
 
245
        uint8_t type;
 
246
        uint8_t subtype;
 
247
        uint8_t version;
 
248
        uint8_t active_protocol_id;
 
249
        uint8_t active_metric_id;
 
250
        uint8_t mesh_capability;
 
251
        uint8_t mesh_id_len;
 
252
        uint8_t mesh_id[IEEE80211_MAX_SSID_LEN];
 
253
} __packed;
 
254
 
 
255
struct mrvl_meshie {
 
256
        u8 id, len;
 
257
        struct mrvl_meshie_val val;
 
258
} __packed;
 
259
 
 
260
struct mrvl_mesh_defaults {
 
261
        __le32 bootflag;
 
262
        uint8_t boottime;
 
263
        uint8_t reserved;
 
264
        __le16 channel;
 
265
        struct mrvl_meshie meshie;
 
266
} __packed;
 
267
 
 
268
#endif