Commit | Line | Data |
---|---|---|
92b96797 FB |
1 | /* |
2 | * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. | |
3 | * All rights reserved. | |
4 | * | |
5 | * This program is free software; you can redistribute it and/or modify | |
6 | * it under the terms of the GNU General Public License as published by | |
7 | * the Free Software Foundation; either version 2 of the License, or | |
8 | * (at your option) any later version. | |
9 | * | |
10 | * This program is distributed in the hope that it will be useful, | |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 | * GNU General Public License for more details. | |
14 | * | |
15 | * You should have received a copy of the GNU General Public License along | |
16 | * with this program; if not, write to the Free Software Foundation, Inc., | |
17 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 | * | |
19 | * File: rxtx.h | |
20 | * | |
21 | * Purpose: | |
22 | * | |
23 | * Author: Jerry Chen | |
24 | * | |
25 | * Date: Jun. 27, 2002 | |
26 | * | |
27 | */ | |
28 | ||
92b96797 FB |
29 | #ifndef __RXTX_H__ |
30 | #define __RXTX_H__ | |
31 | ||
92b96797 | 32 | #include "device.h" |
92b96797 | 33 | #include "wcmd.h" |
92b96797 | 34 | |
92b96797 FB |
35 | // |
36 | // RTS buffer header | |
37 | // | |
38 | typedef struct tagSRTSDataF { | |
3eaca0d2 AM |
39 | u16 wFrameControl; |
40 | u16 wDurationID; | |
b902fbfe AM |
41 | u8 abyRA[ETH_ALEN]; |
42 | u8 abyTA[ETH_ALEN]; | |
193a823c | 43 | } SRTSDataF, *PSRTSDataF; |
92b96797 FB |
44 | |
45 | // | |
46 | // CTS buffer header | |
47 | // | |
48 | typedef struct tagSCTSDataF { | |
3eaca0d2 AM |
49 | u16 wFrameControl; |
50 | u16 wDurationID; | |
b902fbfe | 51 | u8 abyRA[ETH_ALEN]; |
3eaca0d2 | 52 | u16 wReserved; |
193a823c | 53 | } SCTSDataF, *PSCTSDataF; |
92b96797 FB |
54 | |
55 | // | |
56 | // MICHDR data header | |
57 | // | |
58 | typedef struct tagSMICHDR { | |
ed74395c MP |
59 | u32 adwHDR0[4]; |
60 | u32 adwHDR1[4]; | |
61 | u32 adwHDR2[4]; | |
193a823c | 62 | } SMICHDR, *PSMICHDR; |
92b96797 | 63 | |
92b96797 FB |
64 | typedef struct tagSTX_NAF_G_RTS |
65 | { | |
66 | //RsvTime | |
3eaca0d2 AM |
67 | u16 wRTSTxRrvTime_ba; |
68 | u16 wRTSTxRrvTime_aa; | |
69 | u16 wRTSTxRrvTime_bb; | |
70 | u16 wReserved2; | |
71 | u16 wTxRrvTime_b; | |
72 | u16 wTxRrvTime_a; | |
92b96797 FB |
73 | |
74 | //RTS | |
b902fbfe AM |
75 | u8 byRTSSignalField_b; |
76 | u8 byRTSServiceField_b; | |
3eaca0d2 | 77 | u16 wRTSTransmitLength_b; |
b902fbfe AM |
78 | u8 byRTSSignalField_a; |
79 | u8 byRTSServiceField_a; | |
3eaca0d2 AM |
80 | u16 wRTSTransmitLength_a; |
81 | u16 wRTSDuration_ba; | |
82 | u16 wRTSDuration_aa; | |
83 | u16 wRTSDuration_bb; | |
84 | u16 wReserved3; | |
92b96797 FB |
85 | SRTSDataF sRTS; |
86 | ||
87 | //Data | |
b902fbfe AM |
88 | u8 bySignalField_b; |
89 | u8 byServiceField_b; | |
3eaca0d2 | 90 | u16 wTransmitLength_b; |
b902fbfe AM |
91 | u8 bySignalField_a; |
92 | u8 byServiceField_a; | |
3eaca0d2 AM |
93 | u16 wTransmitLength_a; |
94 | u16 wDuration_b; | |
95 | u16 wDuration_a; | |
96 | u16 wTimeStampOff_b; | |
97 | u16 wTimeStampOff_a; | |
92b96797 | 98 | |
193a823c | 99 | } TX_NAF_G_RTS, *PTX_NAF_G_RTS; |
92b96797 FB |
100 | |
101 | typedef struct tagSTX_NAF_G_RTS_MIC | |
102 | { | |
103 | //RsvTime | |
3eaca0d2 AM |
104 | u16 wRTSTxRrvTime_ba; |
105 | u16 wRTSTxRrvTime_aa; | |
106 | u16 wRTSTxRrvTime_bb; | |
107 | u16 wReserved2; | |
108 | u16 wTxRrvTime_b; | |
109 | u16 wTxRrvTime_a; | |
92b96797 FB |
110 | |
111 | SMICHDR sMICHDR; | |
112 | ||
113 | //RTS | |
b902fbfe AM |
114 | u8 byRTSSignalField_b; |
115 | u8 byRTSServiceField_b; | |
3eaca0d2 | 116 | u16 wRTSTransmitLength_b; |
b902fbfe AM |
117 | u8 byRTSSignalField_a; |
118 | u8 byRTSServiceField_a; | |
3eaca0d2 AM |
119 | u16 wRTSTransmitLength_a; |
120 | u16 wRTSDuration_ba; | |
121 | u16 wRTSDuration_aa; | |
122 | u16 wRTSDuration_bb; | |
123 | u16 wReserved3; | |
92b96797 FB |
124 | SRTSDataF sRTS; |
125 | ||
126 | //Data | |
b902fbfe AM |
127 | u8 bySignalField_b; |
128 | u8 byServiceField_b; | |
3eaca0d2 | 129 | u16 wTransmitLength_b; |
b902fbfe AM |
130 | u8 bySignalField_a; |
131 | u8 byServiceField_a; | |
3eaca0d2 AM |
132 | u16 wTransmitLength_a; |
133 | u16 wDuration_b; | |
134 | u16 wDuration_a; | |
135 | u16 wTimeStampOff_b; | |
136 | u16 wTimeStampOff_a; | |
92b96797 | 137 | |
193a823c | 138 | } TX_NAF_G_RTS_MIC, *PTX_NAF_G_RTS_MIC; |
92b96797 FB |
139 | |
140 | typedef struct tagSTX_NAF_G_CTS | |
141 | { | |
142 | //RsvTime | |
3eaca0d2 AM |
143 | u16 wCTSTxRrvTime_ba; |
144 | u16 wReserved2; | |
145 | u16 wTxRrvTime_b; | |
146 | u16 wTxRrvTime_a; | |
92b96797 FB |
147 | |
148 | //CTS | |
b902fbfe AM |
149 | u8 byCTSSignalField_b; |
150 | u8 byCTSServiceField_b; | |
3eaca0d2 AM |
151 | u16 wCTSTransmitLength_b; |
152 | u16 wCTSDuration_ba; | |
153 | u16 wReserved3; | |
92b96797 FB |
154 | SCTSDataF sCTS; |
155 | ||
156 | //Data | |
b902fbfe AM |
157 | u8 bySignalField_b; |
158 | u8 byServiceField_b; | |
3eaca0d2 | 159 | u16 wTransmitLength_b; |
b902fbfe AM |
160 | u8 bySignalField_a; |
161 | u8 byServiceField_a; | |
3eaca0d2 AM |
162 | u16 wTransmitLength_a; |
163 | u16 wDuration_b; | |
164 | u16 wDuration_a; | |
165 | u16 wTimeStampOff_b; | |
166 | u16 wTimeStampOff_a; | |
92b96797 | 167 | |
193a823c | 168 | } TX_NAF_G_CTS, *PTX_NAF_G_CTS; |
92b96797 | 169 | |
92b96797 FB |
170 | typedef struct tagSTX_NAF_G_CTS_MIC |
171 | { | |
172 | //RsvTime | |
3eaca0d2 AM |
173 | u16 wCTSTxRrvTime_ba; |
174 | u16 wReserved2; | |
175 | u16 wTxRrvTime_b; | |
176 | u16 wTxRrvTime_a; | |
92b96797 | 177 | |
92b96797 FB |
178 | SMICHDR sMICHDR; |
179 | ||
180 | //CTS | |
b902fbfe AM |
181 | u8 byCTSSignalField_b; |
182 | u8 byCTSServiceField_b; | |
3eaca0d2 AM |
183 | u16 wCTSTransmitLength_b; |
184 | u16 wCTSDuration_ba; | |
185 | u16 wReserved3; | |
92b96797 FB |
186 | SCTSDataF sCTS; |
187 | ||
188 | //Data | |
b902fbfe AM |
189 | u8 bySignalField_b; |
190 | u8 byServiceField_b; | |
3eaca0d2 | 191 | u16 wTransmitLength_b; |
b902fbfe AM |
192 | u8 bySignalField_a; |
193 | u8 byServiceField_a; | |
3eaca0d2 AM |
194 | u16 wTransmitLength_a; |
195 | u16 wDuration_b; | |
196 | u16 wDuration_a; | |
197 | u16 wTimeStampOff_b; | |
198 | u16 wTimeStampOff_a; | |
92b96797 | 199 | |
193a823c | 200 | } TX_NAF_G_CTS_MIC, *PTX_NAF_G_CTS_MIC; |
92b96797 | 201 | |
92b96797 FB |
202 | typedef struct tagSTX_NAF_G_BEACON |
203 | { | |
3eaca0d2 AM |
204 | u16 wFIFOCtl; |
205 | u16 wTimeStamp; | |
92b96797 FB |
206 | |
207 | //CTS | |
b902fbfe AM |
208 | u8 byCTSSignalField_b; |
209 | u8 byCTSServiceField_b; | |
3eaca0d2 AM |
210 | u16 wCTSTransmitLength_b; |
211 | u16 wCTSDuration_ba; | |
212 | u16 wReserved1; | |
92b96797 FB |
213 | SCTSDataF sCTS; |
214 | ||
215 | //Data | |
b902fbfe AM |
216 | u8 bySignalField_a; |
217 | u8 byServiceField_a; | |
3eaca0d2 AM |
218 | u16 wTransmitLength_a; |
219 | u16 wDuration_a; | |
220 | u16 wTimeStampOff_a; | |
92b96797 | 221 | |
193a823c | 222 | } TX_NAF_G_BEACON, *PTX_NAF_G_BEACON; |
92b96797 | 223 | |
92b96797 FB |
224 | typedef struct tagSTX_NAF_AB_RTS |
225 | { | |
226 | //RsvTime | |
3eaca0d2 AM |
227 | u16 wRTSTxRrvTime_ab; |
228 | u16 wTxRrvTime_ab; | |
92b96797 FB |
229 | |
230 | //RTS | |
b902fbfe AM |
231 | u8 byRTSSignalField_ab; |
232 | u8 byRTSServiceField_ab; | |
3eaca0d2 AM |
233 | u16 wRTSTransmitLength_ab; |
234 | u16 wRTSDuration_ab; | |
235 | u16 wReserved2; | |
92b96797 FB |
236 | SRTSDataF sRTS; |
237 | ||
238 | //Data | |
b902fbfe AM |
239 | u8 bySignalField_ab; |
240 | u8 byServiceField_ab; | |
3eaca0d2 AM |
241 | u16 wTransmitLength_ab; |
242 | u16 wDuration_ab; | |
243 | u16 wTimeStampOff_ab; | |
92b96797 | 244 | |
193a823c | 245 | } TX_NAF_AB_RTS, *PTX_NAF_AB_RTS; |
92b96797 | 246 | |
92b96797 FB |
247 | typedef struct tagSTX_NAF_AB_RTS_MIC |
248 | { | |
249 | //RsvTime | |
3eaca0d2 AM |
250 | u16 wRTSTxRrvTime_ab; |
251 | u16 wTxRrvTime_ab; | |
92b96797 FB |
252 | |
253 | SMICHDR sMICHDR; | |
254 | ||
255 | //RTS | |
b902fbfe AM |
256 | u8 byRTSSignalField_ab; |
257 | u8 byRTSServiceField_ab; | |
3eaca0d2 AM |
258 | u16 wRTSTransmitLength_ab; |
259 | u16 wRTSDuration_ab; | |
260 | u16 wReserved2; | |
92b96797 FB |
261 | SRTSDataF sRTS; |
262 | ||
263 | //Data | |
b902fbfe AM |
264 | u8 bySignalField_ab; |
265 | u8 byServiceField_ab; | |
3eaca0d2 AM |
266 | u16 wTransmitLength_ab; |
267 | u16 wDuration_ab; | |
268 | u16 wTimeStampOff_ab; | |
92b96797 | 269 | |
193a823c | 270 | } TX_NAF_AB_RTS_MIC, *PTX_NAF_AB_RTS_MIC; |
92b96797 | 271 | |
92b96797 FB |
272 | typedef struct tagSTX_NAF_AB_CTS |
273 | { | |
274 | //RsvTime | |
3eaca0d2 AM |
275 | u16 wReserved2; |
276 | u16 wTxRrvTime_ab; | |
92b96797 FB |
277 | |
278 | //Data | |
b902fbfe AM |
279 | u8 bySignalField_ab; |
280 | u8 byServiceField_ab; | |
3eaca0d2 AM |
281 | u16 wTransmitLength_ab; |
282 | u16 wDuration_ab; | |
283 | u16 wTimeStampOff_ab; | |
92b96797 | 284 | |
193a823c | 285 | } TX_NAF_AB_CTS, *PTX_NAF_AB_CTS; |
92b96797 FB |
286 | |
287 | typedef struct tagSTX_NAF_AB_CTS_MIC | |
288 | { | |
289 | //RsvTime | |
3eaca0d2 AM |
290 | u16 wReserved2; |
291 | u16 wTxRrvTime_ab; | |
92b96797 FB |
292 | |
293 | SMICHDR sMICHDR; | |
294 | ||
295 | //Data | |
b902fbfe AM |
296 | u8 bySignalField_ab; |
297 | u8 byServiceField_ab; | |
3eaca0d2 AM |
298 | u16 wTransmitLength_ab; |
299 | u16 wDuration_ab; | |
300 | u16 wTimeStampOff_ab; | |
92b96797 | 301 | |
193a823c | 302 | } TX_NAF_AB_CTS_MIC, *PTX_NAF_AB_CTS_MIC; |
92b96797 | 303 | |
92b96797 FB |
304 | typedef struct tagSTX_NAF_AB_BEACON |
305 | { | |
3eaca0d2 AM |
306 | u16 wFIFOCtl; |
307 | u16 wTimeStamp; | |
92b96797 FB |
308 | |
309 | //Data | |
b902fbfe AM |
310 | u8 bySignalField_ab; |
311 | u8 byServiceField_ab; | |
3eaca0d2 AM |
312 | u16 wTransmitLength_ab; |
313 | u16 wDuration_ab; | |
314 | u16 wTimeStampOff_ab; | |
92b96797 | 315 | |
193a823c | 316 | } TX_NAF_AB_BEACON, *PTX_NAF_AB_BEACON; |
92b96797 FB |
317 | |
318 | typedef struct tagSTX_AF_G_RTS | |
319 | { | |
320 | //RsvTime | |
3eaca0d2 AM |
321 | u16 wRTSTxRrvTime_ba; |
322 | u16 wRTSTxRrvTime_aa; | |
323 | u16 wRTSTxRrvTime_bb; | |
324 | u16 wReserved2; | |
325 | u16 wTxRrvTime_b; | |
326 | u16 wTxRrvTime_a; | |
92b96797 FB |
327 | |
328 | //RTS | |
b902fbfe AM |
329 | u8 byRTSSignalField_b; |
330 | u8 byRTSServiceField_b; | |
3eaca0d2 | 331 | u16 wRTSTransmitLength_b; |
b902fbfe AM |
332 | u8 byRTSSignalField_a; |
333 | u8 byRTSServiceField_a; | |
3eaca0d2 AM |
334 | u16 wRTSTransmitLength_a; |
335 | u16 wRTSDuration_ba; | |
336 | u16 wRTSDuration_aa; | |
337 | u16 wRTSDuration_bb; | |
338 | u16 wReserved3; | |
339 | u16 wRTSDuration_ba_f0; | |
340 | u16 wRTSDuration_aa_f0; | |
341 | u16 wRTSDuration_ba_f1; | |
342 | u16 wRTSDuration_aa_f1; | |
92b96797 FB |
343 | SRTSDataF sRTS; |
344 | ||
345 | //Data | |
b902fbfe AM |
346 | u8 bySignalField_b; |
347 | u8 byServiceField_b; | |
3eaca0d2 | 348 | u16 wTransmitLength_b; |
b902fbfe AM |
349 | u8 bySignalField_a; |
350 | u8 byServiceField_a; | |
3eaca0d2 AM |
351 | u16 wTransmitLength_a; |
352 | u16 wDuration_b; | |
353 | u16 wDuration_a; | |
354 | u16 wDuration_a_f0; | |
355 | u16 wDuration_a_f1; | |
356 | u16 wTimeStampOff_b; | |
357 | u16 wTimeStampOff_a; | |
92b96797 | 358 | |
193a823c | 359 | } TX_AF_G_RTS, *PTX_AF_G_RTS; |
92b96797 | 360 | |
92b96797 FB |
361 | typedef struct tagSTX_AF_G_RTS_MIC |
362 | { | |
363 | //RsvTime | |
3eaca0d2 AM |
364 | u16 wRTSTxRrvTime_ba; |
365 | u16 wRTSTxRrvTime_aa; | |
366 | u16 wRTSTxRrvTime_bb; | |
367 | u16 wReserved2; | |
368 | u16 wTxRrvTime_b; | |
369 | u16 wTxRrvTime_a; | |
92b96797 FB |
370 | |
371 | SMICHDR sMICHDR; | |
372 | ||
373 | //RTS | |
b902fbfe AM |
374 | u8 byRTSSignalField_b; |
375 | u8 byRTSServiceField_b; | |
3eaca0d2 | 376 | u16 wRTSTransmitLength_b; |
b902fbfe AM |
377 | u8 byRTSSignalField_a; |
378 | u8 byRTSServiceField_a; | |
3eaca0d2 AM |
379 | u16 wRTSTransmitLength_a; |
380 | u16 wRTSDuration_ba; | |
381 | u16 wRTSDuration_aa; | |
382 | u16 wRTSDuration_bb; | |
383 | u16 wReserved3; | |
384 | u16 wRTSDuration_ba_f0; | |
385 | u16 wRTSDuration_aa_f0; | |
386 | u16 wRTSDuration_ba_f1; | |
387 | u16 wRTSDuration_aa_f1; | |
92b96797 FB |
388 | SRTSDataF sRTS; |
389 | ||
390 | //Data | |
b902fbfe AM |
391 | u8 bySignalField_b; |
392 | u8 byServiceField_b; | |
3eaca0d2 | 393 | u16 wTransmitLength_b; |
b902fbfe AM |
394 | u8 bySignalField_a; |
395 | u8 byServiceField_a; | |
3eaca0d2 AM |
396 | u16 wTransmitLength_a; |
397 | u16 wDuration_b; | |
398 | u16 wDuration_a; | |
399 | u16 wDuration_a_f0; | |
400 | u16 wDuration_a_f1; | |
401 | u16 wTimeStampOff_b; | |
402 | u16 wTimeStampOff_a; | |
92b96797 | 403 | |
193a823c | 404 | } TX_AF_G_RTS_MIC, *PTX_AF_G_RTS_MIC; |
92b96797 | 405 | |
92b96797 FB |
406 | typedef struct tagSTX_AF_G_CTS |
407 | { | |
408 | //RsvTime | |
3eaca0d2 AM |
409 | u16 wCTSTxRrvTime_ba; |
410 | u16 wReserved2; | |
411 | u16 wTxRrvTime_b; | |
412 | u16 wTxRrvTime_a; | |
92b96797 FB |
413 | |
414 | //CTS | |
b902fbfe AM |
415 | u8 byCTSSignalField_b; |
416 | u8 byCTSServiceField_b; | |
3eaca0d2 AM |
417 | u16 wCTSTransmitLength_b; |
418 | u16 wCTSDuration_ba; | |
419 | u16 wReserved3; | |
420 | u16 wCTSDuration_ba_f0; | |
421 | u16 wCTSDuration_ba_f1; | |
92b96797 FB |
422 | SCTSDataF sCTS; |
423 | ||
424 | //Data | |
b902fbfe AM |
425 | u8 bySignalField_b; |
426 | u8 byServiceField_b; | |
3eaca0d2 | 427 | u16 wTransmitLength_b; |
b902fbfe AM |
428 | u8 bySignalField_a; |
429 | u8 byServiceField_a; | |
3eaca0d2 AM |
430 | u16 wTransmitLength_a; |
431 | u16 wDuration_b; | |
432 | u16 wDuration_a; | |
433 | u16 wDuration_a_f0; | |
434 | u16 wDuration_a_f1; | |
435 | u16 wTimeStampOff_b; | |
436 | u16 wTimeStampOff_a; | |
92b96797 | 437 | |
193a823c | 438 | } TX_AF_G_CTS, *PTX_AF_G_CTS; |
92b96797 | 439 | |
92b96797 FB |
440 | typedef struct tagSTX_AF_G_CTS_MIC |
441 | { | |
442 | //RsvTime | |
3eaca0d2 AM |
443 | u16 wCTSTxRrvTime_ba; |
444 | u16 wReserved2; | |
445 | u16 wTxRrvTime_b; | |
446 | u16 wTxRrvTime_a; | |
92b96797 | 447 | |
92b96797 FB |
448 | SMICHDR sMICHDR; |
449 | ||
450 | //CTS | |
b902fbfe AM |
451 | u8 byCTSSignalField_b; |
452 | u8 byCTSServiceField_b; | |
3eaca0d2 AM |
453 | u16 wCTSTransmitLength_b; |
454 | u16 wCTSDuration_ba; | |
455 | u16 wReserved3; | |
456 | u16 wCTSDuration_ba_f0; | |
457 | u16 wCTSDuration_ba_f1; | |
92b96797 FB |
458 | SCTSDataF sCTS; |
459 | ||
460 | //Data | |
b902fbfe AM |
461 | u8 bySignalField_b; |
462 | u8 byServiceField_b; | |
3eaca0d2 | 463 | u16 wTransmitLength_b; |
b902fbfe AM |
464 | u8 bySignalField_a; |
465 | u8 byServiceField_a; | |
3eaca0d2 AM |
466 | u16 wTransmitLength_a; |
467 | u16 wDuration_b; | |
468 | u16 wDuration_a; | |
469 | u16 wDuration_a_f0; | |
470 | u16 wDuration_a_f1; | |
471 | u16 wTimeStampOff_b; | |
472 | u16 wTimeStampOff_a; | |
92b96797 | 473 | |
193a823c | 474 | } TX_AF_G_CTS_MIC, *PTX_AF_G_CTS_MIC; |
92b96797 | 475 | |
92b96797 FB |
476 | typedef struct tagSTX_AF_A_RTS |
477 | { | |
478 | //RsvTime | |
3eaca0d2 AM |
479 | u16 wRTSTxRrvTime_a; |
480 | u16 wTxRrvTime_a; | |
92b96797 FB |
481 | |
482 | //RTS | |
b902fbfe AM |
483 | u8 byRTSSignalField_a; |
484 | u8 byRTSServiceField_a; | |
3eaca0d2 AM |
485 | u16 wRTSTransmitLength_a; |
486 | u16 wRTSDuration_a; | |
487 | u16 wReserved2; | |
488 | u16 wRTSDuration_a_f0; | |
489 | u16 wRTSDuration_a_f1; | |
92b96797 FB |
490 | SRTSDataF sRTS; |
491 | ||
492 | //Data | |
b902fbfe AM |
493 | u8 bySignalField_a; |
494 | u8 byServiceField_a; | |
3eaca0d2 AM |
495 | u16 wTransmitLength_a; |
496 | u16 wDuration_a; | |
497 | u16 wTimeStampOff_a; | |
498 | u16 wDuration_a_f0; | |
499 | u16 wDuration_a_f1; | |
92b96797 | 500 | |
193a823c | 501 | } TX_AF_A_RTS, *PTX_AF_A_RTS; |
92b96797 | 502 | |
92b96797 FB |
503 | typedef struct tagSTX_AF_A_RTS_MIC |
504 | { | |
505 | //RsvTime | |
3eaca0d2 AM |
506 | u16 wRTSTxRrvTime_a; |
507 | u16 wTxRrvTime_a; | |
92b96797 FB |
508 | |
509 | SMICHDR sMICHDR; | |
510 | ||
511 | //RTS | |
b902fbfe AM |
512 | u8 byRTSSignalField_a; |
513 | u8 byRTSServiceField_a; | |
3eaca0d2 AM |
514 | u16 wRTSTransmitLength_a; |
515 | u16 wRTSDuration_a; | |
516 | u16 wReserved2; | |
517 | u16 wRTSDuration_a_f0; | |
518 | u16 wRTSDuration_a_f1; | |
92b96797 FB |
519 | SRTSDataF sRTS; |
520 | ||
521 | //Data | |
b902fbfe AM |
522 | u8 bySignalField_a; |
523 | u8 byServiceField_a; | |
3eaca0d2 AM |
524 | u16 wTransmitLength_a; |
525 | u16 wDuration_a; | |
526 | u16 wTimeStampOff_a; | |
527 | u16 wDuration_a_f0; | |
528 | u16 wDuration_a_f1; | |
92b96797 | 529 | |
193a823c | 530 | } TX_AF_A_RTS_MIC, *PTX_AF_A_RTS_MIC; |
92b96797 | 531 | |
92b96797 FB |
532 | typedef struct tagSTX_AF_A_CTS |
533 | { | |
534 | //RsvTime | |
3eaca0d2 AM |
535 | u16 wReserved2; |
536 | u16 wTxRrvTime_a; | |
92b96797 FB |
537 | |
538 | //Data | |
b902fbfe AM |
539 | u8 bySignalField_a; |
540 | u8 byServiceField_a; | |
3eaca0d2 AM |
541 | u16 wTransmitLength_a; |
542 | u16 wDuration_a; | |
543 | u16 wTimeStampOff_a; | |
544 | u16 wDuration_a_f0; | |
545 | u16 wDuration_a_f1; | |
92b96797 | 546 | |
193a823c | 547 | } TX_AF_A_CTS, *PTX_AF_A_CTS; |
92b96797 | 548 | |
92b96797 FB |
549 | typedef struct tagSTX_AF_A_CTS_MIC |
550 | { | |
551 | //RsvTime | |
3eaca0d2 AM |
552 | u16 wReserved2; |
553 | u16 wTxRrvTime_a; | |
92b96797 FB |
554 | |
555 | SMICHDR sMICHDR; | |
556 | ||
557 | //Data | |
b902fbfe AM |
558 | u8 bySignalField_a; |
559 | u8 byServiceField_a; | |
3eaca0d2 AM |
560 | u16 wTransmitLength_a; |
561 | u16 wDuration_a; | |
562 | u16 wTimeStampOff_a; | |
563 | u16 wDuration_a_f0; | |
564 | u16 wDuration_a_f1; | |
92b96797 | 565 | |
193a823c | 566 | } TX_AF_A_CTS_MIC, *PTX_AF_A_CTS_MIC; |
92b96797 | 567 | |
92b96797 FB |
568 | // |
569 | // union with all of the TX Buffer Type | |
570 | // | |
571 | typedef union tagUTX_BUFFER_CONTAINER | |
572 | { | |
573 | TX_NAF_G_RTS RTS_G; | |
574 | TX_NAF_G_RTS_MIC RTS_G_MIC; | |
575 | TX_NAF_G_CTS CTS_G; | |
576 | TX_NAF_G_CTS_MIC CTS_G_MIC; | |
577 | //TX_NAF_G_BEACON Beacon_G; | |
578 | TX_NAF_AB_RTS RTS_AB; | |
579 | TX_NAF_AB_RTS_MIC RTS_AB_MIC; | |
580 | TX_NAF_AB_CTS CTS_AB; | |
581 | TX_NAF_AB_CTS_MIC CTS_AB_MIC; | |
582 | //TX_NAF_AB_BEACON Beacon_AB; | |
583 | TX_AF_G_RTS RTS_G_AutoFB; | |
584 | TX_AF_G_RTS_MIC RTS_G_AutoFB_MIC; | |
585 | TX_AF_G_CTS CTS_G_AutoFB; | |
586 | TX_AF_G_CTS_MIC CTS_G_AutoFB_MIC; | |
587 | TX_AF_A_RTS RTS_A_AutoFB; | |
588 | TX_AF_A_RTS_MIC RTS_A_AutoFB_MIC; | |
589 | TX_AF_A_CTS CTS_A_AutoFB; | |
590 | TX_AF_A_CTS_MIC CTS_A_AutoFB_MIC; | |
591 | ||
193a823c | 592 | } TX_BUFFER_CONTAINER, *PTX_BUFFER_CONTAINER; |
92b96797 | 593 | |
92b96797 FB |
594 | // |
595 | // Remote NDIS message format | |
596 | // | |
597 | typedef struct tagSTX_BUFFER | |
598 | { | |
b902fbfe AM |
599 | u8 byType; |
600 | u8 byPKTNO; | |
3eaca0d2 | 601 | u16 wTxByteCount; |
92b96797 | 602 | |
ed74395c | 603 | u32 adwTxKey[4]; |
3eaca0d2 AM |
604 | u16 wFIFOCtl; |
605 | u16 wTimeStamp; | |
606 | u16 wFragCtl; | |
607 | u16 wReserved; | |
92b96797 | 608 | |
92b96797 FB |
609 | // Actual message |
610 | TX_BUFFER_CONTAINER BufferHeader; | |
611 | ||
193a823c | 612 | } TX_BUFFER, *PTX_BUFFER; |
92b96797 | 613 | |
92b96797 FB |
614 | // |
615 | // Remote NDIS message format | |
616 | // | |
617 | typedef struct tagSBEACON_BUFFER | |
618 | { | |
b902fbfe AM |
619 | u8 byType; |
620 | u8 byPKTNO; | |
3eaca0d2 | 621 | u16 wTxByteCount; |
92b96797 | 622 | |
3eaca0d2 AM |
623 | u16 wFIFOCtl; |
624 | u16 wTimeStamp; | |
92b96797 FB |
625 | |
626 | // Actual message | |
627 | TX_BUFFER_CONTAINER BufferHeader; | |
628 | ||
193a823c | 629 | } BEACON_BUFFER, *PBEACON_BUFFER; |
92b96797 | 630 | |
d56131de MP |
631 | void vDMA0_tx_80211(struct vnt_private *, struct sk_buff *skb); |
632 | int nsDMA_tx_packet(struct vnt_private *, u32 uDMAIdx, struct sk_buff *skb); | |
633 | CMD_STATUS csMgmt_xmit(struct vnt_private *, struct vnt_tx_mgmt *); | |
634 | CMD_STATUS csBeacon_xmit(struct vnt_private *, struct vnt_tx_mgmt *); | |
635 | int bRelayPacketSend(struct vnt_private *, u8 *pbySkbData, u32 uDataLen, | |
636 | u32 uNodeIndex); | |
92b96797 | 637 | |
e7b07d1d | 638 | #endif /* __RXTX_H__ */ |