Staging: add rt2860 wireless driver
[deliverable/linux.git] / drivers / staging / rt2860 / spectrum.h
1 /*
2 *************************************************************************
3 * Ralink Tech Inc.
4 * 5F., No.36, Taiyuan St., Jhubei City,
5 * Hsinchu County 302,
6 * Taiwan, R.O.C.
7 *
8 * (c) Copyright 2002-2007, Ralink Technology, Inc.
9 *
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. *
14 * *
15 * This program is distributed in the hope that it will be useful, *
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
18 * GNU General Public License for more details. *
19 * *
20 * You should have received a copy of the GNU General Public License *
21 * along with this program; if not, write to the *
22 * Free Software Foundation, Inc., *
23 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
24 * *
25 *************************************************************************
26 */
27
28 #ifndef __SPECTRUM_H__
29 #define __SPECTRUM_H__
30
31 #include "rtmp_type.h"
32 #include "spectrum_def.h"
33
34 typedef struct PACKED _TPC_REPORT_INFO
35 {
36 UINT8 TxPwr;
37 UINT8 LinkMargin;
38 } TPC_REPORT_INFO, *PTPC_REPORT_INFO;
39
40 typedef struct PACKED _CH_SW_ANN_INFO
41 {
42 UINT8 ChSwMode;
43 UINT8 Channel;
44 UINT8 ChSwCnt;
45 } CH_SW_ANN_INFO, *PCH_SW_ANN_INFO;
46
47 typedef union PACKED _MEASURE_REQ_MODE
48 {
49 #ifdef RT_BIG_ENDIAN
50 struct PACKED
51 {
52 UINT8 Rev1:4;
53 UINT8 Report:1;
54 UINT8 Request:1;
55 UINT8 Enable:1;
56 UINT8 Rev0:1;
57 } field;
58 #else
59 struct PACKED
60 {
61 UINT8 Rev0:1;
62 UINT8 Enable:1;
63 UINT8 Request:1;
64 UINT8 Report:1;
65 UINT8 Rev1:4;
66 } field;
67 #endif // RT_BIG_ENDIAN //
68 UINT8 word;
69 } MEASURE_REQ_MODE, *PMEASURE_REQ_MODE;
70
71 typedef struct PACKED _MEASURE_REQ
72 {
73 UINT8 ChNum;
74 UINT64 MeasureStartTime;
75 UINT16 MeasureDuration;
76 } MEASURE_REQ, *PMEASURE_REQ;
77
78 typedef struct PACKED _MEASURE_REQ_INFO
79 {
80 UINT8 Token;
81 MEASURE_REQ_MODE ReqMode;
82 UINT8 ReqType;
83 MEASURE_REQ MeasureReq;
84 } MEASURE_REQ_INFO, *PMEASURE_REQ_INFO;
85
86 typedef union PACKED _MEASURE_BASIC_REPORT_MAP
87 {
88 #ifdef RT_BIG_ENDIAN
89 struct PACKED
90 {
91 UINT8 Rev:3;
92 UINT8 Unmeasure:1;
93 UINT8 Radar:1;
94 UINT8 UnidentifiedSignal:1;
95 UINT8 OfdmPreamble:1;
96 UINT8 BSS:1;
97 } field;
98 #else
99 struct PACKED
100 {
101 UINT8 BSS:1;
102 UINT8 OfdmPreamble:1;
103 UINT8 UnidentifiedSignal:1;
104 UINT8 Radar:1;
105 UINT8 Unmeasure:1;
106 UINT8 Rev:3;
107 } field;
108 #endif // RT_BIG_ENDIAN //
109 UINT8 word;
110 } MEASURE_BASIC_REPORT_MAP, *PMEASURE_BASIC_REPORT_MAP;
111
112 typedef struct PACKED _MEASURE_BASIC_REPORT
113 {
114 UINT8 ChNum;
115 UINT64 MeasureStartTime;
116 UINT16 MeasureDuration;
117 MEASURE_BASIC_REPORT_MAP Map;
118 } MEASURE_BASIC_REPORT, *PMEASURE_BASIC_REPORT;
119
120 typedef struct PACKED _MEASURE_CCA_REPORT
121 {
122 UINT8 ChNum;
123 UINT64 MeasureStartTime;
124 UINT16 MeasureDuration;
125 UINT8 CCA_Busy_Fraction;
126 } MEASURE_CCA_REPORT, *PMEASURE_CCA_REPORT;
127
128 typedef struct PACKED _MEASURE_RPI_REPORT
129 {
130 UINT8 ChNum;
131 UINT64 MeasureStartTime;
132 UINT16 MeasureDuration;
133 UINT8 RPI_Density[8];
134 } MEASURE_RPI_REPORT, *PMEASURE_RPI_REPORT;
135
136 typedef union PACKED _MEASURE_REPORT_MODE
137 {
138 struct PACKED
139 {
140 #ifdef RT_BIG_ENDIAN
141 UINT8 Rev:5;
142 UINT8 Refused:1;
143 UINT8 Incapable:1;
144 UINT8 Late:1;
145 #else
146 UINT8 Late:1;
147 UINT8 Incapable:1;
148 UINT8 Refused:1;
149 UINT8 Rev:5;
150 #endif // RT_BIG_ENDIAN //
151 } field;
152 UINT8 word;
153 } MEASURE_REPORT_MODE, *PMEASURE_REPORT_MODE;
154
155 typedef struct PACKED _MEASURE_REPORT_INFO
156 {
157 UINT8 Token;
158 MEASURE_REPORT_MODE ReportMode;
159 UINT8 ReportType;
160 UINT8 Octect[0];
161 } MEASURE_REPORT_INFO, *PMEASURE_REPORT_INFO;
162
163 typedef struct PACKED _QUIET_INFO
164 {
165 UINT8 QuietCnt;
166 UINT8 QuietPeriod;
167 UINT8 QuietDuration;
168 UINT8 QuietOffset;
169 } QUIET_INFO, *PQUIET_INFO;
170
171 /*
172 ==========================================================================
173 Description:
174 Prepare Measurement request action frame and enqueue it into
175 management queue waiting for transmition.
176
177 Parametrs:
178 1. the destination mac address of the frame.
179
180 Return : None.
181 ==========================================================================
182 */
183 VOID EnqueueMeasurementReq(
184 IN PRTMP_ADAPTER pAd,
185 IN PUCHAR pDA,
186 IN UINT8 MeasureToken,
187 IN UINT8 MeasureReqMode,
188 IN UINT8 MeasureReqType,
189 IN UINT8 MeasureCh,
190 IN UINT16 MeasureDuration);
191
192 /*
193 ==========================================================================
194 Description:
195 Prepare Measurement report action frame and enqueue it into
196 management queue waiting for transmition.
197
198 Parametrs:
199 1. the destination mac address of the frame.
200
201 Return : None.
202 ==========================================================================
203 */
204 VOID EnqueueMeasurementRep(
205 IN PRTMP_ADAPTER pAd,
206 IN PUCHAR pDA,
207 IN UINT8 DialogToken,
208 IN UINT8 MeasureToken,
209 IN UINT8 MeasureReqMode,
210 IN UINT8 MeasureReqType,
211 IN UINT8 ReportInfoLen,
212 IN PUINT8 pReportInfo);
213
214 /*
215 ==========================================================================
216 Description:
217 Prepare TPC Request action frame and enqueue it into
218 management queue waiting for transmition.
219
220 Parametrs:
221 1. the destination mac address of the frame.
222
223 Return : None.
224 ==========================================================================
225 */
226 VOID EnqueueTPCReq(
227 IN PRTMP_ADAPTER pAd,
228 IN PUCHAR pDA,
229 IN UCHAR DialogToken);
230
231 /*
232 ==========================================================================
233 Description:
234 Prepare TPC Report action frame and enqueue it into
235 management queue waiting for transmition.
236
237 Parametrs:
238 1. the destination mac address of the frame.
239
240 Return : None.
241 ==========================================================================
242 */
243 VOID EnqueueTPCRep(
244 IN PRTMP_ADAPTER pAd,
245 IN PUCHAR pDA,
246 IN UINT8 DialogToken,
247 IN UINT8 TxPwr,
248 IN UINT8 LinkMargin);
249
250 /*
251 ==========================================================================
252 Description:
253 Prepare Channel Switch Announcement action frame and enqueue it into
254 management queue waiting for transmition.
255
256 Parametrs:
257 1. the destination mac address of the frame.
258 2. Channel switch announcement mode.
259 2. a New selected channel.
260
261 Return : None.
262 ==========================================================================
263 */
264 VOID EnqueueChSwAnn(
265 IN PRTMP_ADAPTER pAd,
266 IN PUCHAR pDA,
267 IN UINT8 ChSwMode,
268 IN UINT8 NewCh);
269
270 /*
271 ==========================================================================
272 Description:
273 Spectrun action frames Handler such as channel switch annoucement,
274 measurement report, measurement request actions frames.
275
276 Parametrs:
277 Elme - MLME message containing the received frame
278
279 Return : None.
280 ==========================================================================
281 */
282 VOID PeerSpectrumAction(
283 IN PRTMP_ADAPTER pAd,
284 IN MLME_QUEUE_ELEM *Elem);
285
286 /*
287 ==========================================================================
288 Description:
289
290 Parametrs:
291
292 Return : None.
293 ==========================================================================
294 */
295 INT Set_MeasureReq_Proc(
296 IN PRTMP_ADAPTER pAd,
297 IN PUCHAR arg);
298
299 INT Set_TpcReq_Proc(
300 IN PRTMP_ADAPTER pAd,
301 IN PUCHAR arg);
302
303 VOID MeasureReqTabInit(
304 IN PRTMP_ADAPTER pAd);
305
306 VOID MeasureReqTabExit(
307 IN PRTMP_ADAPTER pAd);
308
309 VOID TpcReqTabInit(
310 IN PRTMP_ADAPTER pAd);
311
312 VOID TpcReqTabExit(
313 IN PRTMP_ADAPTER pAd);
314
315 VOID NotifyChSwAnnToPeerAPs(
316 IN PRTMP_ADAPTER pAd,
317 IN PUCHAR pRA,
318 IN PUCHAR pTA,
319 IN UINT8 ChSwMode,
320 IN UINT8 Channel);
321 #endif // __SPECTRUM_H__ //
322
This page took 0.051909 seconds and 5 git commands to generate.