--- /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*/