/** @file wltypes.h
|
*
|
* @brief Basic types common to all the modules must be defined in this file.
|
*
|
* Copyright (C) 2014-2017, Marvell International Ltd.
|
*
|
* This software file (the "File") is distributed by Marvell International
|
* Ltd. under the terms of the GNU General Public License Version 2, June 1991
|
* (the "License"). You may use, redistribute and/or modify this File in
|
* accordance with the terms and conditions of the License, a copy of which
|
* is available by writing to the Free Software Foundation, Inc.,
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the
|
* worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
*
|
* THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
|
* IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
|
* ARE EXPRESSLY DISCLAIMED. The License provides additional details about
|
* this warranty disclaimer.
|
*/
|
|
/******************************************************
|
Change log:
|
03/07/2014: Initial version
|
******************************************************/
|
#if !defined(WLTYPES_H__)
|
#define WLTYPES_H__
|
/*
|
* Copyright 2003, Marvell Semiconductor, Inc.
|
* This code contains confidential information of Marvell Semiconductor, Inc.
|
* No rights are granted herein under any patent, mask work right or copyright
|
* of Marvell or any third party.
|
* Marvell reserves the right at its sole discretion to request that this code
|
* be immediately returned to Marvell. This code is provided "as is".
|
* Marvell makes no warranties, express, implied or otherwise, regarding its
|
* accuracy, completeness or performance.
|
*/
|
|
/*!
|
* \file wltypes.h
|
* \brief Basic types common to all the modules must be defined in this file.
|
*
|
*/
|
/** @defgroup DataTypes Data Types used in SDK
|
* Functions exported by wltypes.h
|
* @{
|
*/
|
/*! Create type names for native C types for portability reasons */
|
typedef unsigned long long UINT64; //!< 64 bit unsigned
|
typedef signed long long SINT64; //!< 64 bit signed
|
typedef unsigned int UINT32; //!< 32 bit unsigned
|
typedef signed int SINT32; //!< 32 bit signed
|
typedef unsigned short UINT16; //!< 16 bit unsigned
|
typedef signed short SINT16; //!< 16 bit signed
|
typedef unsigned char UINT8; //!< 8 bit unsigned
|
typedef signed char SINT8; //!< 8 bit signed
|
|
typedef unsigned long long uint64; //!< 64 bit unsigned
|
typedef signed long long sint64; //!< 64 bit signed
|
typedef unsigned int uint32; //!< 32 bit unsigned
|
|
typedef signed int sint32; //!< 32 bit signed
|
typedef unsigned short uint16; //!< 16 bit unsigned
|
typedef signed short sint16; //!< 16 bit signed
|
typedef unsigned char uint8; //!< 8 bit unsigned
|
typedef signed char sint8; //!< 8 bit signed
|
typedef signed char int8; //!< 8 bit signed
|
typedef int BOOLEAN; //!< boolean
|
typedef int Boolean; //!< boolean
|
typedef signed int BIT_FIELD; //!< bit field
|
|
typedef unsigned int UINT; //!< unsigned integer
|
|
//From dwc_os.h
|
#define size_t uint32
|
|
extern SINT8 SINT8_minus_SINT8(SINT8 x, SINT8 y);
|
extern SINT8 SINT8_plus_SINT8(SINT8 x, SINT8 y);
|
|
#ifdef __GNUC__
|
/** Structure packing begins */
|
#define MLAN_PACK_START
|
/** Structure packeing end */
|
#define MLAN_PACK_END __attribute__((packed))
|
#else /* !__GNUC__ */
|
#ifdef PRAGMA_PACK
|
/** Structure packing begins */
|
#define MLAN_PACK_START
|
/** Structure packeing end */
|
#define MLAN_PACK_END
|
#else /* !PRAGMA_PACK */
|
/** Structure packing begins */
|
#define MLAN_PACK_START __packed
|
/** Structure packing end */
|
#define MLAN_PACK_END
|
#endif /* PRAGMA_PACK */
|
#endif /* __GNUC__ */
|
|
#ifndef INLINE
|
#ifdef __GNUC__
|
/** inline directive */
|
#define INLINE inline
|
#else
|
/** inline directive */
|
#define INLINE __inline
|
#endif
|
#endif
|
|
typedef struct _REFCLK_VAL8_REG7F {
|
UINT8 refClk;
|
UINT8 val;
|
} REFCLK_VAL8_REG7F;
|
|
#define REG8_TERMINATOR (0xFF)
|
typedef struct _ADDR8_VAL8_REG {
|
UINT8 reg;
|
UINT8 val;
|
} ADDR8_VAL8_REG;
|
|
#define REG16_TERMINATOR (0xFFFF)
|
typedef struct _ADDR16_VAL8_REG {
|
UINT16 reg;
|
UINT8 val;
|
} ADDR16_VAL8_REG;
|
|
#define REG32_TERMINATOR (0xFFFFFFFF)
|
typedef struct _ADDR32_VAL32_REG {
|
UINT32 reg;
|
UINT32 val;
|
} ADDR32_VAL32_REG;
|
|
#if defined(BBP_9BIT_ADDR)
|
#define BBP_TERMINATOR REG16_TERMINATOR
|
#else
|
#define BBP_TERMINATOR REG8_TERMINATOR
|
#endif
|
|
/*! Generic status code */
|
#define WL_STATUS_OK 0 //!< ok
|
#define WL_STATUS_ERR -1 //!< error
|
#define WL_STATUS_BAD_PARAM -2 //!< bad parameter
|
|
/* Some BT files require access to wltypes.h file which result in duplicate definition of FALSE & TRUE
|
* undef TRUE and FALSE to avoid these warnings */
|
#undef FALSE
|
#undef TRUE
|
#undef INLINE
|
|
/*! BOOLEAN values */
|
#define FALSE 0 //!< False
|
#define TRUE 1 //!< True
|
|
/**
|
*** @brief Enumeration of Status type
|
**/
|
typedef enum {
|
SUCCESS, //!< 0
|
FAIL //!< 1
|
} Status_e;
|
|
typedef Status_e WL_STATUS;
|
|
/*! Value for NULL pointer */
|
#undef NULL
|
#define NULL ((void *)0) //!< null
|
#if 0
|
#ifndef LINT
|
#define MLAN_PACK_START __packed //!< packed structure
|
#define MLAN_PACK_END //!< end of packed structure
|
|
#define ALIGNED_START(x) __align(x) //!< allignment macro
|
#define ALIGNED_END(x) //!< allignment end
|
#else
|
#define MLAN_PACK_START
|
#define MLAN_PACK_END
|
|
#define ALIGNED_START(x)
|
#define ALIGNED_END(x)
|
#endif
|
#endif
|
#define INLINE
|
|
#define BIT0 (0x00000001 << 0)
|
#define BIT1 (0x00000001 << 1)
|
#define BIT2 (0x00000001 << 2)
|
#define BIT3 (0x00000001 << 3)
|
#define BIT4 (0x00000001 << 4)
|
#define BIT5 (0x00000001 << 5)
|
#define BIT6 (0x00000001 << 6)
|
#define BIT7 (0x00000001 << 7)
|
#define BIT8 (0x00000001 << 8)
|
#define BIT9 (0x00000001 << 9)
|
#define BIT10 (0x00000001 << 10)
|
#define BIT11 (0x00000001 << 11)
|
#define BIT12 (0x00000001 << 12)
|
#define BIT13 (0x00000001 << 13)
|
#define BIT14 (0x00000001 << 14)
|
#define BIT15 (0x00000001 << 15)
|
#define BIT16 (0x00000001 << 16)
|
#define BIT17 (0x00000001 << 17)
|
#define BIT18 (0x00000001 << 18)
|
#define BIT19 (0x00000001 << 19)
|
#define BIT20 (0x00000001 << 20)
|
#define BIT21 (0x00000001 << 21)
|
#define BIT22 (0x00000001 << 22)
|
#define BIT23 (0x00000001 << 23)
|
#define BIT24 (0x00000001 << 24)
|
#define BIT25 (0x00000001 << 25)
|
#define BIT26 (0x00000001 << 26)
|
#define BIT27 (0x00000001 << 27)
|
#define BIT28 (0x00000001 << 28)
|
#define BIT29 (0x00000001 << 29)
|
#define BIT30 (0x00000001 << 30)
|
#define BIT31 (0x00000001UL << 31)
|
|
// VOLT_RESOLUTION_50mV
|
#define VOLT_0_5 10 // 10x50mV = 5x100mV
|
#define VOLT_0_6 12 // 12x50mV = 6x100mV
|
#define VOLT_0_7 14 // 14x50mV = 7x100mV
|
#define VOLT_0_7_5 15 // 15x50mV = 7.5x100mV
|
#define VOLT_0_8 16 // 16x50mV = 8x100mV
|
#define VOLT_0_8_5 17 // 17x50mV = 8.5x100mV
|
#define VOLT_0_9 18 // 18x50mV = 9x100mV
|
#define VOLT_1_0 20 // 20x50mV = 10x100mV
|
#define VOLT_1_0_5 21 // 21x50mV
|
#define VOLT_1_1 22 // 22x50mV = 11x100mV
|
#define VOLT_1_1_5 23 // 23x50mV
|
#define VOLT_1_2 24 // 24x50mV = 12x100mV
|
#define VOLT_1_2_5 25 // 25x50mV
|
#define VOLT_1_3 26 // 26x50mV = 13x100mV
|
#define VOLT_1_4 28 // 28x50mV = 14x100mV
|
#define VOLT_1_5 30 // 30x50mV = 15x100mV
|
#define VOLT_1_5_5 31 // 31x50mV = 15.5x100mV
|
#define VOLT_1_6 32 // 32x50mV = 16x100mV
|
#define VOLT_1_6_5 33 // 33x50mV = 16.5x100mV
|
#define VOLT_1_7 34 // 34x50mV = 17x100mV
|
#define VOLT_1_7_5 35 // 35x50mV = 17.5x100mV
|
#define VOLT_1_8 36 // 36x50mV = 18x100mV
|
#define VOLT_1_8_5 37 // 37x50mV = 18.5x100mV
|
#define VOLT_1_9 38 // 38x50mV = 19x100mV
|
#define VOLT_1_9_5 39 // 39x50mV = 19.5x100mV
|
#define VOLT_2_0 40 // 40x50mV = 20x100mV
|
#define VOLT_2_1 42 // 42x50mV = 21x100mV
|
#define VOLT_2_2 44 // 44x50mV = 22x100mV
|
#define VOLT_2_3 46 // 46x50mV = 23x100mV
|
#define VOLT_2_4 48 // 48x50mV = 24x100mV
|
#define VOLT_2_5 50 // 50x50mV = 25x100mV
|
#define VOLT_2_6 52 // 52x50mV = 26x100mV
|
#define VOLT_2_7 54 // 54x50mV = 27x100mV
|
#define VOLT_2_8 56 // 56x50mV = 28x100mV
|
#define VOLT_2_9 58 // 58x50mV = 29x100mV
|
#define VOLT_3_0 60 // 60x50mV = 30x100mV
|
#define VOLT_3_1 62 // 62x50mV = 31x100mV
|
#define VOLT_3_2 64 // 64x50mV = 32x100mV
|
#define VOLT_3_3 66 // 66x50mV = 33x100mV
|
#define VOLT_3_4 68 // 68x50mV = 34x100mV
|
#define VOLT_3_5 70 // 70x50mV = 35x100mV
|
#define VOLT_3_6 72 // 72x50mV = 36x100mV
|
|
typedef enum {
|
OFF = 0,
|
ON = 1,
|
UNKOWN = 0xFF
|
} ON_OFF_UNKOWN_e;
|
|
typedef unsigned char MRVL_RATEID;
|
|
#if defined(DOT11AC) && defined(STREAM_2x2)
|
typedef unsigned long long MRVL_RATEID_BITMAP_UNIT;
|
typedef struct {
|
unsigned long long bitmap[2];
|
} MRVL_RATEID_BITMAP;
|
#define MRVL_RATEID_BIT(rateId) (1ULL << (rateId))
|
#else
|
#if defined(STREAM_2x2) || defined(DOT11AC)
|
typedef unsigned long long MRVL_RATEID_BITMAP_UNIT;
|
typedef unsigned long long MRVL_RATEID_BITMAP;
|
#define MRVL_RATEID_BIT(rateId) (1ULL << (rateId))
|
#else
|
typedef unsigned int MRVL_RATEID_BITMAP_UNIT;
|
typedef unsigned int MRVL_RATEID_BITMAP;
|
#define MRVL_RATEID_BIT(rateId) (1UL << (rateId))
|
#endif
|
#endif
|
|
#define NUM_RATE_BITMAP_UNIT (sizeof(MRVL_RATEID_BITMAP_UNIT)*8)
|
|
enum {
|
RATEID_DBPSK1Mbps, //(0)
|
RATEID_DQPSK2Mbps, //(1)
|
RATEID_CCK5_5Mbps, //(2)
|
RATEID_CCK11Mbps, //(3)
|
RATEID_CCK22Mbps, //(4)
|
RATEID_OFDM6Mbps, //(5)
|
RATEID_OFDM9Mbps, //(6)
|
RATEID_OFDM12Mbps, //(7)
|
RATEID_OFDM18Mbps, //(8)
|
RATEID_OFDM24Mbps, //(9)
|
RATEID_OFDM36Mbps, //(10)
|
RATEID_OFDM48Mbps, //(11)
|
RATEID_OFDM54Mbps, //(12)
|
RATEID_OFDM72Mbps, //(13)
|
|
RATEID_MCS0_6d5Mbps, //(14) //RATEID_OFDM72Mbps + 1
|
RATEID_MCS1_13Mbps, //(15)
|
RATEID_MCS2_19d5Mbps, //(16)
|
RATEID_MCS3_26Mbps, //(17)
|
RATEID_MCS4_39Mbps, //(18)
|
RATEID_MCS5_52Mbps, //(19)
|
RATEID_MCS6_58d5Mbps, //(20)
|
RATEID_MCS7_65Mbps, //(21)
|
|
#ifdef STREAM_2x2
|
RATEID_MCS8_13Mbps, //(22)
|
RATEID_MCS9_26Mbps, //(23)
|
RATEID_MCS10_39Mbps, //(24)
|
RATEID_MCS11_52Mbps, //(25)
|
RATEID_MCS12_78Mbps, //(26)
|
RATEID_MCS13_104Mbps, //(27)
|
RATEID_MCS14_117Mbps, //(28)
|
RATEID_MCS15_130Mbps, //(29)
|
#endif
|
|
RATEID_MCS32BW40_6Mbps, //(30), (22)
|
RATEID_MCS0BW40_13d5Mbps, //(31), (23)
|
RATEID_MCS1BW40_27Mbps, //(32), (24)
|
RATEID_MCS2BW40_40d5Mbps, //(33), (25)
|
RATEID_MCS3BW40_54Mbps, //(34), (26)
|
RATEID_MCS4BW40_81Mbps, //(35), (27)
|
RATEID_MCS5BW40_108Mbps, //(36), (28)
|
RATEID_MCS6BW40_121d5Mbps, //(37), (29)
|
RATEID_MCS7BW40_135Mbps, //(38), (30)
|
|
#ifdef STREAM_2x2
|
RATEID_MCS8BW40_27Mbps, //(39)
|
RATEID_MCS9BW40_54Mbps, //(40)
|
RATEID_MCS10BW40_81Mbps, //(41)
|
RATEID_MCS11BW40_108Mbps, //(42)
|
RATEID_MCS12BW40_162Mbps, //(43)
|
RATEID_MCS13BW40_216Mbps, //(44)
|
RATEID_MCS14BW40_243Mbps, //(45)
|
RATEID_MCS15BW40_270Mbps, //(46)
|
#endif
|
|
#if defined(DOT11AC)
|
RATEID_VHT_MCS0_1SS_BW20, //(47), (31) //6.5 Mbps
|
RATEID_VHT_MCS1_1SS_BW20, //(48), (32) //13 Mbps
|
RATEID_VHT_MCS2_1SS_BW20, //(49), (33) //19.5 Mbps
|
RATEID_VHT_MCS3_1SS_BW20, //(50), (34) //26 Mbps
|
RATEID_VHT_MCS4_1SS_BW20, //(51), (35) //39 Mbps
|
RATEID_VHT_MCS5_1SS_BW20, //(52), (36) //52 Mbps
|
RATEID_VHT_MCS6_1SS_BW20, //(53), (37) //58.5 Mbps
|
RATEID_VHT_MCS7_1SS_BW20, //(54), (38) //65 Mbps
|
RATEID_VHT_MCS8_1SS_BW20, //(55), (39) //78 Mbps
|
RATEID_VHT_MCS9_1SS_BW20, //(56), (40) //86.7 Mbps(INVALID)
|
|
#ifdef STREAM_2x2
|
RATEID_VHT_MCS0_2SS_BW20, //(57) //13 Mbps
|
RATEID_VHT_MCS1_2SS_BW20, //(58) //26 Mbps
|
RATEID_VHT_MCS2_2SS_BW20, //(59) //39 Mbps
|
RATEID_VHT_MCS3_2SS_BW20, //(60) //52 Mbps
|
RATEID_VHT_MCS4_2SS_BW20, //(61) //78 Mbps
|
RATEID_VHT_MCS5_2SS_BW20, //(62) //104 Mbps
|
RATEID_VHT_MCS6_2SS_BW20, //(63) //117 Mbps
|
RATEID_VHT_MCS7_2SS_BW20, //(64) //130 Mbps
|
RATEID_VHT_MCS8_2SS_BW20, //(65) //156 Mbps
|
RATEID_VHT_MCS9_2SS_BW20, //(66) //173.3 Mbps(INVALID)
|
#endif
|
|
RATEID_VHT_MCS0_1SS_BW40, //(67), (41) //13.5 Mbps
|
RATEID_VHT_MCS1_1SS_BW40, //(68), (42) //27 Mbps
|
RATEID_VHT_MCS2_1SS_BW40, //(69), (43) //40.5 Mbps
|
RATEID_VHT_MCS3_1SS_BW40, //(70), (44) //54 Mbps
|
RATEID_VHT_MCS4_1SS_BW40, //(71), (45) //81 Mbps
|
RATEID_VHT_MCS5_1SS_BW40, //(72), (46) //108 Mbps
|
RATEID_VHT_MCS6_1SS_BW40, //(73), (47) //121.5 Mbps
|
RATEID_VHT_MCS7_1SS_BW40, //(74), (48) //135 Mbps
|
RATEID_VHT_MCS8_1SS_BW40, //(75), (49) //162 Mbps
|
RATEID_VHT_MCS9_1SS_BW40, //(76), (50) //180 Mbps
|
|
#ifdef STREAM_2x2
|
RATEID_VHT_MCS0_2SS_BW40, //(77) //27 Mbps
|
RATEID_VHT_MCS1_2SS_BW40, //(78) //54 Mbps
|
RATEID_VHT_MCS2_2SS_BW40, //(79) //81 Mbps
|
RATEID_VHT_MCS3_2SS_BW40, //(80) //108 Mbps
|
RATEID_VHT_MCS4_2SS_BW40, //(81) //162 Mbps
|
RATEID_VHT_MCS5_2SS_BW40, //(82) //216 Mbps
|
RATEID_VHT_MCS6_2SS_BW40, //(83) //243 Mbps
|
RATEID_VHT_MCS7_2SS_BW40, //(84) //270 Mbps
|
RATEID_VHT_MCS8_2SS_BW40, //(85) //324 Mbps
|
RATEID_VHT_MCS9_2SS_BW40, //(86) //360 Mbps
|
#endif
|
|
RATEID_VHT_MCS0_1SS_BW80, //(87), (51) //29.3 Mbps
|
RATEID_VHT_MCS1_1SS_BW80, //(88), (52) //58.5 Mbps
|
RATEID_VHT_MCS2_1SS_BW80, //(89), (53) //87.8 Mbps
|
RATEID_VHT_MCS3_1SS_BW80, //(90), (54) //117 Mbps
|
RATEID_VHT_MCS4_1SS_BW80, //(91), (55) //175.5 Mbps
|
RATEID_VHT_MCS5_1SS_BW80, //(92), (56) //234 Mbps
|
RATEID_VHT_MCS6_1SS_BW80, //(93), (57) //263.3 Mbps
|
RATEID_VHT_MCS7_1SS_BW80, //(94), (58) //292.5 Mbps
|
RATEID_VHT_MCS8_1SS_BW80, //(95), (59) //351 Mbps
|
RATEID_VHT_MCS9_1SS_BW80, //(96), (60) //390 Mbps
|
|
#ifdef STREAM_2x2
|
RATEID_VHT_MCS0_2SS_BW80, //(97) //58.5 Mbps
|
RATEID_VHT_MCS1_2SS_BW80, //(98) //117 Mbps
|
RATEID_VHT_MCS2_2SS_BW80, //(99) //175 Mbps
|
RATEID_VHT_MCS3_2SS_BW80, //(100) //234 Mbps
|
RATEID_VHT_MCS4_2SS_BW80, //(101) //351 Mbps
|
RATEID_VHT_MCS5_2SS_BW80, //(102) //468 Mbps
|
RATEID_VHT_MCS6_2SS_BW80, //(103) //526.5 Mbps
|
RATEID_VHT_MCS7_2SS_BW80, //(104) //585 Mbps
|
RATEID_VHT_MCS8_2SS_BW80, //(105) //702 Mbps
|
RATEID_VHT_MCS9_2SS_BW80, //(106) //780 Mbps
|
#endif
|
#endif //DOT11AC
|
|
RATEID_AUTO = 0xFE,
|
RATEID_UNKNOWN = 0xFF
|
};
|
|
//MAX RATE DEFINITION
|
#define RATEID_DSSSMAX RATEID_DQPSK2Mbps
|
|
#define RATEID_CCKMAX RATEID_CCK11Mbps
|
|
#define RATEID_OFDMMAX RATEID_OFDM54Mbps
|
#define RATEID_OFDMMIN RATEID_OFDM6Mbps
|
|
#define RATEID_HTBW20MIN RATEID_MCS0_6d5Mbps
|
#ifdef STREAM_2x2
|
#define RATEID_HTBW20MAX RATEID_MCS15_130Mbps
|
#else
|
#define RATEID_HTBW20MAX RATEID_MCS7_65Mbps
|
#endif
|
|
#define RATEID_HTBW40MIN RATEID_MCS32BW40_6Mbps
|
#ifdef STREAM_2x2
|
#define RATEID_HTBW40MAX RATEID_MCS15BW40_270Mbps
|
#else
|
#define RATEID_HTBW40MAX RATEID_MCS7BW40_135Mbps
|
#endif
|
|
#define RATEID_HTMIN RATEID_HTBW20MIN
|
#define RATEID_HTMAX RATEID_HTBW40MAX
|
|
#if defined(DOT11AC)
|
#define RATEID_VHTBW20MIN RATEID_VHT_MCS0_1SS_BW20
|
#define RATEID_VHTBW40MIN RATEID_VHT_MCS0_1SS_BW40
|
#define RATEID_VHTBW80MIN RATEID_VHT_MCS0_1SS_BW80
|
|
#define RATEID_VHTMIN RATEID_VHT_MCS0_1SS_BW20
|
#ifdef STREAM_2x2
|
#define RATEID_VHTBW20MAX RATEID_VHT_MCS9_2SS_BW20
|
#define RATEID_VHTBW40MAX RATEID_VHT_MCS9_2SS_BW40
|
#define RATEID_VHTMAX RATEID_VHT_MCS9_2SS_BW80
|
#else
|
#define RATEID_VHTBW20MAX RATEID_VHT_MCS9_1SS_BW20
|
#define RATEID_VHTBW40MAX RATEID_VHT_MCS9_1SS_BW40
|
#define RATEID_VHTMAX RATEID_VHT_MCS9_1SS_BW80
|
#endif
|
#define RATEID_VHTBW80MAX RATEID_VHTMAX
|
|
/* 160 is not supported yet; define them correctly when supported */
|
#define RATEID_VHTBW160MIN 0xFF
|
#define RATEID_VHTBW160MAX 0xFF
|
|
#endif //DOT11AC
|
|
#define MLME_SUCCESS 0
|
#define MLME_INPROCESS 1
|
#define MLME_FAILURE -1
|
|
#define RATEID_9_6_MASK (((1<<(1+RATEID_OFDM9Mbps-RATEID_OFDM6Mbps))-1) \
|
<< RATEID_OFDM6Mbps)
|
|
#define RATEID_12_6_MASK (((1<<(1+RATEID_OFDM12Mbps-RATEID_OFDM6Mbps))-1) \
|
<< RATEID_OFDM6Mbps)
|
|
#define RATEID_18_6_MASK (((1<<(1+RATEID_OFDM18Mbps-RATEID_OFDM6Mbps))-1) \
|
<< RATEID_OFDM6Mbps)
|
|
#define RATEID_24_6_MASK (((1<<(1+RATEID_OFDM24Mbps-RATEID_OFDM6Mbps))-1) \
|
<< RATEID_OFDM6Mbps)
|
|
#define RATEID_36_6_MASK (((1<<(1+RATEID_OFDM36Mbps-RATEID_OFDM6Mbps))-1) \
|
<< RATEID_OFDM6Mbps)
|
|
#define RATEID_48_6_MASK (((1<<(1+RATEID_OFDM48Mbps-RATEID_OFDM6Mbps))-1) \
|
<< RATEID_OFDM6Mbps)
|
|
#define RATEID_54_6_MASK (((1<<(1+RATEID_OFDM54Mbps-RATEID_OFDM6Mbps))-1) \
|
<< RATEID_OFDM6Mbps)
|
|
#define RATEID_CCK_MASK ( (1 << RATEID_DBPSK1Mbps) \
|
| (1 << RATEID_DQPSK2Mbps) \
|
| (1 << RATEID_CCK5_5Mbps) \
|
| (1 << RATEID_CCK11Mbps) )
|
|
#define HT_RATE_MASK_MCS0_7 ( (1ULL << RATEID_MCS0_6d5Mbps) \
|
| (1ULL << RATEID_MCS1_13Mbps) \
|
| (1ULL << RATEID_MCS2_19d5Mbps) \
|
| (1ULL << RATEID_MCS3_26Mbps) \
|
| (1ULL << RATEID_MCS4_39Mbps) \
|
| (1ULL << RATEID_MCS5_52Mbps) \
|
| (1ULL << RATEID_MCS6_58d5Mbps) \
|
| (1ULL << RATEID_MCS7_65Mbps) )
|
#ifdef STREAM_2x2
|
#define HT_RATE_MASK_MCS8_15 ( (1ULL << RATEID_MCS8_13Mbps) \
|
| (1ULL << RATEID_MCS9_26Mbps) \
|
| (1ULL << RATEID_MCS10_39Mbps) \
|
| (1ULL << RATEID_MCS11_52Mbps) \
|
| (1ULL << RATEID_MCS12_78Mbps) \
|
| (1ULL << RATEID_MCS13_104Mbps) \
|
| (1ULL << RATEID_MCS14_117Mbps) \
|
| (1ULL << RATEID_MCS15_130Mbps) )
|
|
#else //1x1
|
#define HT_RATE_MASK_MCS8_15 (0)
|
#endif
|
|
#define HT_RATE_MASK_MCS0_7_32_40MHZ ( (1ULL << RATEID_MCS32BW40_6Mbps) \
|
| (1ULL << RATEID_MCS0BW40_13d5Mbps) \
|
| (1ULL << RATEID_MCS1BW40_27Mbps) \
|
| (1ULL << RATEID_MCS2BW40_40d5Mbps) \
|
| (1ULL << RATEID_MCS3BW40_54Mbps) \
|
| (1ULL << RATEID_MCS4BW40_81Mbps) \
|
| (1ULL << RATEID_MCS5BW40_108Mbps) \
|
| (1ULL << RATEID_MCS6BW40_121d5Mbps) \
|
| (1ULL << RATEID_MCS7BW40_135Mbps) )
|
|
#ifdef STREAM_2x2
|
#define HT_RATE_MASK_MCS8_15_40MHZ ( (1ULL << RATEID_MCS8BW40_27Mbps) \
|
| (1ULL << RATEID_MCS9BW40_54Mbps) \
|
| (1ULL << RATEID_MCS10BW40_81Mbps) \
|
| (1ULL << RATEID_MCS11BW40_108Mbps) \
|
| (1ULL << RATEID_MCS12BW40_162Mbps) \
|
| (1ULL << RATEID_MCS13BW40_216Mbps) \
|
| (1ULL << RATEID_MCS14BW40_243Mbps) \
|
| (1ULL << RATEID_MCS15BW40_270Mbps) )
|
|
#else //1x1
|
#define HT_RATE_MASK_MCS8_15_40MHZ (0)
|
#endif
|
|
#define RATEID_MCS_MASK ( HT_RATE_MASK_MCS0_7 \
|
| HT_RATE_MASK_MCS8_15 \
|
| HT_RATE_MASK_MCS0_7_32_40MHZ \
|
| HT_RATE_MASK_MCS8_15_40MHZ )
|
|
#define RATEID_MCSBW40_MASK ( HT_RATE_MASK_MCS0_7_32_40MHZ \
|
| HT_RATE_MASK_MCS8_15_40MHZ )
|
|
#define RATEID_MCS1x1_MASK ( HT_RATE_MASK_MCS0_7 \
|
| HT_RATE_MASK_MCS0_7_32_40MHZ)
|
|
#define RATEID_MCS2x2_MASK ( HT_RATE_MASK_MCS8_15 \
|
| HT_RATE_MASK_MCS8_15_40MHZ )
|
|
#define IS_DSSS_FRAME(rateid) (rateid < RATEID_OFDM6Mbps)
|
#define IS_OFDM_FRAME(rateid) (rateid >= RATEID_OFDM6Mbps)
|
|
typedef unsigned char MRVL_TRPCID;
|
typedef signed long PWR_in_dBm;
|
|
#if 0
|
#define ASSERT_RATEID(rateid) {while(rateid > RATEID_MAX);}
|
#define ASSERT_NonZero(x) {while(x == 0);}
|
#else
|
#define ASSERT_RATEID(rateid)
|
#define ASSERT_NonZero(x)
|
#endif
|
|
#endif /* _WLTYPES_H_ */
|