| /* | 
 |  * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. | 
 |  * All rights reserved. | 
 |  * | 
 |  * This program is free software; you can redistribute it and/or modify | 
 |  * it under the terms of the GNU General Public License as published by | 
 |  * the Free Software Foundation; either version 2 of the License, or | 
 |  * (at your option) any later version. | 
 |  * | 
 |  * This program is distributed in the hope that it will be useful, | 
 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
 |  * GNU General Public License for more details. | 
 |  * | 
 |  * You should have received a copy of the GNU General Public License along | 
 |  * with this program; if not, write to the Free Software Foundation, Inc., | 
 |  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | 
 |  * | 
 |  * File: rxtx.h | 
 |  * | 
 |  * Purpose: | 
 |  * | 
 |  * Author: Jerry Chen | 
 |  * | 
 |  * Date: Jun. 27, 2002 | 
 |  * | 
 |  */ | 
 |  | 
 | #ifndef __RXTX_H__ | 
 | #define __RXTX_H__ | 
 |  | 
 | #include "ttype.h" | 
 | #include "device.h" | 
 | #include "wcmd.h" | 
 |  | 
 | /*---------------------  Export Definitions -------------------------*/ | 
 |  | 
 | /*---------------------  Export Classes  ----------------------------*/ | 
 |  | 
 | // | 
 | // RTS buffer header | 
 | // | 
 | typedef struct tagSRTSDataF { | 
 |     WORD    wFrameControl; | 
 |     WORD    wDurationID; | 
 |     BYTE    abyRA[ETH_ALEN]; | 
 |     BYTE    abyTA[ETH_ALEN]; | 
 | } SRTSDataF, *PSRTSDataF; | 
 |  | 
 | // | 
 | // CTS buffer header | 
 | // | 
 | typedef struct tagSCTSDataF { | 
 |     WORD    wFrameControl; | 
 |     WORD    wDurationID; | 
 |     BYTE    abyRA[ETH_ALEN]; | 
 |     WORD    wReserved; | 
 | } SCTSDataF, *PSCTSDataF; | 
 |  | 
 | // | 
 | // MICHDR data header | 
 | // | 
 | typedef struct tagSMICHDR { | 
 |     DWORD   adwHDR0[4]; | 
 |     DWORD   adwHDR1[4]; | 
 |     DWORD   adwHDR2[4]; | 
 | } SMICHDR, *PSMICHDR; | 
 |  | 
 |  | 
 | typedef struct tagSTX_NAF_G_RTS | 
 | { | 
 |     //RsvTime | 
 |     WORD            wRTSTxRrvTime_ba; | 
 |     WORD            wRTSTxRrvTime_aa; | 
 |     WORD            wRTSTxRrvTime_bb; | 
 |     WORD            wReserved2; | 
 |     WORD            wTxRrvTime_b; | 
 |     WORD            wTxRrvTime_a; | 
 |  | 
 |     //RTS | 
 |     BYTE            byRTSSignalField_b; | 
 |     BYTE            byRTSServiceField_b; | 
 |     WORD            wRTSTransmitLength_b; | 
 |     BYTE            byRTSSignalField_a; | 
 |     BYTE            byRTSServiceField_a; | 
 |     WORD            wRTSTransmitLength_a; | 
 |     WORD            wRTSDuration_ba; | 
 |     WORD            wRTSDuration_aa; | 
 |     WORD            wRTSDuration_bb; | 
 |     WORD            wReserved3; | 
 |     SRTSDataF       sRTS; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_b; | 
 |     BYTE            byServiceField_b; | 
 |     WORD            wTransmitLength_b; | 
 |     BYTE            bySignalField_a; | 
 |     BYTE            byServiceField_a; | 
 |     WORD            wTransmitLength_a; | 
 |     WORD            wDuration_b; | 
 |     WORD            wDuration_a; | 
 |     WORD            wTimeStampOff_b; | 
 |     WORD            wTimeStampOff_a; | 
 |  | 
 | } TX_NAF_G_RTS, *PTX_NAF_G_RTS; | 
 |  | 
 | typedef struct tagSTX_NAF_G_RTS_MIC | 
 | { | 
 |     //RsvTime | 
 |     WORD            wRTSTxRrvTime_ba; | 
 |     WORD            wRTSTxRrvTime_aa; | 
 |     WORD            wRTSTxRrvTime_bb; | 
 |     WORD            wReserved2; | 
 |     WORD            wTxRrvTime_b; | 
 |     WORD            wTxRrvTime_a; | 
 |  | 
 |     SMICHDR         sMICHDR; | 
 |  | 
 |     //RTS | 
 |     BYTE            byRTSSignalField_b; | 
 |     BYTE            byRTSServiceField_b; | 
 |     WORD            wRTSTransmitLength_b; | 
 |     BYTE            byRTSSignalField_a; | 
 |     BYTE            byRTSServiceField_a; | 
 |     WORD            wRTSTransmitLength_a; | 
 |     WORD            wRTSDuration_ba; | 
 |     WORD            wRTSDuration_aa; | 
 |     WORD            wRTSDuration_bb; | 
 |     WORD            wReserved3; | 
 |     SRTSDataF       sRTS; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_b; | 
 |     BYTE            byServiceField_b; | 
 |     WORD            wTransmitLength_b; | 
 |     BYTE            bySignalField_a; | 
 |     BYTE            byServiceField_a; | 
 |     WORD            wTransmitLength_a; | 
 |     WORD            wDuration_b; | 
 |     WORD            wDuration_a; | 
 |     WORD            wTimeStampOff_b; | 
 |     WORD            wTimeStampOff_a; | 
 |  | 
 | } TX_NAF_G_RTS_MIC, *PTX_NAF_G_RTS_MIC; | 
 |  | 
 | typedef struct tagSTX_NAF_G_CTS | 
 | { | 
 |     //RsvTime | 
 |     WORD            wCTSTxRrvTime_ba; | 
 |     WORD            wReserved2; | 
 |     WORD            wTxRrvTime_b; | 
 |     WORD            wTxRrvTime_a; | 
 |  | 
 |     //CTS | 
 |     BYTE            byCTSSignalField_b; | 
 |     BYTE            byCTSServiceField_b; | 
 |     WORD            wCTSTransmitLength_b; | 
 |     WORD            wCTSDuration_ba; | 
 |     WORD            wReserved3; | 
 |     SCTSDataF       sCTS; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_b; | 
 |     BYTE            byServiceField_b; | 
 |     WORD            wTransmitLength_b; | 
 |     BYTE            bySignalField_a; | 
 |     BYTE            byServiceField_a; | 
 |     WORD            wTransmitLength_a; | 
 |     WORD            wDuration_b; | 
 |     WORD            wDuration_a; | 
 |     WORD            wTimeStampOff_b; | 
 |     WORD            wTimeStampOff_a; | 
 |  | 
 | } TX_NAF_G_CTS, *PTX_NAF_G_CTS; | 
 |  | 
 |  | 
 | typedef struct tagSTX_NAF_G_CTS_MIC | 
 | { | 
 |     //RsvTime | 
 |     WORD            wCTSTxRrvTime_ba; | 
 |     WORD            wReserved2; | 
 |     WORD            wTxRrvTime_b; | 
 |     WORD            wTxRrvTime_a; | 
 |  | 
 |  | 
 |     SMICHDR         sMICHDR; | 
 |  | 
 |     //CTS | 
 |     BYTE            byCTSSignalField_b; | 
 |     BYTE            byCTSServiceField_b; | 
 |     WORD            wCTSTransmitLength_b; | 
 |     WORD            wCTSDuration_ba; | 
 |     WORD            wReserved3; | 
 |     SCTSDataF       sCTS; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_b; | 
 |     BYTE            byServiceField_b; | 
 |     WORD            wTransmitLength_b; | 
 |     BYTE            bySignalField_a; | 
 |     BYTE            byServiceField_a; | 
 |     WORD            wTransmitLength_a; | 
 |     WORD            wDuration_b; | 
 |     WORD            wDuration_a; | 
 |     WORD            wTimeStampOff_b; | 
 |     WORD            wTimeStampOff_a; | 
 |  | 
 | } TX_NAF_G_CTS_MIC, *PTX_NAF_G_CTS_MIC; | 
 |  | 
 |  | 
 | typedef struct tagSTX_NAF_G_BEACON | 
 | { | 
 |     WORD            wFIFOCtl; | 
 |     WORD            wTimeStamp; | 
 |  | 
 |     //CTS | 
 |     BYTE            byCTSSignalField_b; | 
 |     BYTE            byCTSServiceField_b; | 
 |     WORD            wCTSTransmitLength_b; | 
 |     WORD            wCTSDuration_ba; | 
 |     WORD            wReserved1; | 
 |     SCTSDataF       sCTS; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_a; | 
 |     BYTE            byServiceField_a; | 
 |     WORD            wTransmitLength_a; | 
 |     WORD            wDuration_a; | 
 |     WORD            wTimeStampOff_a; | 
 |  | 
 |  | 
 | } TX_NAF_G_BEACON, *PTX_NAF_G_BEACON; | 
 |  | 
 |  | 
 | typedef struct tagSTX_NAF_AB_RTS | 
 | { | 
 |     //RsvTime | 
 |     WORD            wRTSTxRrvTime_ab; | 
 |     WORD            wTxRrvTime_ab; | 
 |  | 
 |     //RTS | 
 |     BYTE            byRTSSignalField_ab; | 
 |     BYTE            byRTSServiceField_ab; | 
 |     WORD            wRTSTransmitLength_ab; | 
 |     WORD            wRTSDuration_ab; | 
 |     WORD            wReserved2; | 
 |     SRTSDataF       sRTS; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_ab; | 
 |     BYTE            byServiceField_ab; | 
 |     WORD            wTransmitLength_ab; | 
 |     WORD            wDuration_ab; | 
 |     WORD            wTimeStampOff_ab; | 
 |  | 
 |  | 
 | } TX_NAF_AB_RTS, *PTX_NAF_AB_RTS; | 
 |  | 
 |  | 
 | typedef struct tagSTX_NAF_AB_RTS_MIC | 
 | { | 
 |     //RsvTime | 
 |     WORD            wRTSTxRrvTime_ab; | 
 |     WORD            wTxRrvTime_ab; | 
 |  | 
 |     SMICHDR         sMICHDR; | 
 |  | 
 |     //RTS | 
 |     BYTE            byRTSSignalField_ab; | 
 |     BYTE            byRTSServiceField_ab; | 
 |     WORD            wRTSTransmitLength_ab; | 
 |     WORD            wRTSDuration_ab; | 
 |     WORD            wReserved2; | 
 |     SRTSDataF       sRTS; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_ab; | 
 |     BYTE            byServiceField_ab; | 
 |     WORD            wTransmitLength_ab; | 
 |     WORD            wDuration_ab; | 
 |     WORD            wTimeStampOff_ab; | 
 |  | 
 |  | 
 | } TX_NAF_AB_RTS_MIC, *PTX_NAF_AB_RTS_MIC; | 
 |  | 
 |  | 
 |  | 
 | typedef struct tagSTX_NAF_AB_CTS | 
 | { | 
 |     //RsvTime | 
 |     WORD            wReserved2; | 
 |     WORD            wTxRrvTime_ab; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_ab; | 
 |     BYTE            byServiceField_ab; | 
 |     WORD            wTransmitLength_ab; | 
 |     WORD            wDuration_ab; | 
 |     WORD            wTimeStampOff_ab; | 
 |  | 
 | } TX_NAF_AB_CTS, *PTX_NAF_AB_CTS; | 
 |  | 
 | typedef struct tagSTX_NAF_AB_CTS_MIC | 
 | { | 
 |     //RsvTime | 
 |     WORD            wReserved2; | 
 |     WORD            wTxRrvTime_ab; | 
 |  | 
 |     SMICHDR         sMICHDR; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_ab; | 
 |     BYTE            byServiceField_ab; | 
 |     WORD            wTransmitLength_ab; | 
 |     WORD            wDuration_ab; | 
 |     WORD            wTimeStampOff_ab; | 
 |  | 
 | } TX_NAF_AB_CTS_MIC, *PTX_NAF_AB_CTS_MIC; | 
 |  | 
 |  | 
 | typedef struct tagSTX_NAF_AB_BEACON | 
 | { | 
 |     WORD            wFIFOCtl; | 
 |     WORD            wTimeStamp; | 
 |  | 
 |    //Data | 
 |     BYTE            bySignalField_ab; | 
 |     BYTE            byServiceField_ab; | 
 |     WORD            wTransmitLength_ab; | 
 |     WORD            wDuration_ab; | 
 |     WORD            wTimeStampOff_ab; | 
 |  | 
 | } TX_NAF_AB_BEACON, *PTX_NAF_AB_BEACON; | 
 |  | 
 | typedef struct tagSTX_AF_G_RTS | 
 | { | 
 |     //RsvTime | 
 |     WORD            wRTSTxRrvTime_ba; | 
 |     WORD            wRTSTxRrvTime_aa; | 
 |     WORD            wRTSTxRrvTime_bb; | 
 |     WORD            wReserved2; | 
 |     WORD            wTxRrvTime_b; | 
 |     WORD            wTxRrvTime_a; | 
 |  | 
 |     //RTS | 
 |     BYTE            byRTSSignalField_b; | 
 |     BYTE            byRTSServiceField_b; | 
 |     WORD            wRTSTransmitLength_b; | 
 |     BYTE            byRTSSignalField_a; | 
 |     BYTE            byRTSServiceField_a; | 
 |     WORD            wRTSTransmitLength_a; | 
 |     WORD            wRTSDuration_ba; | 
 |     WORD            wRTSDuration_aa; | 
 |     WORD            wRTSDuration_bb; | 
 |     WORD            wReserved3; | 
 |     WORD            wRTSDuration_ba_f0; | 
 |     WORD            wRTSDuration_aa_f0; | 
 |     WORD            wRTSDuration_ba_f1; | 
 |     WORD            wRTSDuration_aa_f1; | 
 |     SRTSDataF       sRTS; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_b; | 
 |     BYTE            byServiceField_b; | 
 |     WORD            wTransmitLength_b; | 
 |     BYTE            bySignalField_a; | 
 |     BYTE            byServiceField_a; | 
 |     WORD            wTransmitLength_a; | 
 |     WORD            wDuration_b; | 
 |     WORD            wDuration_a; | 
 |     WORD            wDuration_a_f0; | 
 |     WORD            wDuration_a_f1; | 
 |     WORD            wTimeStampOff_b; | 
 |     WORD            wTimeStampOff_a; | 
 |  | 
 | } TX_AF_G_RTS, *PTX_AF_G_RTS; | 
 |  | 
 |  | 
 | typedef struct tagSTX_AF_G_RTS_MIC | 
 | { | 
 |     //RsvTime | 
 |     WORD            wRTSTxRrvTime_ba; | 
 |     WORD            wRTSTxRrvTime_aa; | 
 |     WORD            wRTSTxRrvTime_bb; | 
 |     WORD            wReserved2; | 
 |     WORD            wTxRrvTime_b; | 
 |     WORD            wTxRrvTime_a; | 
 |  | 
 |     SMICHDR         sMICHDR; | 
 |  | 
 |     //RTS | 
 |     BYTE            byRTSSignalField_b; | 
 |     BYTE            byRTSServiceField_b; | 
 |     WORD            wRTSTransmitLength_b; | 
 |     BYTE            byRTSSignalField_a; | 
 |     BYTE            byRTSServiceField_a; | 
 |     WORD            wRTSTransmitLength_a; | 
 |     WORD            wRTSDuration_ba; | 
 |     WORD            wRTSDuration_aa; | 
 |     WORD            wRTSDuration_bb; | 
 |     WORD            wReserved3; | 
 |     WORD            wRTSDuration_ba_f0; | 
 |     WORD            wRTSDuration_aa_f0; | 
 |     WORD            wRTSDuration_ba_f1; | 
 |     WORD            wRTSDuration_aa_f1; | 
 |     SRTSDataF       sRTS; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_b; | 
 |     BYTE            byServiceField_b; | 
 |     WORD            wTransmitLength_b; | 
 |     BYTE            bySignalField_a; | 
 |     BYTE            byServiceField_a; | 
 |     WORD            wTransmitLength_a; | 
 |     WORD            wDuration_b; | 
 |     WORD            wDuration_a; | 
 |     WORD            wDuration_a_f0; | 
 |     WORD            wDuration_a_f1; | 
 |     WORD            wTimeStampOff_b; | 
 |     WORD            wTimeStampOff_a; | 
 |  | 
 | } TX_AF_G_RTS_MIC, *PTX_AF_G_RTS_MIC; | 
 |  | 
 |  | 
 |  | 
 | typedef struct tagSTX_AF_G_CTS | 
 | { | 
 |     //RsvTime | 
 |     WORD            wCTSTxRrvTime_ba; | 
 |     WORD            wReserved2; | 
 |     WORD            wTxRrvTime_b; | 
 |     WORD            wTxRrvTime_a; | 
 |  | 
 |     //CTS | 
 |     BYTE            byCTSSignalField_b; | 
 |     BYTE            byCTSServiceField_b; | 
 |     WORD            wCTSTransmitLength_b; | 
 |     WORD            wCTSDuration_ba; | 
 |     WORD            wReserved3; | 
 |     WORD            wCTSDuration_ba_f0; | 
 |     WORD            wCTSDuration_ba_f1; | 
 |     SCTSDataF       sCTS; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_b; | 
 |     BYTE            byServiceField_b; | 
 |     WORD            wTransmitLength_b; | 
 |     BYTE            bySignalField_a; | 
 |     BYTE            byServiceField_a; | 
 |     WORD            wTransmitLength_a; | 
 |     WORD            wDuration_b; | 
 |     WORD            wDuration_a; | 
 |     WORD            wDuration_a_f0; | 
 |     WORD            wDuration_a_f1; | 
 |     WORD            wTimeStampOff_b; | 
 |     WORD            wTimeStampOff_a; | 
 |  | 
 | } TX_AF_G_CTS, *PTX_AF_G_CTS; | 
 |  | 
 |  | 
 | typedef struct tagSTX_AF_G_CTS_MIC | 
 | { | 
 |     //RsvTime | 
 |     WORD            wCTSTxRrvTime_ba; | 
 |     WORD            wReserved2; | 
 |     WORD            wTxRrvTime_b; | 
 |     WORD            wTxRrvTime_a; | 
 |  | 
 |  | 
 |     SMICHDR         sMICHDR; | 
 |  | 
 |     //CTS | 
 |     BYTE            byCTSSignalField_b; | 
 |     BYTE            byCTSServiceField_b; | 
 |     WORD            wCTSTransmitLength_b; | 
 |     WORD            wCTSDuration_ba; | 
 |     WORD            wReserved3; | 
 |     WORD            wCTSDuration_ba_f0; | 
 |     WORD            wCTSDuration_ba_f1; | 
 |     SCTSDataF       sCTS; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_b; | 
 |     BYTE            byServiceField_b; | 
 |     WORD            wTransmitLength_b; | 
 |     BYTE            bySignalField_a; | 
 |     BYTE            byServiceField_a; | 
 |     WORD            wTransmitLength_a; | 
 |     WORD            wDuration_b; | 
 |     WORD            wDuration_a; | 
 |     WORD            wDuration_a_f0; | 
 |     WORD            wDuration_a_f1; | 
 |     WORD            wTimeStampOff_b; | 
 |     WORD            wTimeStampOff_a; | 
 |  | 
 | } TX_AF_G_CTS_MIC, *PTX_AF_G_CTS_MIC; | 
 |  | 
 |  | 
 |  | 
 | typedef struct tagSTX_AF_A_RTS | 
 | { | 
 |     //RsvTime | 
 |     WORD            wRTSTxRrvTime_a; | 
 |     WORD            wTxRrvTime_a; | 
 |  | 
 |     //RTS | 
 |     BYTE            byRTSSignalField_a; | 
 |     BYTE            byRTSServiceField_a; | 
 |     WORD            wRTSTransmitLength_a; | 
 |     WORD            wRTSDuration_a; | 
 |     WORD            wReserved2; | 
 |     WORD            wRTSDuration_a_f0; | 
 |     WORD            wRTSDuration_a_f1; | 
 |     SRTSDataF       sRTS; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_a; | 
 |     BYTE            byServiceField_a; | 
 |     WORD            wTransmitLength_a; | 
 |     WORD            wDuration_a; | 
 |     WORD            wTimeStampOff_a; | 
 |     WORD            wDuration_a_f0; | 
 |     WORD            wDuration_a_f1; | 
 |  | 
 | } TX_AF_A_RTS, *PTX_AF_A_RTS; | 
 |  | 
 |  | 
 | typedef struct tagSTX_AF_A_RTS_MIC | 
 | { | 
 |     //RsvTime | 
 |     WORD            wRTSTxRrvTime_a; | 
 |     WORD            wTxRrvTime_a; | 
 |  | 
 |     SMICHDR         sMICHDR; | 
 |  | 
 |     //RTS | 
 |     BYTE            byRTSSignalField_a; | 
 |     BYTE            byRTSServiceField_a; | 
 |     WORD            wRTSTransmitLength_a; | 
 |     WORD            wRTSDuration_a; | 
 |     WORD            wReserved2; | 
 |     WORD            wRTSDuration_a_f0; | 
 |     WORD            wRTSDuration_a_f1; | 
 |     SRTSDataF       sRTS; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_a; | 
 |     BYTE            byServiceField_a; | 
 |     WORD            wTransmitLength_a; | 
 |     WORD            wDuration_a; | 
 |     WORD            wTimeStampOff_a; | 
 |     WORD            wDuration_a_f0; | 
 |     WORD            wDuration_a_f1; | 
 |  | 
 | } TX_AF_A_RTS_MIC, *PTX_AF_A_RTS_MIC; | 
 |  | 
 |  | 
 |  | 
 | typedef struct tagSTX_AF_A_CTS | 
 | { | 
 |     //RsvTime | 
 |     WORD            wReserved2; | 
 |     WORD            wTxRrvTime_a; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_a; | 
 |     BYTE            byServiceField_a; | 
 |     WORD            wTransmitLength_a; | 
 |     WORD            wDuration_a; | 
 |     WORD            wTimeStampOff_a; | 
 |     WORD            wDuration_a_f0; | 
 |     WORD            wDuration_a_f1; | 
 |  | 
 | } TX_AF_A_CTS, *PTX_AF_A_CTS; | 
 |  | 
 |  | 
 | typedef struct tagSTX_AF_A_CTS_MIC | 
 | { | 
 |     //RsvTime | 
 |     WORD            wReserved2; | 
 |     WORD            wTxRrvTime_a; | 
 |  | 
 |     SMICHDR         sMICHDR; | 
 |  | 
 |     //Data | 
 |     BYTE            bySignalField_a; | 
 |     BYTE            byServiceField_a; | 
 |     WORD            wTransmitLength_a; | 
 |     WORD            wDuration_a; | 
 |     WORD            wTimeStampOff_a; | 
 |     WORD            wDuration_a_f0; | 
 |     WORD            wDuration_a_f1; | 
 |  | 
 | } TX_AF_A_CTS_MIC, *PTX_AF_A_CTS_MIC; | 
 |  | 
 |  | 
 | // | 
 | // union with all of the TX Buffer Type | 
 | // | 
 | typedef union tagUTX_BUFFER_CONTAINER | 
 | { | 
 |     TX_NAF_G_RTS                    RTS_G; | 
 |     TX_NAF_G_RTS_MIC                RTS_G_MIC; | 
 |     TX_NAF_G_CTS                    CTS_G; | 
 |     TX_NAF_G_CTS_MIC                CTS_G_MIC; | 
 |     //TX_NAF_G_BEACON                 Beacon_G; | 
 |     TX_NAF_AB_RTS                   RTS_AB; | 
 |     TX_NAF_AB_RTS_MIC               RTS_AB_MIC; | 
 |     TX_NAF_AB_CTS                   CTS_AB; | 
 |     TX_NAF_AB_CTS_MIC               CTS_AB_MIC; | 
 |     //TX_NAF_AB_BEACON                Beacon_AB; | 
 |     TX_AF_G_RTS                     RTS_G_AutoFB; | 
 |     TX_AF_G_RTS_MIC                 RTS_G_AutoFB_MIC; | 
 |     TX_AF_G_CTS                     CTS_G_AutoFB; | 
 |     TX_AF_G_CTS_MIC                 CTS_G_AutoFB_MIC; | 
 |     TX_AF_A_RTS                     RTS_A_AutoFB; | 
 |     TX_AF_A_RTS_MIC                 RTS_A_AutoFB_MIC; | 
 |     TX_AF_A_CTS                     CTS_A_AutoFB; | 
 |     TX_AF_A_CTS_MIC                 CTS_A_AutoFB_MIC; | 
 |  | 
 | } TX_BUFFER_CONTAINER, *PTX_BUFFER_CONTAINER; | 
 |  | 
 |  | 
 | // | 
 | // Remote NDIS message format | 
 | // | 
 | typedef struct tagSTX_BUFFER | 
 | { | 
 |     BYTE                            byType; | 
 |     BYTE                            byPKTNO; | 
 |     WORD                            wTxByteCount; | 
 |  | 
 |     DWORD                           adwTxKey[4]; | 
 |     WORD                            wFIFOCtl; | 
 |     WORD                            wTimeStamp; | 
 |     WORD                            wFragCtl; | 
 |     WORD                            wReserved; | 
 |  | 
 |  | 
 |     // Actual message | 
 |     TX_BUFFER_CONTAINER             BufferHeader; | 
 |  | 
 | } TX_BUFFER, *PTX_BUFFER; | 
 |  | 
 |  | 
 | // | 
 | // Remote NDIS message format | 
 | // | 
 | typedef struct tagSBEACON_BUFFER | 
 | { | 
 |     BYTE                            byType; | 
 |     BYTE                            byPKTNO; | 
 |     WORD                            wTxByteCount; | 
 |  | 
 |     WORD                            wFIFOCtl; | 
 |     WORD                            wTimeStamp; | 
 |  | 
 |     // Actual message | 
 |     TX_BUFFER_CONTAINER             BufferHeader; | 
 |  | 
 | } BEACON_BUFFER, *PBEACON_BUFFER; | 
 |  | 
 |  | 
 | /*---------------------  Export Variables  --------------------------*/ | 
 |  | 
 | /*---------------------  Export Functions  --------------------------*/ | 
 |  | 
 | BOOL | 
 | bPacketToWirelessUsb( | 
 |       PSDevice         pDevice, | 
 |       BYTE             byPktType, | 
 |       PBYTE            usbPacketBuf, | 
 |       BOOL             bNeedEncrypt, | 
 |       unsigned int             cbPayloadSize, | 
 |       unsigned int             uDMAIdx, | 
 |       PSEthernetHeader psEthHeader, | 
 |       PBYTE            pPacket, | 
 |       PSKeyItem        pTransmitKey, | 
 |       unsigned int             uNodeIndex, | 
 |       WORD             wCurrentRate, | 
 |      unsigned int             *pcbHeaderLen, | 
 |      unsigned int             *pcbTotalLen | 
 |     ); | 
 |  | 
 | void vDMA0_tx_80211(PSDevice  pDevice, struct sk_buff *skb); | 
 | int nsDMA_tx_packet(PSDevice pDevice, | 
 | 		    unsigned int uDMAIdx, | 
 | 		    struct sk_buff *skb); | 
 | CMD_STATUS csMgmt_xmit(PSDevice pDevice, PSTxMgmtPacket pPacket); | 
 | CMD_STATUS csBeacon_xmit(PSDevice pDevice, PSTxMgmtPacket pPacket); | 
 | BOOL bRelayPacketSend(PSDevice pDevice, PBYTE pbySkbData, | 
 | 		      unsigned int uDataLen, unsigned int uNodeIndex); | 
 |  | 
 | #endif /* __RXTX_H__ */ |