| /* |
| * public_types.h |
| * |
| * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved. |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * |
| * * Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * * Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in |
| * the documentation and/or other materials provided with the |
| * distribution. |
| * * Neither the name Texas Instruments nor the names of its |
| * contributors may be used to endorse or promote products derived |
| * from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| /********************************************************************************************************************** |
| |
| FILENAME: public_types.h |
| |
| DESCRIPTION: Basic types and general macros, bit manipulations, etc. |
| |
| |
| |
| ***********************************************************************************************************************/ |
| #ifndef PUBLIC_TYPES_H |
| #define PUBLIC_TYPES_H |
| |
| |
| /****************************************************************************** |
| |
| Basic definitions |
| |
| ******************************************************************************/ |
| #ifndef uint8 |
| typedef unsigned char uint8; |
| #endif |
| #ifndef uint16 |
| typedef unsigned short uint16; |
| #endif |
| #ifndef uint32 |
| typedef unsigned long int uint32; |
| #endif |
| #ifndef uint64 |
| typedef unsigned long long uint64; |
| #endif |
| |
| |
| #ifndef int8 |
| typedef signed char int8; |
| #endif |
| #ifndef int16 |
| typedef short int16; |
| #endif |
| #ifndef int32 |
| typedef long int int32; |
| #endif |
| #ifndef int64 |
| typedef long long int64; |
| #endif |
| |
| |
| #ifdef HOST_COMPILE |
| #ifndef TI_TRUE |
| #define TI_TRUE 1 |
| #endif |
| #ifndef TI_FALSE |
| #define TI_FALSE 0 |
| #endif |
| #else |
| #ifndef TRUE |
| #define TRUE 1 |
| #endif |
| #ifndef FALSE |
| #define FALSE 0 |
| #endif |
| #define STATIC static |
| #define INLINE inline |
| #endif |
| |
| /* !! LAC - NULL definition conflicts with the compilers version. |
| I redid this definition to the ANSI version.... |
| #define NULL 0 |
| */ |
| #if !defined( NULL ) |
| #if defined( __cplusplus ) |
| #define NULL 0 |
| #else |
| #define NULL ((void *)0) |
| #endif |
| #endif |
| |
| /* Bool_e should be used when we need it to be a byte. */ |
| typedef uint8 Bool_e; |
| |
| /* Bool32 should be used whenever possible for efficiency */ |
| typedef uint32 Bool32; |
| |
| /* to align enum to 32/16 bits */ |
| #define MAX_POSITIVE32 0x7FFFFFFF |
| #define MAX_POSITIVE16 0x7FFF |
| #define MAX_POSITIVE8 0x7F |
| |
| #define MAC_ADDR_SIZE 6 /* In Bytes */ |
| #define MAC_ADDRESS_MANUFACTURE_TYPE_LENGHT 3 /* In Bytes */ |
| #define MAC_ADDRESS_STATION_ID_LENGHT 3 /* In Bytes */ |
| |
| #ifdef HOST_COMPILE |
| #else |
| typedef struct macAddress_t |
| { |
| uint8 addr[MAC_ADDR_SIZE]; |
| }macAddress_t; |
| #endif |
| |
| |
| #define BIT_0 0x00000001 |
| #define BIT_1 0x00000002 |
| #define BIT_2 0x00000004 |
| #define BIT_3 0x00000008 |
| #define BIT_4 0x00000010 |
| #define BIT_5 0x00000020 |
| #define BIT_6 0x00000040 |
| #define BIT_7 0x00000080 |
| #define BIT_8 0x00000100 |
| #define BIT_9 0x00000200 |
| #define BIT_10 0x00000400 |
| #define BIT_11 0x00000800 |
| #define BIT_12 0x00001000 |
| #define BIT_13 0x00002000 |
| #define BIT_14 0x00004000 |
| #define BIT_15 0x00008000 |
| #define BIT_16 0x00010000 |
| #define BIT_17 0x00020000 |
| #define BIT_18 0x00040000 |
| #define BIT_19 0x00080000 |
| #define BIT_20 0x00100000 |
| #define BIT_21 0x00200000 |
| #define BIT_22 0x00400000 |
| #define BIT_23 0x00800000 |
| #define BIT_24 0x01000000 |
| #define BIT_25 0x02000000 |
| #define BIT_26 0x04000000 |
| #define BIT_27 0x08000000 |
| #define BIT_28 0x10000000 |
| #define BIT_29 0x20000000 |
| #define BIT_30 0x40000000 |
| #define BIT_31 0x80000000 |
| |
| #define BIT_32 0x00000001 |
| #define BIT_33 0x00000002 |
| #define BIT_34 0x00000004 |
| #define BIT_35 0x00000008 |
| #define BIT_36 0x00000010 |
| #define BIT_37 0x00000020 |
| #define BIT_38 0x00000040 |
| #define BIT_39 0x00000080 |
| #define BIT_40 0x00000100 |
| #define BIT_41 0x00000200 |
| #define BIT_42 0x00000400 |
| #define BIT_43 0x00000800 |
| #define BIT_44 0x00001000 |
| #define BIT_45 0x00002000 |
| #define BIT_46 0x00004000 |
| #define BIT_47 0x00008000 |
| #define BIT_48 0x00010000 |
| #define BIT_49 0x00020000 |
| #define BIT_50 0x00040000 |
| #define BIT_51 0x00080000 |
| #define BIT_52 0x00100000 |
| #define BIT_53 0x00200000 |
| #define BIT_54 0x00400000 |
| #define BIT_55 0x00800000 |
| #define BIT_56 0x01000000 |
| #define BIT_57 0x02000000 |
| #define BIT_58 0x04000000 |
| #define BIT_59 0x08000000 |
| #define BIT_60 0x10000000 |
| #define BIT_61 0x20000000 |
| #define BIT_62 0x40000000 |
| #define BIT_63 0x80000000 |
| |
| |
| /****************************************************************************** |
| |
| CHANNELS, BAND & REG DOMAINS definitions |
| |
| ******************************************************************************/ |
| |
| |
| typedef uint8 Channel_e; |
| |
| typedef enum |
| { |
| RADIO_BAND_2_4GHZ = 0, /* 2.4 Ghz band */ |
| RADIO_BAND_5GHZ = 1, /* 5 Ghz band */ |
| RADIO_BAND_JAPAN_4_9_GHZ = 2, |
| DEFAULT_BAND = RADIO_BAND_2_4GHZ, |
| INVALID_BAND = 0x7E, |
| MAX_RADIO_BANDS = 0x7F |
| } RadioBand_enum; |
| |
| #ifdef HOST_COMPILE |
| typedef uint8 RadioBand_e; |
| #else |
| typedef RadioBand_enum RadioBand_e; |
| #endif |
| |
| /* The following enum is used in the FW for HIF interface only !!!!! */ |
| typedef enum |
| { |
| HW_BIT_RATE_1MBPS = BIT_0 , |
| HW_BIT_RATE_2MBPS = BIT_1 , |
| HW_BIT_RATE_5_5MBPS = BIT_2 , |
| HW_BIT_RATE_6MBPS = BIT_3 , |
| HW_BIT_RATE_9MBPS = BIT_4 , |
| HW_BIT_RATE_11MBPS = BIT_5 , |
| HW_BIT_RATE_12MBPS = BIT_6 , |
| HW_BIT_RATE_18MBPS = BIT_7 , |
| HW_BIT_RATE_22MBPS = BIT_8 , |
| HW_BIT_RATE_24MBPS = BIT_9 , |
| HW_BIT_RATE_36MBPS = BIT_10, |
| HW_BIT_RATE_48MBPS = BIT_11, |
| HW_BIT_RATE_54MBPS = BIT_12, |
| HW_BIT_RATE_MCS_0 = BIT_13, |
| HW_BIT_RATE_MCS_1 = BIT_14, |
| HW_BIT_RATE_MCS_2 = BIT_15, |
| HW_BIT_RATE_MCS_3 = BIT_16, |
| HW_BIT_RATE_MCS_4 = BIT_17, |
| HW_BIT_RATE_MCS_5 = BIT_18, |
| HW_BIT_RATE_MCS_6 = BIT_19, |
| HW_BIT_RATE_MCS_7 = BIT_20 |
| } EHwBitRate; |
| |
| /* The following enum is used in the FW for HIF interface only !!!!! */ |
| typedef enum |
| { |
| txPolicyMcs7 = 0, |
| txPolicyMcs6, |
| txPolicyMcs5, |
| txPolicyMcs4, |
| txPolicyMcs3, |
| txPolicyMcs2, |
| txPolicyMcs1, |
| txPolicyMcs0, |
| txPolicy54, |
| txPolicy48, |
| txPolicy36, |
| txPolicy24, |
| txPolicy22, |
| txPolicy18, |
| txPolicy12, |
| txPolicy11, |
| txPolicy9, |
| txPolicy6, |
| txPolicy5_5, |
| txPolicy2, |
| txPolicy1, |
| MAX_NUM_OF_TX_RATES_IN_CLASS, |
| TX_RATE_INDEX_ENUM_MAX_SIZE = 0xFF |
| } ETxRateClassId; |
| |
| |
| |
| |
| #define SHORT_PREAMBLE_BIT BIT_0 /* CCK or Barker depending on the rate */ |
| #define OFDM_RATE_BIT BIT_6 |
| #define PBCC_RATE_BIT BIT_7 |
| |
| |
| typedef enum |
| { |
| CCK_LONG = 0, |
| CCK_SHORT = SHORT_PREAMBLE_BIT, |
| PBCC_LONG = PBCC_RATE_BIT, |
| PBCC_SHORT = PBCC_RATE_BIT | SHORT_PREAMBLE_BIT, |
| OFDM = OFDM_RATE_BIT |
| } Mod_enum; |
| |
| #ifdef HOST_COMPILE |
| typedef uint8 Mod_e; |
| #else |
| typedef Mod_enum Mod_e; |
| #endif |
| |
| |
| typedef uint16 BasicRateSet_t; |
| |
| |
| /****************************************************************************** |
| |
| Transmit-Descriptor RATE-SET field definitions... |
| |
| ******************************************************************************/ |
| |
| typedef uint32 EHwRateBitFiled;/* set with EHwBitRate values */ |
| |
| #ifdef HOST_COMPILE |
| typedef uint8 TxRateIndex_t; /* set with ETxRateClassId values */ |
| #else |
| typedef ETxRateClassId TxRateIndex_t; |
| #endif |
| |
| /****************************************************************************** |
| |
| CHIP_ID definitions |
| |
| ******************************************************************************/ |
| #define TNETW1150_PG10_CHIP_ID 0x04010101 |
| #define TNETW1150_PG11_CHIP_ID 0x04020101 |
| #define TNETW1150_CHIP_ID 0x04030101 /* 1150 PG2.0, 1250, 1350, 1450*/ |
| #define TNETW1350A_CHIP_ID 0x06010101 |
| #define TNETW1251_CHIP_ID_PG1_0 0x07010101 |
| #define TNETW1251_CHIP_ID_PG1_1 0x07020101 |
| #define TNETW1251_CHIP_ID_PG1_2 0x07030101 |
| #define TNETW1273_CHIP_ID_PG1_0 0x04030101 |
| #define TNETW1273_CHIP_ID_PG1_1 0x04030111 |
| |
| #define CHECK_CHIP_ID(chipId) (CHIP_ID_B == chipId) |
| |
| /****************************************************************************** |
| Enable bits for SOC1251 PG1.2 |
| ******************************************************************************/ |
| #define PDET_BINARY_OFFSET_EN BIT_0 |
| #define STOP_TOGGLE_MONADC_EN BIT_1 |
| #define RX_ADC_BIAS_DEC_EN BIT_2 |
| #define RX_LNB_AND_DIGI_GAIN_EN BIT_3 |
| |
| |
| #endif /* PUBLIC_TYPES_H*/ |