2 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
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.
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.
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.
38 typedef struct tagSRTSDataF {
43 } SRTSDataF, *PSRTSDataF;
48 typedef struct tagSCTSDataF {
53 } SCTSDataF, *PSCTSDataF;
58 typedef struct tagSMICHDR {
64 typedef struct tagSTX_NAF_G_RTS
75 u8 byRTSSignalField_b;
76 u8 byRTSServiceField_b;
77 u16 wRTSTransmitLength_b;
78 u8 byRTSSignalField_a;
79 u8 byRTSServiceField_a;
80 u16 wRTSTransmitLength_a;
90 u16 wTransmitLength_b;
93 u16 wTransmitLength_a;
99 } TX_NAF_G_RTS, *PTX_NAF_G_RTS;
101 typedef struct tagSTX_NAF_G_RTS_MIC
104 u16 wRTSTxRrvTime_ba;
105 u16 wRTSTxRrvTime_aa;
106 u16 wRTSTxRrvTime_bb;
114 u8 byRTSSignalField_b;
115 u8 byRTSServiceField_b;
116 u16 wRTSTransmitLength_b;
117 u8 byRTSSignalField_a;
118 u8 byRTSServiceField_a;
119 u16 wRTSTransmitLength_a;
129 u16 wTransmitLength_b;
132 u16 wTransmitLength_a;
138 } TX_NAF_G_RTS_MIC, *PTX_NAF_G_RTS_MIC;
140 typedef struct tagSTX_NAF_G_CTS
143 u16 wCTSTxRrvTime_ba;
149 u8 byCTSSignalField_b;
150 u8 byCTSServiceField_b;
151 u16 wCTSTransmitLength_b;
159 u16 wTransmitLength_b;
162 u16 wTransmitLength_a;
168 } TX_NAF_G_CTS, *PTX_NAF_G_CTS;
170 typedef struct tagSTX_NAF_G_CTS_MIC
173 u16 wCTSTxRrvTime_ba;
181 u8 byCTSSignalField_b;
182 u8 byCTSServiceField_b;
183 u16 wCTSTransmitLength_b;
191 u16 wTransmitLength_b;
194 u16 wTransmitLength_a;
200 } TX_NAF_G_CTS_MIC, *PTX_NAF_G_CTS_MIC;
202 typedef struct tagSTX_NAF_G_BEACON
208 u8 byCTSSignalField_b;
209 u8 byCTSServiceField_b;
210 u16 wCTSTransmitLength_b;
218 u16 wTransmitLength_a;
222 } TX_NAF_G_BEACON, *PTX_NAF_G_BEACON;
224 typedef struct tagSTX_NAF_AB_RTS
227 u16 wRTSTxRrvTime_ab;
231 u8 byRTSSignalField_ab;
232 u8 byRTSServiceField_ab;
233 u16 wRTSTransmitLength_ab;
240 u8 byServiceField_ab;
241 u16 wTransmitLength_ab;
243 u16 wTimeStampOff_ab;
245 } TX_NAF_AB_RTS, *PTX_NAF_AB_RTS;
247 typedef struct tagSTX_NAF_AB_RTS_MIC
250 u16 wRTSTxRrvTime_ab;
256 u8 byRTSSignalField_ab;
257 u8 byRTSServiceField_ab;
258 u16 wRTSTransmitLength_ab;
265 u8 byServiceField_ab;
266 u16 wTransmitLength_ab;
268 u16 wTimeStampOff_ab;
270 } TX_NAF_AB_RTS_MIC, *PTX_NAF_AB_RTS_MIC;
272 typedef struct tagSTX_NAF_AB_CTS
280 u8 byServiceField_ab;
281 u16 wTransmitLength_ab;
283 u16 wTimeStampOff_ab;
285 } TX_NAF_AB_CTS, *PTX_NAF_AB_CTS;
287 typedef struct tagSTX_NAF_AB_CTS_MIC
297 u8 byServiceField_ab;
298 u16 wTransmitLength_ab;
300 u16 wTimeStampOff_ab;
302 } TX_NAF_AB_CTS_MIC, *PTX_NAF_AB_CTS_MIC;
304 typedef struct tagSTX_NAF_AB_BEACON
311 u8 byServiceField_ab;
312 u16 wTransmitLength_ab;
314 u16 wTimeStampOff_ab;
316 } TX_NAF_AB_BEACON, *PTX_NAF_AB_BEACON;
318 typedef struct tagSTX_AF_G_RTS
321 u16 wRTSTxRrvTime_ba;
322 u16 wRTSTxRrvTime_aa;
323 u16 wRTSTxRrvTime_bb;
329 u8 byRTSSignalField_b;
330 u8 byRTSServiceField_b;
331 u16 wRTSTransmitLength_b;
332 u8 byRTSSignalField_a;
333 u8 byRTSServiceField_a;
334 u16 wRTSTransmitLength_a;
339 u16 wRTSDuration_ba_f0;
340 u16 wRTSDuration_aa_f0;
341 u16 wRTSDuration_ba_f1;
342 u16 wRTSDuration_aa_f1;
348 u16 wTransmitLength_b;
351 u16 wTransmitLength_a;
359 } TX_AF_G_RTS, *PTX_AF_G_RTS;
361 typedef struct tagSTX_AF_G_RTS_MIC
364 u16 wRTSTxRrvTime_ba;
365 u16 wRTSTxRrvTime_aa;
366 u16 wRTSTxRrvTime_bb;
374 u8 byRTSSignalField_b;
375 u8 byRTSServiceField_b;
376 u16 wRTSTransmitLength_b;
377 u8 byRTSSignalField_a;
378 u8 byRTSServiceField_a;
379 u16 wRTSTransmitLength_a;
384 u16 wRTSDuration_ba_f0;
385 u16 wRTSDuration_aa_f0;
386 u16 wRTSDuration_ba_f1;
387 u16 wRTSDuration_aa_f1;
393 u16 wTransmitLength_b;
396 u16 wTransmitLength_a;
404 } TX_AF_G_RTS_MIC, *PTX_AF_G_RTS_MIC;
406 typedef struct tagSTX_AF_G_CTS
409 u16 wCTSTxRrvTime_ba;
415 u8 byCTSSignalField_b;
416 u8 byCTSServiceField_b;
417 u16 wCTSTransmitLength_b;
420 u16 wCTSDuration_ba_f0;
421 u16 wCTSDuration_ba_f1;
427 u16 wTransmitLength_b;
430 u16 wTransmitLength_a;
438 } TX_AF_G_CTS, *PTX_AF_G_CTS;
440 typedef struct tagSTX_AF_G_CTS_MIC
443 u16 wCTSTxRrvTime_ba;
451 u8 byCTSSignalField_b;
452 u8 byCTSServiceField_b;
453 u16 wCTSTransmitLength_b;
456 u16 wCTSDuration_ba_f0;
457 u16 wCTSDuration_ba_f1;
463 u16 wTransmitLength_b;
466 u16 wTransmitLength_a;
474 } TX_AF_G_CTS_MIC, *PTX_AF_G_CTS_MIC;
476 typedef struct tagSTX_AF_A_RTS
483 u8 byRTSSignalField_a;
484 u8 byRTSServiceField_a;
485 u16 wRTSTransmitLength_a;
488 u16 wRTSDuration_a_f0;
489 u16 wRTSDuration_a_f1;
495 u16 wTransmitLength_a;
501 } TX_AF_A_RTS, *PTX_AF_A_RTS;
503 typedef struct tagSTX_AF_A_RTS_MIC
512 u8 byRTSSignalField_a;
513 u8 byRTSServiceField_a;
514 u16 wRTSTransmitLength_a;
517 u16 wRTSDuration_a_f0;
518 u16 wRTSDuration_a_f1;
524 u16 wTransmitLength_a;
530 } TX_AF_A_RTS_MIC, *PTX_AF_A_RTS_MIC;
532 typedef struct tagSTX_AF_A_CTS
541 u16 wTransmitLength_a;
547 } TX_AF_A_CTS, *PTX_AF_A_CTS;
549 typedef struct tagSTX_AF_A_CTS_MIC
560 u16 wTransmitLength_a;
566 } TX_AF_A_CTS_MIC, *PTX_AF_A_CTS_MIC;
569 // union with all of the TX Buffer Type
571 typedef union tagUTX_BUFFER_CONTAINER
574 TX_NAF_G_RTS_MIC RTS_G_MIC;
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;
592 } TX_BUFFER_CONTAINER, *PTX_BUFFER_CONTAINER;
595 // Remote NDIS message format
597 typedef struct tagSTX_BUFFER
610 TX_BUFFER_CONTAINER BufferHeader;
612 } TX_BUFFER, *PTX_BUFFER;
615 // Remote NDIS message format
617 typedef struct tagSBEACON_BUFFER
627 TX_BUFFER_CONTAINER BufferHeader;
629 } BEACON_BUFFER, *PBEACON_BUFFER;
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,
638 #endif /* __RXTX_H__ */