xref: /OK3568_Linux_fs/kernel/drivers/net/wireless/rockchip_wlan/mvl88w8977/mlan/esa/common/wltypes.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /** @file  wltypes.h
2  *
3  *  @brief Basic types common to all the modules must be defined in this file.
4  *
5  * Copyright (C) 2014-2017, Marvell International Ltd.
6  *
7  * This software file (the "File") is distributed by Marvell International
8  * Ltd. under the terms of the GNU General Public License Version 2, June 1991
9  * (the "License").  You may use, redistribute and/or modify this File in
10  * accordance with the terms and conditions of the License, a copy of which
11  * is available by writing to the Free Software Foundation, Inc.,
12  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the
13  * worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
14  *
15  * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
16  * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
17  * ARE EXPRESSLY DISCLAIMED.  The License provides additional details about
18  * this warranty disclaimer.
19  */
20 
21 /******************************************************
22 Change log:
23     03/07/2014: Initial version
24 ******************************************************/
25 #if !defined(WLTYPES_H__)
26 #define WLTYPES_H__
27 /*
28 *                Copyright 2003, Marvell Semiconductor, Inc.
29 * This code contains confidential information of Marvell Semiconductor, Inc.
30 * No rights are granted herein under any patent, mask work right or copyright
31 * of Marvell or any third party.
32 * Marvell reserves the right at its sole discretion to request that this code
33 * be immediately returned to Marvell. This code is provided "as is".
34 * Marvell makes no warranties, express, implied or otherwise, regarding its
35 * accuracy, completeness or performance.
36 */
37 
38 /*!
39  * \file    wltypes.h
40  * \brief   Basic types common to all the modules must be defined in this file.
41  *
42 */
43  /** @defgroup DataTypes Data Types used in SDK
44  *  Functions exported by wltypes.h
45  *  @{
46  */
47 /*! Create type names for native C types for portability reasons */
48 typedef unsigned long long UINT64;	//!< 64 bit unsigned
49 typedef signed long long SINT64;	//!< 64 bit signed
50 typedef unsigned int UINT32;	//!< 32 bit unsigned
51 typedef signed int SINT32;	//!< 32 bit signed
52 typedef unsigned short UINT16;	//!< 16 bit unsigned
53 typedef signed short SINT16;	//!< 16 bit signed
54 typedef unsigned char UINT8;	//!< 8 bit unsigned
55 typedef signed char SINT8;	//!< 8 bit signed
56 
57 typedef unsigned long long uint64;	//!< 64 bit unsigned
58 typedef signed long long sint64;	//!< 64 bit signed
59 typedef unsigned int uint32;	//!< 32 bit unsigned
60 
61 typedef signed int sint32;	//!< 32 bit signed
62 typedef unsigned short uint16;	//!< 16 bit unsigned
63 typedef signed short sint16;	//!< 16 bit signed
64 typedef unsigned char uint8;	//!< 8 bit unsigned
65 typedef signed char sint8;	//!< 8 bit signed
66 typedef signed char int8;	//!< 8 bit signed
67 typedef int BOOLEAN;		//!< boolean
68 typedef int Boolean;		//!< boolean
69 typedef signed int BIT_FIELD;	//!< bit field
70 
71 typedef unsigned int UINT;	//!< unsigned integer
72 
73 //From dwc_os.h
74 #define size_t uint32
75 
76 extern SINT8 SINT8_minus_SINT8(SINT8 x, SINT8 y);
77 extern SINT8 SINT8_plus_SINT8(SINT8 x, SINT8 y);
78 
79 #ifdef __GNUC__
80 /** Structure packing begins */
81 #define MLAN_PACK_START
82 /** Structure packeing end */
83 #define MLAN_PACK_END  __attribute__((packed))
84 #else /* !__GNUC__ */
85 #ifdef PRAGMA_PACK
86 /** Structure packing begins */
87 #define MLAN_PACK_START
88 /** Structure packeing end */
89 #define MLAN_PACK_END
90 #else /* !PRAGMA_PACK */
91 /** Structure packing begins */
92 #define MLAN_PACK_START   __packed
93 /** Structure packing end */
94 #define MLAN_PACK_END
95 #endif /* PRAGMA_PACK */
96 #endif /* __GNUC__ */
97 
98 #ifndef INLINE
99 #ifdef __GNUC__
100 /** inline directive */
101 #define	INLINE	inline
102 #else
103 /** inline directive */
104 #define	INLINE	__inline
105 #endif
106 #endif
107 
108 typedef struct _REFCLK_VAL8_REG7F {
109 	UINT8 refClk;
110 	UINT8 val;
111 } REFCLK_VAL8_REG7F;
112 
113 #define REG8_TERMINATOR (0xFF)
114 typedef struct _ADDR8_VAL8_REG {
115 	UINT8 reg;
116 	UINT8 val;
117 } ADDR8_VAL8_REG;
118 
119 #define REG16_TERMINATOR (0xFFFF)
120 typedef struct _ADDR16_VAL8_REG {
121 	UINT16 reg;
122 	UINT8 val;
123 } ADDR16_VAL8_REG;
124 
125 #define REG32_TERMINATOR (0xFFFFFFFF)
126 typedef struct _ADDR32_VAL32_REG {
127 	UINT32 reg;
128 	UINT32 val;
129 } ADDR32_VAL32_REG;
130 
131 #if defined(BBP_9BIT_ADDR)
132 #define BBP_TERMINATOR REG16_TERMINATOR
133 #else
134 #define BBP_TERMINATOR REG8_TERMINATOR
135 #endif
136 
137 /*! Generic status code */
138 #define WL_STATUS_OK         0	//!< ok
139 #define WL_STATUS_ERR       -1	//!< error
140 #define WL_STATUS_BAD_PARAM -2	//!< bad parameter
141 
142 /* Some BT files require access to wltypes.h file which result in duplicate definition of FALSE & TRUE
143  * undef TRUE and FALSE to avoid these warnings */
144 #undef FALSE
145 #undef TRUE
146 #undef INLINE
147 
148 /*! BOOLEAN values */
149 #define FALSE 0			//!< False
150 #define TRUE  1			//!< True
151 
152 /**
153 *** @brief Enumeration of Status type
154 **/
155 typedef enum {
156 	SUCCESS,		//!< 0
157 	FAIL			//!< 1
158 } Status_e;
159 
160 typedef Status_e WL_STATUS;
161 
162 /*! Value for NULL pointer */
163 #undef NULL
164 #define NULL ((void *)0)	//!< null
165 #if 0
166 #ifndef LINT
167 #define MLAN_PACK_START   __packed	//!< packed structure
168 #define MLAN_PACK_END		//!< end of packed structure
169 
170 #define ALIGNED_START(x) __align(x)	//!< allignment macro
171 #define ALIGNED_END(x)		//!< allignment end
172 #else
173 #define MLAN_PACK_START
174 #define MLAN_PACK_END
175 
176 #define ALIGNED_START(x)
177 #define ALIGNED_END(x)
178 #endif
179 #endif
180 #define INLINE
181 
182 #define BIT0    (0x00000001 << 0)
183 #define BIT1    (0x00000001 << 1)
184 #define BIT2    (0x00000001 << 2)
185 #define BIT3    (0x00000001 << 3)
186 #define BIT4    (0x00000001 << 4)
187 #define BIT5    (0x00000001 << 5)
188 #define BIT6    (0x00000001 << 6)
189 #define BIT7    (0x00000001 << 7)
190 #define BIT8    (0x00000001 << 8)
191 #define BIT9    (0x00000001 << 9)
192 #define BIT10   (0x00000001 << 10)
193 #define BIT11   (0x00000001 << 11)
194 #define BIT12   (0x00000001 << 12)
195 #define BIT13   (0x00000001 << 13)
196 #define BIT14   (0x00000001 << 14)
197 #define BIT15   (0x00000001 << 15)
198 #define BIT16   (0x00000001 << 16)
199 #define BIT17   (0x00000001 << 17)
200 #define BIT18   (0x00000001 << 18)
201 #define BIT19   (0x00000001 << 19)
202 #define BIT20   (0x00000001 << 20)
203 #define BIT21   (0x00000001 << 21)
204 #define BIT22   (0x00000001 << 22)
205 #define BIT23   (0x00000001 << 23)
206 #define BIT24   (0x00000001 << 24)
207 #define BIT25   (0x00000001 << 25)
208 #define BIT26   (0x00000001 << 26)
209 #define BIT27   (0x00000001 << 27)
210 #define BIT28   (0x00000001 << 28)
211 #define BIT29   (0x00000001 << 29)
212 #define BIT30   (0x00000001 << 30)
213 #define BIT31   (0x00000001UL << 31)
214 
215 // VOLT_RESOLUTION_50mV
216 #define VOLT_0_5    10		// 10x50mV = 5x100mV
217 #define VOLT_0_6    12		// 12x50mV = 6x100mV
218 #define VOLT_0_7    14		// 14x50mV = 7x100mV
219 #define VOLT_0_7_5  15		// 15x50mV = 7.5x100mV
220 #define VOLT_0_8    16		// 16x50mV = 8x100mV
221 #define VOLT_0_8_5  17		// 17x50mV = 8.5x100mV
222 #define VOLT_0_9    18		// 18x50mV = 9x100mV
223 #define VOLT_1_0    20		// 20x50mV = 10x100mV
224 #define VOLT_1_0_5  21		// 21x50mV
225 #define VOLT_1_1    22		// 22x50mV = 11x100mV
226 #define VOLT_1_1_5  23		// 23x50mV
227 #define VOLT_1_2    24		// 24x50mV = 12x100mV
228 #define VOLT_1_2_5  25		// 25x50mV
229 #define VOLT_1_3    26		// 26x50mV = 13x100mV
230 #define VOLT_1_4    28		// 28x50mV = 14x100mV
231 #define VOLT_1_5    30		// 30x50mV = 15x100mV
232 #define VOLT_1_5_5  31		// 31x50mV = 15.5x100mV
233 #define VOLT_1_6    32		// 32x50mV = 16x100mV
234 #define VOLT_1_6_5  33		// 33x50mV = 16.5x100mV
235 #define VOLT_1_7    34		// 34x50mV = 17x100mV
236 #define VOLT_1_7_5  35		// 35x50mV = 17.5x100mV
237 #define VOLT_1_8    36		// 36x50mV = 18x100mV
238 #define VOLT_1_8_5  37		// 37x50mV = 18.5x100mV
239 #define VOLT_1_9    38		// 38x50mV = 19x100mV
240 #define VOLT_1_9_5  39		// 39x50mV = 19.5x100mV
241 #define VOLT_2_0    40		// 40x50mV = 20x100mV
242 #define VOLT_2_1    42		// 42x50mV = 21x100mV
243 #define VOLT_2_2    44		// 44x50mV = 22x100mV
244 #define VOLT_2_3    46		// 46x50mV = 23x100mV
245 #define VOLT_2_4    48		// 48x50mV = 24x100mV
246 #define VOLT_2_5    50		// 50x50mV = 25x100mV
247 #define VOLT_2_6    52		// 52x50mV = 26x100mV
248 #define VOLT_2_7    54		// 54x50mV = 27x100mV
249 #define VOLT_2_8    56		// 56x50mV = 28x100mV
250 #define VOLT_2_9    58		// 58x50mV = 29x100mV
251 #define VOLT_3_0    60		// 60x50mV = 30x100mV
252 #define VOLT_3_1    62		// 62x50mV = 31x100mV
253 #define VOLT_3_2    64		// 64x50mV = 32x100mV
254 #define VOLT_3_3    66		// 66x50mV = 33x100mV
255 #define VOLT_3_4    68		// 68x50mV = 34x100mV
256 #define VOLT_3_5    70		// 70x50mV = 35x100mV
257 #define VOLT_3_6    72		// 72x50mV = 36x100mV
258 
259 typedef enum {
260 	OFF = 0,
261 	ON = 1,
262 	UNKOWN = 0xFF
263 } ON_OFF_UNKOWN_e;
264 
265 typedef unsigned char MRVL_RATEID;
266 
267 #if defined(DOT11AC) && defined(STREAM_2x2)
268 typedef unsigned long long MRVL_RATEID_BITMAP_UNIT;
269 typedef struct {
270 	unsigned long long bitmap[2];
271 } MRVL_RATEID_BITMAP;
272 #define MRVL_RATEID_BIT(rateId)     (1ULL << (rateId))
273 #else
274 #if defined(STREAM_2x2) || defined(DOT11AC)
275 typedef unsigned long long MRVL_RATEID_BITMAP_UNIT;
276 typedef unsigned long long MRVL_RATEID_BITMAP;
277 #define MRVL_RATEID_BIT(rateId)     (1ULL << (rateId))
278 #else
279 typedef unsigned int MRVL_RATEID_BITMAP_UNIT;
280 typedef unsigned int MRVL_RATEID_BITMAP;
281 #define MRVL_RATEID_BIT(rateId)     (1UL << (rateId))
282 #endif
283 #endif
284 
285 #define NUM_RATE_BITMAP_UNIT  (sizeof(MRVL_RATEID_BITMAP_UNIT)*8)
286 
287 enum {
288 	RATEID_DBPSK1Mbps,	//(0)
289 	RATEID_DQPSK2Mbps,	//(1)
290 	RATEID_CCK5_5Mbps,	//(2)
291 	RATEID_CCK11Mbps,	//(3)
292 	RATEID_CCK22Mbps,	//(4)
293 	RATEID_OFDM6Mbps,	//(5)
294 	RATEID_OFDM9Mbps,	//(6)
295 	RATEID_OFDM12Mbps,	//(7)
296 	RATEID_OFDM18Mbps,	//(8)
297 	RATEID_OFDM24Mbps,	//(9)
298 	RATEID_OFDM36Mbps,	//(10)
299 	RATEID_OFDM48Mbps,	//(11)
300 	RATEID_OFDM54Mbps,	//(12)
301 	RATEID_OFDM72Mbps,	//(13)
302 
303 	RATEID_MCS0_6d5Mbps,	//(14)    //RATEID_OFDM72Mbps + 1
304 	RATEID_MCS1_13Mbps,	//(15)
305 	RATEID_MCS2_19d5Mbps,	//(16)
306 	RATEID_MCS3_26Mbps,	//(17)
307 	RATEID_MCS4_39Mbps,	//(18)
308 	RATEID_MCS5_52Mbps,	//(19)
309 	RATEID_MCS6_58d5Mbps,	//(20)
310 	RATEID_MCS7_65Mbps,	//(21)
311 
312 #ifdef STREAM_2x2
313 	RATEID_MCS8_13Mbps,	//(22)
314 	RATEID_MCS9_26Mbps,	//(23)
315 	RATEID_MCS10_39Mbps,	//(24)
316 	RATEID_MCS11_52Mbps,	//(25)
317 	RATEID_MCS12_78Mbps,	//(26)
318 	RATEID_MCS13_104Mbps,	//(27)
319 	RATEID_MCS14_117Mbps,	//(28)
320 	RATEID_MCS15_130Mbps,	//(29)
321 #endif
322 
323 	RATEID_MCS32BW40_6Mbps,	//(30), (22)
324 	RATEID_MCS0BW40_13d5Mbps,	//(31), (23)
325 	RATEID_MCS1BW40_27Mbps,	//(32), (24)
326 	RATEID_MCS2BW40_40d5Mbps,	//(33), (25)
327 	RATEID_MCS3BW40_54Mbps,	//(34), (26)
328 	RATEID_MCS4BW40_81Mbps,	//(35), (27)
329 	RATEID_MCS5BW40_108Mbps,	//(36), (28)
330 	RATEID_MCS6BW40_121d5Mbps,	//(37), (29)
331 	RATEID_MCS7BW40_135Mbps,	//(38), (30)
332 
333 #ifdef STREAM_2x2
334 	RATEID_MCS8BW40_27Mbps,	//(39)
335 	RATEID_MCS9BW40_54Mbps,	//(40)
336 	RATEID_MCS10BW40_81Mbps,	//(41)
337 	RATEID_MCS11BW40_108Mbps,	//(42)
338 	RATEID_MCS12BW40_162Mbps,	//(43)
339 	RATEID_MCS13BW40_216Mbps,	//(44)
340 	RATEID_MCS14BW40_243Mbps,	//(45)
341 	RATEID_MCS15BW40_270Mbps,	//(46)
342 #endif
343 
344 #if defined(DOT11AC)
345 	RATEID_VHT_MCS0_1SS_BW20,	//(47), (31) //6.5  Mbps
346 	RATEID_VHT_MCS1_1SS_BW20,	//(48), (32) //13   Mbps
347 	RATEID_VHT_MCS2_1SS_BW20,	//(49), (33) //19.5 Mbps
348 	RATEID_VHT_MCS3_1SS_BW20,	//(50), (34) //26   Mbps
349 	RATEID_VHT_MCS4_1SS_BW20,	//(51), (35) //39   Mbps
350 	RATEID_VHT_MCS5_1SS_BW20,	//(52), (36) //52   Mbps
351 	RATEID_VHT_MCS6_1SS_BW20,	//(53), (37) //58.5 Mbps
352 	RATEID_VHT_MCS7_1SS_BW20,	//(54), (38) //65   Mbps
353 	RATEID_VHT_MCS8_1SS_BW20,	//(55), (39) //78   Mbps
354 	RATEID_VHT_MCS9_1SS_BW20,	//(56), (40) //86.7 Mbps(INVALID)
355 
356 #ifdef STREAM_2x2
357 	RATEID_VHT_MCS0_2SS_BW20,	//(57)       //13    Mbps
358 	RATEID_VHT_MCS1_2SS_BW20,	//(58)       //26    Mbps
359 	RATEID_VHT_MCS2_2SS_BW20,	//(59)       //39    Mbps
360 	RATEID_VHT_MCS3_2SS_BW20,	//(60)       //52    Mbps
361 	RATEID_VHT_MCS4_2SS_BW20,	//(61)       //78    Mbps
362 	RATEID_VHT_MCS5_2SS_BW20,	//(62)       //104   Mbps
363 	RATEID_VHT_MCS6_2SS_BW20,	//(63)       //117   Mbps
364 	RATEID_VHT_MCS7_2SS_BW20,	//(64)       //130   Mbps
365 	RATEID_VHT_MCS8_2SS_BW20,	//(65)       //156   Mbps
366 	RATEID_VHT_MCS9_2SS_BW20,	//(66)       //173.3 Mbps(INVALID)
367 #endif
368 
369 	RATEID_VHT_MCS0_1SS_BW40,	//(67), (41) //13.5  Mbps
370 	RATEID_VHT_MCS1_1SS_BW40,	//(68), (42) //27    Mbps
371 	RATEID_VHT_MCS2_1SS_BW40,	//(69), (43) //40.5  Mbps
372 	RATEID_VHT_MCS3_1SS_BW40,	//(70), (44) //54    Mbps
373 	RATEID_VHT_MCS4_1SS_BW40,	//(71), (45) //81    Mbps
374 	RATEID_VHT_MCS5_1SS_BW40,	//(72), (46) //108   Mbps
375 	RATEID_VHT_MCS6_1SS_BW40,	//(73), (47) //121.5 Mbps
376 	RATEID_VHT_MCS7_1SS_BW40,	//(74), (48) //135   Mbps
377 	RATEID_VHT_MCS8_1SS_BW40,	//(75), (49) //162   Mbps
378 	RATEID_VHT_MCS9_1SS_BW40,	//(76), (50) //180   Mbps
379 
380 #ifdef STREAM_2x2
381 	RATEID_VHT_MCS0_2SS_BW40,	//(77)       //27  Mbps
382 	RATEID_VHT_MCS1_2SS_BW40,	//(78)       //54  Mbps
383 	RATEID_VHT_MCS2_2SS_BW40,	//(79)       //81  Mbps
384 	RATEID_VHT_MCS3_2SS_BW40,	//(80)       //108 Mbps
385 	RATEID_VHT_MCS4_2SS_BW40,	//(81)       //162 Mbps
386 	RATEID_VHT_MCS5_2SS_BW40,	//(82)       //216 Mbps
387 	RATEID_VHT_MCS6_2SS_BW40,	//(83)       //243 Mbps
388 	RATEID_VHT_MCS7_2SS_BW40,	//(84)       //270 Mbps
389 	RATEID_VHT_MCS8_2SS_BW40,	//(85)       //324 Mbps
390 	RATEID_VHT_MCS9_2SS_BW40,	//(86)       //360 Mbps
391 #endif
392 
393 	RATEID_VHT_MCS0_1SS_BW80,	//(87), (51) //29.3  Mbps
394 	RATEID_VHT_MCS1_1SS_BW80,	//(88), (52) //58.5  Mbps
395 	RATEID_VHT_MCS2_1SS_BW80,	//(89), (53) //87.8  Mbps
396 	RATEID_VHT_MCS3_1SS_BW80,	//(90), (54) //117   Mbps
397 	RATEID_VHT_MCS4_1SS_BW80,	//(91), (55) //175.5 Mbps
398 	RATEID_VHT_MCS5_1SS_BW80,	//(92), (56) //234   Mbps
399 	RATEID_VHT_MCS6_1SS_BW80,	//(93), (57) //263.3 Mbps
400 	RATEID_VHT_MCS7_1SS_BW80,	//(94), (58) //292.5 Mbps
401 	RATEID_VHT_MCS8_1SS_BW80,	//(95), (59) //351   Mbps
402 	RATEID_VHT_MCS9_1SS_BW80,	//(96), (60) //390   Mbps
403 
404 #ifdef STREAM_2x2
405 	RATEID_VHT_MCS0_2SS_BW80,	//(97)       //58.5  Mbps
406 	RATEID_VHT_MCS1_2SS_BW80,	//(98)       //117   Mbps
407 	RATEID_VHT_MCS2_2SS_BW80,	//(99)       //175   Mbps
408 	RATEID_VHT_MCS3_2SS_BW80,	//(100)      //234   Mbps
409 	RATEID_VHT_MCS4_2SS_BW80,	//(101)      //351   Mbps
410 	RATEID_VHT_MCS5_2SS_BW80,	//(102)      //468   Mbps
411 	RATEID_VHT_MCS6_2SS_BW80,	//(103)      //526.5 Mbps
412 	RATEID_VHT_MCS7_2SS_BW80,	//(104)      //585   Mbps
413 	RATEID_VHT_MCS8_2SS_BW80,	//(105)      //702   Mbps
414 	RATEID_VHT_MCS9_2SS_BW80,	//(106)      //780   Mbps
415 #endif
416 #endif				//DOT11AC
417 
418 	RATEID_AUTO = 0xFE,
419 	RATEID_UNKNOWN = 0xFF
420 };
421 
422 //MAX RATE DEFINITION
423 #define RATEID_DSSSMAX      RATEID_DQPSK2Mbps
424 
425 #define RATEID_CCKMAX       RATEID_CCK11Mbps
426 
427 #define RATEID_OFDMMAX      RATEID_OFDM54Mbps
428 #define RATEID_OFDMMIN      RATEID_OFDM6Mbps
429 
430 #define RATEID_HTBW20MIN    RATEID_MCS0_6d5Mbps
431 #ifdef STREAM_2x2
432 #define RATEID_HTBW20MAX    RATEID_MCS15_130Mbps
433 #else
434 #define RATEID_HTBW20MAX    RATEID_MCS7_65Mbps
435 #endif
436 
437 #define RATEID_HTBW40MIN    RATEID_MCS32BW40_6Mbps
438 #ifdef STREAM_2x2
439 #define RATEID_HTBW40MAX    RATEID_MCS15BW40_270Mbps
440 #else
441 #define RATEID_HTBW40MAX    RATEID_MCS7BW40_135Mbps
442 #endif
443 
444 #define RATEID_HTMIN        RATEID_HTBW20MIN
445 #define RATEID_HTMAX        RATEID_HTBW40MAX
446 
447 #if defined(DOT11AC)
448 #define RATEID_VHTBW20MIN  RATEID_VHT_MCS0_1SS_BW20
449 #define RATEID_VHTBW40MIN  RATEID_VHT_MCS0_1SS_BW40
450 #define RATEID_VHTBW80MIN  RATEID_VHT_MCS0_1SS_BW80
451 
452 #define RATEID_VHTMIN      RATEID_VHT_MCS0_1SS_BW20
453 #ifdef STREAM_2x2
454 #define RATEID_VHTBW20MAX  RATEID_VHT_MCS9_2SS_BW20
455 #define RATEID_VHTBW40MAX  RATEID_VHT_MCS9_2SS_BW40
456 #define RATEID_VHTMAX      RATEID_VHT_MCS9_2SS_BW80
457 #else
458 #define RATEID_VHTBW20MAX  RATEID_VHT_MCS9_1SS_BW20
459 #define RATEID_VHTBW40MAX  RATEID_VHT_MCS9_1SS_BW40
460 #define RATEID_VHTMAX      RATEID_VHT_MCS9_1SS_BW80
461 #endif
462 #define RATEID_VHTBW80MAX  RATEID_VHTMAX
463 
464 /* 160 is not supported yet; define them correctly when supported */
465 #define RATEID_VHTBW160MIN 0xFF
466 #define RATEID_VHTBW160MAX 0xFF
467 
468 #endif //DOT11AC
469 
470 #define MLME_SUCCESS     0
471 #define MLME_INPROCESS   1
472 #define MLME_FAILURE    -1
473 
474 #define RATEID_9_6_MASK     (((1<<(1+RATEID_OFDM9Mbps-RATEID_OFDM6Mbps))-1) \
475                                                     << RATEID_OFDM6Mbps)
476 
477 #define RATEID_12_6_MASK   (((1<<(1+RATEID_OFDM12Mbps-RATEID_OFDM6Mbps))-1) \
478                                                     << RATEID_OFDM6Mbps)
479 
480 #define RATEID_18_6_MASK   (((1<<(1+RATEID_OFDM18Mbps-RATEID_OFDM6Mbps))-1) \
481                                                     << RATEID_OFDM6Mbps)
482 
483 #define RATEID_24_6_MASK   (((1<<(1+RATEID_OFDM24Mbps-RATEID_OFDM6Mbps))-1) \
484                                                     << RATEID_OFDM6Mbps)
485 
486 #define RATEID_36_6_MASK   (((1<<(1+RATEID_OFDM36Mbps-RATEID_OFDM6Mbps))-1) \
487                                                     << RATEID_OFDM6Mbps)
488 
489 #define RATEID_48_6_MASK   (((1<<(1+RATEID_OFDM48Mbps-RATEID_OFDM6Mbps))-1) \
490                                                     << RATEID_OFDM6Mbps)
491 
492 #define RATEID_54_6_MASK   (((1<<(1+RATEID_OFDM54Mbps-RATEID_OFDM6Mbps))-1) \
493                                                     << RATEID_OFDM6Mbps)
494 
495 #define RATEID_CCK_MASK      ( (1 << RATEID_DBPSK1Mbps)  \
496                              | (1 << RATEID_DQPSK2Mbps)  \
497                              | (1 << RATEID_CCK5_5Mbps)  \
498                              | (1 << RATEID_CCK11Mbps) )
499 
500 #define HT_RATE_MASK_MCS0_7  ( (1ULL << RATEID_MCS0_6d5Mbps)  \
501                              | (1ULL << RATEID_MCS1_13Mbps)   \
502                              | (1ULL << RATEID_MCS2_19d5Mbps) \
503                              | (1ULL << RATEID_MCS3_26Mbps)   \
504                              | (1ULL << RATEID_MCS4_39Mbps)   \
505                              | (1ULL << RATEID_MCS5_52Mbps)   \
506                              | (1ULL << RATEID_MCS6_58d5Mbps) \
507                              | (1ULL << RATEID_MCS7_65Mbps) )
508 #ifdef STREAM_2x2
509 #define HT_RATE_MASK_MCS8_15 ( (1ULL << RATEID_MCS8_13Mbps) \
510                              | (1ULL << RATEID_MCS9_26Mbps) \
511                              | (1ULL << RATEID_MCS10_39Mbps) \
512                              | (1ULL << RATEID_MCS11_52Mbps) \
513                              | (1ULL << RATEID_MCS12_78Mbps) \
514                              | (1ULL << RATEID_MCS13_104Mbps) \
515                              | (1ULL << RATEID_MCS14_117Mbps) \
516                              | (1ULL << RATEID_MCS15_130Mbps) )
517 
518 #else //1x1
519 #define HT_RATE_MASK_MCS8_15  (0)
520 #endif
521 
522 #define HT_RATE_MASK_MCS0_7_32_40MHZ  ( (1ULL << RATEID_MCS32BW40_6Mbps)    \
523                                       | (1ULL << RATEID_MCS0BW40_13d5Mbps)  \
524                                       | (1ULL << RATEID_MCS1BW40_27Mbps)    \
525                                       | (1ULL << RATEID_MCS2BW40_40d5Mbps)  \
526                                       | (1ULL << RATEID_MCS3BW40_54Mbps)    \
527                                       | (1ULL << RATEID_MCS4BW40_81Mbps)    \
528                                       | (1ULL << RATEID_MCS5BW40_108Mbps)   \
529                                       | (1ULL << RATEID_MCS6BW40_121d5Mbps) \
530                                       | (1ULL << RATEID_MCS7BW40_135Mbps) )
531 
532 #ifdef STREAM_2x2
533 #define HT_RATE_MASK_MCS8_15_40MHZ    ( (1ULL << RATEID_MCS8BW40_27Mbps)    \
534                                       | (1ULL << RATEID_MCS9BW40_54Mbps)    \
535                                       | (1ULL << RATEID_MCS10BW40_81Mbps)   \
536                                       | (1ULL << RATEID_MCS11BW40_108Mbps)  \
537                                       | (1ULL << RATEID_MCS12BW40_162Mbps)  \
538                                       | (1ULL << RATEID_MCS13BW40_216Mbps)  \
539                                       | (1ULL << RATEID_MCS14BW40_243Mbps)  \
540                                       | (1ULL << RATEID_MCS15BW40_270Mbps) )
541 
542 #else //1x1
543 #define HT_RATE_MASK_MCS8_15_40MHZ    (0)
544 #endif
545 
546 #define RATEID_MCS_MASK      ( HT_RATE_MASK_MCS0_7           \
547                              | HT_RATE_MASK_MCS8_15          \
548                              | HT_RATE_MASK_MCS0_7_32_40MHZ  \
549                              | HT_RATE_MASK_MCS8_15_40MHZ )
550 
551 #define RATEID_MCSBW40_MASK  ( HT_RATE_MASK_MCS0_7_32_40MHZ  \
552                              | HT_RATE_MASK_MCS8_15_40MHZ )
553 
554 #define RATEID_MCS1x1_MASK   ( HT_RATE_MASK_MCS0_7 \
555                              | HT_RATE_MASK_MCS0_7_32_40MHZ)
556 
557 #define RATEID_MCS2x2_MASK   ( HT_RATE_MASK_MCS8_15 \
558                              | HT_RATE_MASK_MCS8_15_40MHZ )
559 
560 #define IS_DSSS_FRAME(rateid)   (rateid < RATEID_OFDM6Mbps)
561 #define IS_OFDM_FRAME(rateid)   (rateid >= RATEID_OFDM6Mbps)
562 
563 typedef unsigned char MRVL_TRPCID;
564 typedef signed long PWR_in_dBm;
565 
566 #if 0
567 #define ASSERT_RATEID(rateid)   {while(rateid > RATEID_MAX);}
568 #define ASSERT_NonZero(x)       {while(x == 0);}
569 #else
570 #define ASSERT_RATEID(rateid)
571 #define ASSERT_NonZero(x)
572 #endif
573 
574 #endif /* _WLTYPES_H_ */
575