TWD/FirmwareApi/public_types.h
changeset 0 10c42ec6c05f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/TWD/FirmwareApi/public_types.h	Tue Jun 29 12:34:26 2010 +0100
@@ -0,0 +1,352 @@
+/*
+ * public_types.h
+ *
+ * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved.      
+ * All rights reserved.      
+ * 
+ * This program and the accompanying materials are made available under the 
+ * terms of the Eclipse Public License v1.0 or BSD License which accompanies
+ * this distribution. The Eclipse Public License is available at
+ * http://www.eclipse.org/legal/epl-v10.html and the BSD License is as below.                                   
+ *                                                                       
+ * 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*/