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.
36 /*--------------------- Export Definitions -------------------------*/
38 /*--------------------- Export Classes ----------------------------*/
43 typedef struct tagSRTSDataF {
48 } SRTSDataF, *PSRTSDataF;
53 typedef struct tagSCTSDataF {
58 } SCTSDataF, *PSCTSDataF;
63 typedef struct tagSMICHDR {
70 typedef struct tagSTX_NAF_G_RTS
73 WORD wRTSTxRrvTime_ba;
74 WORD wRTSTxRrvTime_aa;
75 WORD wRTSTxRrvTime_bb;
81 BYTE byRTSSignalField_b;
82 BYTE byRTSServiceField_b;
83 WORD wRTSTransmitLength_b;
84 BYTE byRTSSignalField_a;
85 BYTE byRTSServiceField_a;
86 WORD wRTSTransmitLength_a;
95 BYTE byServiceField_b;
96 WORD wTransmitLength_b;
98 BYTE byServiceField_a;
99 WORD wTransmitLength_a;
102 WORD wTimeStampOff_b;
103 WORD wTimeStampOff_a;
105 } TX_NAF_G_RTS, *PTX_NAF_G_RTS;
107 typedef struct tagSTX_NAF_G_RTS_MIC
110 WORD wRTSTxRrvTime_ba;
111 WORD wRTSTxRrvTime_aa;
112 WORD wRTSTxRrvTime_bb;
120 BYTE byRTSSignalField_b;
121 BYTE byRTSServiceField_b;
122 WORD wRTSTransmitLength_b;
123 BYTE byRTSSignalField_a;
124 BYTE byRTSServiceField_a;
125 WORD wRTSTransmitLength_a;
126 WORD wRTSDuration_ba;
127 WORD wRTSDuration_aa;
128 WORD wRTSDuration_bb;
133 BYTE bySignalField_b;
134 BYTE byServiceField_b;
135 WORD wTransmitLength_b;
136 BYTE bySignalField_a;
137 BYTE byServiceField_a;
138 WORD wTransmitLength_a;
141 WORD wTimeStampOff_b;
142 WORD wTimeStampOff_a;
144 } TX_NAF_G_RTS_MIC, *PTX_NAF_G_RTS_MIC;
146 typedef struct tagSTX_NAF_G_CTS
149 WORD wCTSTxRrvTime_ba;
155 BYTE byCTSSignalField_b;
156 BYTE byCTSServiceField_b;
157 WORD wCTSTransmitLength_b;
158 WORD wCTSDuration_ba;
163 BYTE bySignalField_b;
164 BYTE byServiceField_b;
165 WORD wTransmitLength_b;
166 BYTE bySignalField_a;
167 BYTE byServiceField_a;
168 WORD wTransmitLength_a;
171 WORD wTimeStampOff_b;
172 WORD wTimeStampOff_a;
174 } TX_NAF_G_CTS, *PTX_NAF_G_CTS;
177 typedef struct tagSTX_NAF_G_CTS_MIC
180 WORD wCTSTxRrvTime_ba;
189 BYTE byCTSSignalField_b;
190 BYTE byCTSServiceField_b;
191 WORD wCTSTransmitLength_b;
192 WORD wCTSDuration_ba;
197 BYTE bySignalField_b;
198 BYTE byServiceField_b;
199 WORD wTransmitLength_b;
200 BYTE bySignalField_a;
201 BYTE byServiceField_a;
202 WORD wTransmitLength_a;
205 WORD wTimeStampOff_b;
206 WORD wTimeStampOff_a;
208 } TX_NAF_G_CTS_MIC, *PTX_NAF_G_CTS_MIC;
211 typedef struct tagSTX_NAF_G_BEACON
217 BYTE byCTSSignalField_b;
218 BYTE byCTSServiceField_b;
219 WORD wCTSTransmitLength_b;
220 WORD wCTSDuration_ba;
225 BYTE bySignalField_a;
226 BYTE byServiceField_a;
227 WORD wTransmitLength_a;
229 WORD wTimeStampOff_a;
232 } TX_NAF_G_BEACON, *PTX_NAF_G_BEACON;
235 typedef struct tagSTX_NAF_AB_RTS
238 WORD wRTSTxRrvTime_ab;
242 BYTE byRTSSignalField_ab;
243 BYTE byRTSServiceField_ab;
244 WORD wRTSTransmitLength_ab;
245 WORD wRTSDuration_ab;
250 BYTE bySignalField_ab;
251 BYTE byServiceField_ab;
252 WORD wTransmitLength_ab;
254 WORD wTimeStampOff_ab;
257 } TX_NAF_AB_RTS, *PTX_NAF_AB_RTS;
260 typedef struct tagSTX_NAF_AB_RTS_MIC
263 WORD wRTSTxRrvTime_ab;
269 BYTE byRTSSignalField_ab;
270 BYTE byRTSServiceField_ab;
271 WORD wRTSTransmitLength_ab;
272 WORD wRTSDuration_ab;
277 BYTE bySignalField_ab;
278 BYTE byServiceField_ab;
279 WORD wTransmitLength_ab;
281 WORD wTimeStampOff_ab;
284 } TX_NAF_AB_RTS_MIC, *PTX_NAF_AB_RTS_MIC;
288 typedef struct tagSTX_NAF_AB_CTS
295 BYTE bySignalField_ab;
296 BYTE byServiceField_ab;
297 WORD wTransmitLength_ab;
299 WORD wTimeStampOff_ab;
301 } TX_NAF_AB_CTS, *PTX_NAF_AB_CTS;
303 typedef struct tagSTX_NAF_AB_CTS_MIC
312 BYTE bySignalField_ab;
313 BYTE byServiceField_ab;
314 WORD wTransmitLength_ab;
316 WORD wTimeStampOff_ab;
318 } TX_NAF_AB_CTS_MIC, *PTX_NAF_AB_CTS_MIC;
321 typedef struct tagSTX_NAF_AB_BEACON
327 BYTE bySignalField_ab;
328 BYTE byServiceField_ab;
329 WORD wTransmitLength_ab;
331 WORD wTimeStampOff_ab;
333 } TX_NAF_AB_BEACON, *PTX_NAF_AB_BEACON;
335 typedef struct tagSTX_AF_G_RTS
338 WORD wRTSTxRrvTime_ba;
339 WORD wRTSTxRrvTime_aa;
340 WORD wRTSTxRrvTime_bb;
346 BYTE byRTSSignalField_b;
347 BYTE byRTSServiceField_b;
348 WORD wRTSTransmitLength_b;
349 BYTE byRTSSignalField_a;
350 BYTE byRTSServiceField_a;
351 WORD wRTSTransmitLength_a;
352 WORD wRTSDuration_ba;
353 WORD wRTSDuration_aa;
354 WORD wRTSDuration_bb;
356 WORD wRTSDuration_ba_f0;
357 WORD wRTSDuration_aa_f0;
358 WORD wRTSDuration_ba_f1;
359 WORD wRTSDuration_aa_f1;
363 BYTE bySignalField_b;
364 BYTE byServiceField_b;
365 WORD wTransmitLength_b;
366 BYTE bySignalField_a;
367 BYTE byServiceField_a;
368 WORD wTransmitLength_a;
373 WORD wTimeStampOff_b;
374 WORD wTimeStampOff_a;
376 } TX_AF_G_RTS, *PTX_AF_G_RTS;
379 typedef struct tagSTX_AF_G_RTS_MIC
382 WORD wRTSTxRrvTime_ba;
383 WORD wRTSTxRrvTime_aa;
384 WORD wRTSTxRrvTime_bb;
392 BYTE byRTSSignalField_b;
393 BYTE byRTSServiceField_b;
394 WORD wRTSTransmitLength_b;
395 BYTE byRTSSignalField_a;
396 BYTE byRTSServiceField_a;
397 WORD wRTSTransmitLength_a;
398 WORD wRTSDuration_ba;
399 WORD wRTSDuration_aa;
400 WORD wRTSDuration_bb;
402 WORD wRTSDuration_ba_f0;
403 WORD wRTSDuration_aa_f0;
404 WORD wRTSDuration_ba_f1;
405 WORD wRTSDuration_aa_f1;
409 BYTE bySignalField_b;
410 BYTE byServiceField_b;
411 WORD wTransmitLength_b;
412 BYTE bySignalField_a;
413 BYTE byServiceField_a;
414 WORD wTransmitLength_a;
419 WORD wTimeStampOff_b;
420 WORD wTimeStampOff_a;
422 } TX_AF_G_RTS_MIC, *PTX_AF_G_RTS_MIC;
426 typedef struct tagSTX_AF_G_CTS
429 WORD wCTSTxRrvTime_ba;
435 BYTE byCTSSignalField_b;
436 BYTE byCTSServiceField_b;
437 WORD wCTSTransmitLength_b;
438 WORD wCTSDuration_ba;
440 WORD wCTSDuration_ba_f0;
441 WORD wCTSDuration_ba_f1;
445 BYTE bySignalField_b;
446 BYTE byServiceField_b;
447 WORD wTransmitLength_b;
448 BYTE bySignalField_a;
449 BYTE byServiceField_a;
450 WORD wTransmitLength_a;
455 WORD wTimeStampOff_b;
456 WORD wTimeStampOff_a;
458 } TX_AF_G_CTS, *PTX_AF_G_CTS;
461 typedef struct tagSTX_AF_G_CTS_MIC
464 WORD wCTSTxRrvTime_ba;
473 BYTE byCTSSignalField_b;
474 BYTE byCTSServiceField_b;
475 WORD wCTSTransmitLength_b;
476 WORD wCTSDuration_ba;
478 WORD wCTSDuration_ba_f0;
479 WORD wCTSDuration_ba_f1;
483 BYTE bySignalField_b;
484 BYTE byServiceField_b;
485 WORD wTransmitLength_b;
486 BYTE bySignalField_a;
487 BYTE byServiceField_a;
488 WORD wTransmitLength_a;
493 WORD wTimeStampOff_b;
494 WORD wTimeStampOff_a;
496 } TX_AF_G_CTS_MIC, *PTX_AF_G_CTS_MIC;
500 typedef struct tagSTX_AF_A_RTS
503 WORD wRTSTxRrvTime_a;
507 BYTE byRTSSignalField_a;
508 BYTE byRTSServiceField_a;
509 WORD wRTSTransmitLength_a;
512 WORD wRTSDuration_a_f0;
513 WORD wRTSDuration_a_f1;
517 BYTE bySignalField_a;
518 BYTE byServiceField_a;
519 WORD wTransmitLength_a;
521 WORD wTimeStampOff_a;
525 } TX_AF_A_RTS, *PTX_AF_A_RTS;
528 typedef struct tagSTX_AF_A_RTS_MIC
531 WORD wRTSTxRrvTime_a;
537 BYTE byRTSSignalField_a;
538 BYTE byRTSServiceField_a;
539 WORD wRTSTransmitLength_a;
542 WORD wRTSDuration_a_f0;
543 WORD wRTSDuration_a_f1;
547 BYTE bySignalField_a;
548 BYTE byServiceField_a;
549 WORD wTransmitLength_a;
551 WORD wTimeStampOff_a;
555 } TX_AF_A_RTS_MIC, *PTX_AF_A_RTS_MIC;
559 typedef struct tagSTX_AF_A_CTS
566 BYTE bySignalField_a;
567 BYTE byServiceField_a;
568 WORD wTransmitLength_a;
570 WORD wTimeStampOff_a;
574 } TX_AF_A_CTS, *PTX_AF_A_CTS;
577 typedef struct tagSTX_AF_A_CTS_MIC
586 BYTE bySignalField_a;
587 BYTE byServiceField_a;
588 WORD wTransmitLength_a;
590 WORD wTimeStampOff_a;
594 } TX_AF_A_CTS_MIC, *PTX_AF_A_CTS_MIC;
598 // union with all of the TX Buffer Type
600 typedef union tagUTX_BUFFER_CONTAINER
603 TX_NAF_G_RTS_MIC RTS_G_MIC;
605 TX_NAF_G_CTS_MIC CTS_G_MIC;
606 //TX_NAF_G_BEACON Beacon_G;
607 TX_NAF_AB_RTS RTS_AB;
608 TX_NAF_AB_RTS_MIC RTS_AB_MIC;
609 TX_NAF_AB_CTS CTS_AB;
610 TX_NAF_AB_CTS_MIC CTS_AB_MIC;
611 //TX_NAF_AB_BEACON Beacon_AB;
612 TX_AF_G_RTS RTS_G_AutoFB;
613 TX_AF_G_RTS_MIC RTS_G_AutoFB_MIC;
614 TX_AF_G_CTS CTS_G_AutoFB;
615 TX_AF_G_CTS_MIC CTS_G_AutoFB_MIC;
616 TX_AF_A_RTS RTS_A_AutoFB;
617 TX_AF_A_RTS_MIC RTS_A_AutoFB_MIC;
618 TX_AF_A_CTS CTS_A_AutoFB;
619 TX_AF_A_CTS_MIC CTS_A_AutoFB_MIC;
621 } TX_BUFFER_CONTAINER, *PTX_BUFFER_CONTAINER;
625 // Remote NDIS message format
627 typedef struct tagSTX_BUFFER
641 TX_BUFFER_CONTAINER BufferHeader;
643 } TX_BUFFER, *PTX_BUFFER;
647 // Remote NDIS message format
649 typedef struct tagSBEACON_BUFFER
659 TX_BUFFER_CONTAINER BufferHeader;
661 } BEACON_BUFFER, *PBEACON_BUFFER;
664 /*--------------------- Export Variables --------------------------*/
666 /*--------------------- Export Functions --------------------------*/
669 bPacketToWirelessUsb(
674 unsigned int cbPayloadSize,
675 unsigned int uDMAIdx,
676 PSEthernetHeader psEthHeader,
678 PSKeyItem pTransmitKey,
679 unsigned int uNodeIndex,
681 unsigned int *pcbHeaderLen,
682 unsigned int *pcbTotalLen
685 void vDMA0_tx_80211(PSDevice pDevice, struct sk_buff *skb);
686 int nsDMA_tx_packet(PSDevice pDevice,
687 unsigned int uDMAIdx,
688 struct sk_buff *skb);
689 CMD_STATUS csMgmt_xmit(PSDevice pDevice, PSTxMgmtPacket pPacket);
690 CMD_STATUS csBeacon_xmit(PSDevice pDevice, PSTxMgmtPacket pPacket);
691 BOOL bRelayPacketSend(PSDevice pDevice, PBYTE pbySkbData,
692 unsigned int uDataLen, unsigned int uNodeIndex);
694 #endif /* __RXTX_H__ */