|
1 /* |
|
2 * rate.h |
|
3 * |
|
4 * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved. |
|
5 * All rights reserved. |
|
6 * |
|
7 * This program and the accompanying materials are made available under the |
|
8 * terms of the Eclipse Public License v1.0 or BSD License which accompanies |
|
9 * this distribution. The Eclipse Public License is available at |
|
10 * http://www.eclipse.org/legal/epl-v10.html and the BSD License is as below. |
|
11 * |
|
12 * Redistribution and use in source and binary forms, with or without |
|
13 * modification, are permitted provided that the following conditions |
|
14 * are met: |
|
15 * |
|
16 * * Redistributions of source code must retain the above copyright |
|
17 * notice, this list of conditions and the following disclaimer. |
|
18 * * Redistributions in binary form must reproduce the above copyright |
|
19 * notice, this list of conditions and the following disclaimer in |
|
20 * the documentation and/or other materials provided with the |
|
21 * distribution. |
|
22 * * Neither the name Texas Instruments nor the names of its |
|
23 * contributors may be used to endorse or promote products derived |
|
24 * from this software without specific prior written permission. |
|
25 * |
|
26 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
|
27 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
|
28 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
|
29 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
|
30 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
31 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
32 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
|
33 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
|
34 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
|
35 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
|
36 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
37 */ |
|
38 |
|
39 |
|
40 /** \file rate.h |
|
41 * \brief Rate conversion |
|
42 * |
|
43 * \see rate.c |
|
44 */ |
|
45 |
|
46 |
|
47 |
|
48 |
|
49 #ifndef RATE_H |
|
50 #define RATE_H |
|
51 |
|
52 #include "TWDriver.h" |
|
53 |
|
54 |
|
55 typedef enum |
|
56 { |
|
57 NET_BASIC_MASK = 0x80, |
|
58 NET_RATE_1M = 0x02, |
|
59 NET_RATE_2M = 0x04, |
|
60 NET_RATE_5_5M = 0x0B, |
|
61 NET_RATE_11M = 0x16, |
|
62 NET_RATE_22M = 0x2C, |
|
63 NET_RATE_6M = 0x0C, |
|
64 NET_RATE_9M = 0x12, |
|
65 NET_RATE_12M = 0x18, |
|
66 NET_RATE_18M = 0x24, |
|
67 NET_RATE_24M = 0x30, |
|
68 NET_RATE_36M = 0x48, |
|
69 NET_RATE_48M = 0x60, |
|
70 NET_RATE_54M = 0x6C, |
|
71 NET_RATE_MCS0 = 0x0D, /* MCS0 6.5M */ |
|
72 NET_RATE_MCS1 = 0x1A, /* MCS1 13M */ |
|
73 NET_RATE_MCS2 = 0x27, /* MCS2 19.5M */ |
|
74 NET_RATE_MCS3 = 0x34, /* MCS3 26M */ |
|
75 NET_RATE_MCS4 = 0x4E, /* MCS4 39M */ |
|
76 NET_RATE_MCS5 = 0x68, /* MCS5 52M */ |
|
77 NET_RATE_MCS6 = 0x75, /* MCS6 58.5M */ |
|
78 NET_RATE_MCS7 = 0x7F /* MCS7 65M */ |
|
79 |
|
80 } ENetRate; |
|
81 |
|
82 |
|
83 typedef enum |
|
84 { |
|
85 NET_RATE_1M_BASIC = (NET_RATE_1M | NET_BASIC_MASK), |
|
86 NET_RATE_2M_BASIC = (NET_RATE_2M | NET_BASIC_MASK), |
|
87 NET_RATE_5_5M_BASIC = (NET_RATE_5_5M | NET_BASIC_MASK), |
|
88 NET_RATE_11M_BASIC = (NET_RATE_11M | NET_BASIC_MASK), |
|
89 NET_RATE_22M_BASIC = (NET_RATE_22M | NET_BASIC_MASK), |
|
90 NET_RATE_6M_BASIC = (NET_RATE_6M | NET_BASIC_MASK), |
|
91 NET_RATE_9M_BASIC = (NET_RATE_9M | NET_BASIC_MASK), |
|
92 NET_RATE_12M_BASIC = (NET_RATE_12M | NET_BASIC_MASK), |
|
93 NET_RATE_18M_BASIC = (NET_RATE_18M | NET_BASIC_MASK), |
|
94 NET_RATE_24M_BASIC = (NET_RATE_24M | NET_BASIC_MASK), |
|
95 NET_RATE_36M_BASIC = (NET_RATE_36M | NET_BASIC_MASK), |
|
96 NET_RATE_48M_BASIC = (NET_RATE_48M | NET_BASIC_MASK), |
|
97 NET_RATE_54M_BASIC = (NET_RATE_54M | NET_BASIC_MASK), |
|
98 NET_RATE_MCS0_BASIC = (NET_RATE_MCS0 | NET_BASIC_MASK), |
|
99 NET_RATE_MCS1_BASIC = (NET_RATE_MCS1 | NET_BASIC_MASK), |
|
100 NET_RATE_MCS2_BASIC = (NET_RATE_MCS2 | NET_BASIC_MASK), |
|
101 NET_RATE_MCS3_BASIC = (NET_RATE_MCS3 | NET_BASIC_MASK), |
|
102 NET_RATE_MCS4_BASIC = (NET_RATE_MCS4 | NET_BASIC_MASK), |
|
103 NET_RATE_MCS5_BASIC = (NET_RATE_MCS5 | NET_BASIC_MASK), |
|
104 NET_RATE_MCS6_BASIC = (NET_RATE_MCS6 | NET_BASIC_MASK), |
|
105 NET_RATE_MCS7_BASIC = (NET_RATE_MCS7 | NET_BASIC_MASK) |
|
106 |
|
107 } ENetRateBasic; |
|
108 |
|
109 |
|
110 typedef enum |
|
111 { |
|
112 BASIC_RATE_SET_1_2 = 0, |
|
113 BASIC_RATE_SET_1_2_5_5_11 = 1, |
|
114 BASIC_RATE_SET_UP_TO_12 = 2, |
|
115 BASIC_RATE_SET_UP_TO_18 = 3, |
|
116 BASIC_RATE_SET_1_2_5_5_6_11_12_24 = 4, |
|
117 BASIC_RATE_SET_UP_TO_36 = 5, |
|
118 BASIC_RATE_SET_UP_TO_48 = 6, |
|
119 BASIC_RATE_SET_UP_TO_54 = 7, |
|
120 BASIC_RATE_SET_UP_TO_24 = 8, |
|
121 BASIC_RATE_SET_6_12_24 = 9, |
|
122 BASIC_RATE_SET_ALL_MCS_RATES = 10 |
|
123 } EBasicRateSet; |
|
124 |
|
125 |
|
126 /* Keep increasing define values - related to increasing suported rates */ |
|
127 typedef enum |
|
128 { |
|
129 SUPPORTED_RATE_SET_1_2 = 0, |
|
130 SUPPORTED_RATE_SET_1_2_5_5_11 = 1, |
|
131 SUPPORTED_RATE_SET_1_2_5_5_11_22 = 2, |
|
132 SUPPORTED_RATE_SET_UP_TO_18 = 3, |
|
133 SUPPORTED_RATE_SET_UP_TO_24 = 4, |
|
134 SUPPORTED_RATE_SET_UP_TO_36 = 5, |
|
135 SUPPORTED_RATE_SET_UP_TO_48 = 6, |
|
136 SUPPORTED_RATE_SET_UP_TO_54 = 7, |
|
137 SUPPORTED_RATE_SET_ALL = 8, |
|
138 SUPPORTED_RATE_SET_ALL_OFDM = 9, |
|
139 SUPPORTED_RATE_SET_ALL_MCS_RATES = 10 |
|
140 |
|
141 } ESupportedRateSet; |
|
142 |
|
143 |
|
144 typedef enum |
|
145 { |
|
146 DRV_MODULATION_NONE = 0, |
|
147 DRV_MODULATION_CCK = 1, |
|
148 DRV_MODULATION_PBCC = 2, |
|
149 DRV_MODULATION_QPSK = 3, |
|
150 DRV_MODULATION_OFDM = 4 |
|
151 |
|
152 } EModulationType; |
|
153 |
|
154 |
|
155 #define NET_BASIC_RATE(rate) ((rate) & NET_BASIC_MASK) |
|
156 #define NET_ACTIVE_RATE(rate) (!NET_BASIC_RATE (rate)) |
|
157 |
|
158 |
|
159 ERate rate_NumberToDrv (TI_UINT32 rate); |
|
160 TI_UINT32 rate_DrvToNumber (ERate eRate); |
|
161 ERate rate_NetToDrv (TI_UINT32 rate); |
|
162 ENetRate rate_DrvToNet (ERate eRate); |
|
163 TI_STATUS rate_DrvBitmapToNetStr (TI_UINT32 uSuppRatesBitMap, TI_UINT32 uBasicRatesBitMap, TI_UINT8 *string, TI_UINT32 *len, TI_UINT32 *pFirstOfdmRate); |
|
164 TI_STATUS rate_NetStrToDrvBitmap (TI_UINT32 *pBitMap, TI_UINT8 *string, TI_UINT32 len); |
|
165 TI_STATUS rate_NetBasicStrToDrvBitmap (TI_UINT32 *pBitMap, TI_UINT8 *string, TI_UINT32 len); |
|
166 TI_STATUS rate_McsNetStrToDrvBitmap (TI_UINT32 *pBitMap, TI_UINT8 *string); |
|
167 TI_STATUS rate_DrvBitmapToHwBitmap (TI_UINT32 uDrvBitmap, TI_UINT32 *pHwBitmap); |
|
168 TI_STATUS rate_PolicyToDrv (ETxRateClassId ePolicyRate, ERate *eAppRate); |
|
169 TI_UINT32 rate_BasicToDrvBitmap (EBasicRateSet eBasicRateSet, TI_BOOL bDot11a); |
|
170 TI_UINT32 rate_SupportedToDrvBitmap (ESupportedRateSet eSupportedRateSet, TI_BOOL bDot11a); |
|
171 |
|
172 ERate rate_GetMaxFromDrvBitmap (TI_UINT32 uBitMap); |
|
173 ENetRate rate_GetMaxBasicFromStr (TI_UINT8 *pRatesString, TI_UINT32 len, ENetRate eMaxRate); |
|
174 ENetRate rate_GetMaxActiveFromStr (TI_UINT8 *pRatesString, TI_UINT32 len, ENetRate eMaxRate); |
|
175 |
|
176 TI_STATUS rate_ValidateVsBand (TI_UINT32 *pSupportedMask, TI_UINT32 *pBasicMask, TI_BOOL bDot11a); |
|
177 |
|
178 TI_UINT32 rate_GetDrvBitmapForDefaultBasicSet (void); |
|
179 TI_UINT32 rate_GetDrvBitmapForDefaultSupporteSet (void); |
|
180 |
|
181 #endif |
|
182 |
|
183 |