diff options
Diffstat (limited to 'drivers/staging/vt6656/rxtx.h')
| -rw-r--r-- | drivers/staging/vt6656/rxtx.h | 638 |
1 files changed, 638 insertions, 0 deletions
diff --git a/drivers/staging/vt6656/rxtx.h b/drivers/staging/vt6656/rxtx.h new file mode 100644 index 00000000..dd7e85dd --- /dev/null +++ b/drivers/staging/vt6656/rxtx.h @@ -0,0 +1,638 @@ +/* + * 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 "device.h" +#include "wcmd.h" + +// +// RTS buffer header +// +typedef struct tagSRTSDataF { + u16 wFrameControl; + u16 wDurationID; + u8 abyRA[ETH_ALEN]; + u8 abyTA[ETH_ALEN]; +} SRTSDataF, *PSRTSDataF; + +// +// CTS buffer header +// +typedef struct tagSCTSDataF { + u16 wFrameControl; + u16 wDurationID; + u8 abyRA[ETH_ALEN]; + u16 wReserved; +} SCTSDataF, *PSCTSDataF; + +// +// MICHDR data header +// +typedef struct tagSMICHDR { + u32 adwHDR0[4]; + u32 adwHDR1[4]; + u32 adwHDR2[4]; +} SMICHDR, *PSMICHDR; + +typedef struct tagSTX_NAF_G_RTS +{ + //RsvTime + u16 wRTSTxRrvTime_ba; + u16 wRTSTxRrvTime_aa; + u16 wRTSTxRrvTime_bb; + u16 wReserved2; + u16 wTxRrvTime_b; + u16 wTxRrvTime_a; + + //RTS + u8 byRTSSignalField_b; + u8 byRTSServiceField_b; + u16 wRTSTransmitLength_b; + u8 byRTSSignalField_a; + u8 byRTSServiceField_a; + u16 wRTSTransmitLength_a; + u16 wRTSDuration_ba; + u16 wRTSDuration_aa; + u16 wRTSDuration_bb; + u16 wReserved3; + SRTSDataF sRTS; + + //Data + u8 bySignalField_b; + u8 byServiceField_b; + u16 wTransmitLength_b; + u8 bySignalField_a; + u8 byServiceField_a; + u16 wTransmitLength_a; + u16 wDuration_b; + u16 wDuration_a; + u16 wTimeStampOff_b; + u16 wTimeStampOff_a; + +} TX_NAF_G_RTS, *PTX_NAF_G_RTS; + +typedef struct tagSTX_NAF_G_RTS_MIC +{ + //RsvTime + u16 wRTSTxRrvTime_ba; + u16 wRTSTxRrvTime_aa; + u16 wRTSTxRrvTime_bb; + u16 wReserved2; + u16 wTxRrvTime_b; + u16 wTxRrvTime_a; + + SMICHDR sMICHDR; + + //RTS + u8 byRTSSignalField_b; + u8 byRTSServiceField_b; + u16 wRTSTransmitLength_b; + u8 byRTSSignalField_a; + u8 byRTSServiceField_a; + u16 wRTSTransmitLength_a; + u16 wRTSDuration_ba; + u16 wRTSDuration_aa; + u16 wRTSDuration_bb; + u16 wReserved3; + SRTSDataF sRTS; + + //Data + u8 bySignalField_b; + u8 byServiceField_b; + u16 wTransmitLength_b; + u8 bySignalField_a; + u8 byServiceField_a; + u16 wTransmitLength_a; + u16 wDuration_b; + u16 wDuration_a; + u16 wTimeStampOff_b; + u16 wTimeStampOff_a; + +} TX_NAF_G_RTS_MIC, *PTX_NAF_G_RTS_MIC; + +typedef struct tagSTX_NAF_G_CTS +{ + //RsvTime + u16 wCTSTxRrvTime_ba; + u16 wReserved2; + u16 wTxRrvTime_b; + u16 wTxRrvTime_a; + + //CTS + u8 byCTSSignalField_b; + u8 byCTSServiceField_b; + u16 wCTSTransmitLength_b; + u16 wCTSDuration_ba; + u16 wReserved3; + SCTSDataF sCTS; + + //Data + u8 bySignalField_b; + u8 byServiceField_b; + u16 wTransmitLength_b; + u8 bySignalField_a; + u8 byServiceField_a; + u16 wTransmitLength_a; + u16 wDuration_b; + u16 wDuration_a; + u16 wTimeStampOff_b; + u16 wTimeStampOff_a; + +} TX_NAF_G_CTS, *PTX_NAF_G_CTS; + +typedef struct tagSTX_NAF_G_CTS_MIC +{ + //RsvTime + u16 wCTSTxRrvTime_ba; + u16 wReserved2; + u16 wTxRrvTime_b; + u16 wTxRrvTime_a; + + SMICHDR sMICHDR; + + //CTS + u8 byCTSSignalField_b; + u8 byCTSServiceField_b; + u16 wCTSTransmitLength_b; + u16 wCTSDuration_ba; + u16 wReserved3; + SCTSDataF sCTS; + + //Data + u8 bySignalField_b; + u8 byServiceField_b; + u16 wTransmitLength_b; + u8 bySignalField_a; + u8 byServiceField_a; + u16 wTransmitLength_a; + u16 wDuration_b; + u16 wDuration_a; + u16 wTimeStampOff_b; + u16 wTimeStampOff_a; + +} TX_NAF_G_CTS_MIC, *PTX_NAF_G_CTS_MIC; + +typedef struct tagSTX_NAF_G_BEACON +{ + u16 wFIFOCtl; + u16 wTimeStamp; + + //CTS + u8 byCTSSignalField_b; + u8 byCTSServiceField_b; + u16 wCTSTransmitLength_b; + u16 wCTSDuration_ba; + u16 wReserved1; + SCTSDataF sCTS; + + //Data + u8 bySignalField_a; + u8 byServiceField_a; + u16 wTransmitLength_a; + u16 wDuration_a; + u16 wTimeStampOff_a; + +} TX_NAF_G_BEACON, *PTX_NAF_G_BEACON; + +typedef struct tagSTX_NAF_AB_RTS +{ + //RsvTime + u16 wRTSTxRrvTime_ab; + u16 wTxRrvTime_ab; + + //RTS + u8 byRTSSignalField_ab; + u8 byRTSServiceField_ab; + u16 wRTSTransmitLength_ab; + u16 wRTSDuration_ab; + u16 wReserved2; + SRTSDataF sRTS; + + //Data + u8 bySignalField_ab; + u8 byServiceField_ab; + u16 wTransmitLength_ab; + u16 wDuration_ab; + u16 wTimeStampOff_ab; + +} TX_NAF_AB_RTS, *PTX_NAF_AB_RTS; + +typedef struct tagSTX_NAF_AB_RTS_MIC +{ + //RsvTime + u16 wRTSTxRrvTime_ab; + u16 wTxRrvTime_ab; + + SMICHDR sMICHDR; + + //RTS + u8 byRTSSignalField_ab; + u8 byRTSServiceField_ab; + u16 wRTSTransmitLength_ab; + u16 wRTSDuration_ab; + u16 wReserved2; + SRTSDataF sRTS; + + //Data + u8 bySignalField_ab; + u8 byServiceField_ab; + u16 wTransmitLength_ab; + u16 wDuration_ab; + u16 wTimeStampOff_ab; + +} TX_NAF_AB_RTS_MIC, *PTX_NAF_AB_RTS_MIC; + +typedef struct tagSTX_NAF_AB_CTS +{ + //RsvTime + u16 wReserved2; + u16 wTxRrvTime_ab; + + //Data + u8 bySignalField_ab; + u8 byServiceField_ab; + u16 wTransmitLength_ab; + u16 wDuration_ab; + u16 wTimeStampOff_ab; + +} TX_NAF_AB_CTS, *PTX_NAF_AB_CTS; + +typedef struct tagSTX_NAF_AB_CTS_MIC +{ + //RsvTime + u16 wReserved2; + u16 wTxRrvTime_ab; + + SMICHDR sMICHDR; + + //Data + u8 bySignalField_ab; + u8 byServiceField_ab; + u16 wTransmitLength_ab; + u16 wDuration_ab; + u16 wTimeStampOff_ab; + +} TX_NAF_AB_CTS_MIC, *PTX_NAF_AB_CTS_MIC; + +typedef struct tagSTX_NAF_AB_BEACON +{ + u16 wFIFOCtl; + u16 wTimeStamp; + + //Data + u8 bySignalField_ab; + u8 byServiceField_ab; + u16 wTransmitLength_ab; + u16 wDuration_ab; + u16 wTimeStampOff_ab; + +} TX_NAF_AB_BEACON, *PTX_NAF_AB_BEACON; + +typedef struct tagSTX_AF_G_RTS +{ + //RsvTime + u16 wRTSTxRrvTime_ba; + u16 wRTSTxRrvTime_aa; + u16 wRTSTxRrvTime_bb; + u16 wReserved2; + u16 wTxRrvTime_b; + u16 wTxRrvTime_a; + + //RTS + u8 byRTSSignalField_b; + u8 byRTSServiceField_b; + u16 wRTSTransmitLength_b; + u8 byRTSSignalField_a; + u8 byRTSServiceField_a; + u16 wRTSTransmitLength_a; + u16 wRTSDuration_ba; + u16 wRTSDuration_aa; + u16 wRTSDuration_bb; + u16 wReserved3; + u16 wRTSDuration_ba_f0; + u16 wRTSDuration_aa_f0; + u16 wRTSDuration_ba_f1; + u16 wRTSDuration_aa_f1; + SRTSDataF sRTS; + + //Data + u8 bySignalField_b; + u8 byServiceField_b; + u16 wTransmitLength_b; + u8 bySignalField_a; + u8 byServiceField_a; + u16 wTransmitLength_a; + u16 wDuration_b; + u16 wDuration_a; + u16 wDuration_a_f0; + u16 wDuration_a_f1; + u16 wTimeStampOff_b; + u16 wTimeStampOff_a; + +} TX_AF_G_RTS, *PTX_AF_G_RTS; + +typedef struct tagSTX_AF_G_RTS_MIC +{ + //RsvTime + u16 wRTSTxRrvTime_ba; + u16 wRTSTxRrvTime_aa; + u16 wRTSTxRrvTime_bb; + u16 wReserved2; + u16 wTxRrvTime_b; + u16 wTxRrvTime_a; + + SMICHDR sMICHDR; + + //RTS + u8 byRTSSignalField_b; + u8 byRTSServiceField_b; + u16 wRTSTransmitLength_b; + u8 byRTSSignalField_a; + u8 byRTSServiceField_a; + u16 wRTSTransmitLength_a; + u16 wRTSDuration_ba; + u16 wRTSDuration_aa; + u16 wRTSDuration_bb; + u16 wReserved3; + u16 wRTSDuration_ba_f0; + u16 wRTSDuration_aa_f0; + u16 wRTSDuration_ba_f1; + u16 wRTSDuration_aa_f1; + SRTSDataF sRTS; + + //Data + u8 bySignalField_b; + u8 byServiceField_b; + u16 wTransmitLength_b; + u8 bySignalField_a; + u8 byServiceField_a; + u16 wTransmitLength_a; + u16 wDuration_b; + u16 wDuration_a; + u16 wDuration_a_f0; + u16 wDuration_a_f1; + u16 wTimeStampOff_b; + u16 wTimeStampOff_a; + +} TX_AF_G_RTS_MIC, *PTX_AF_G_RTS_MIC; + +typedef struct tagSTX_AF_G_CTS +{ + //RsvTime + u16 wCTSTxRrvTime_ba; + u16 wReserved2; + u16 wTxRrvTime_b; + u16 wTxRrvTime_a; + + //CTS + u8 byCTSSignalField_b; + u8 byCTSServiceField_b; + u16 wCTSTransmitLength_b; + u16 wCTSDuration_ba; + u16 wReserved3; + u16 wCTSDuration_ba_f0; + u16 wCTSDuration_ba_f1; + SCTSDataF sCTS; + + //Data + u8 bySignalField_b; + u8 byServiceField_b; + u16 wTransmitLength_b; + u8 bySignalField_a; + u8 byServiceField_a; + u16 wTransmitLength_a; + u16 wDuration_b; + u16 wDuration_a; + u16 wDuration_a_f0; + u16 wDuration_a_f1; + u16 wTimeStampOff_b; + u16 wTimeStampOff_a; + +} TX_AF_G_CTS, *PTX_AF_G_CTS; + +typedef struct tagSTX_AF_G_CTS_MIC +{ + //RsvTime + u16 wCTSTxRrvTime_ba; + u16 wReserved2; + u16 wTxRrvTime_b; + u16 wTxRrvTime_a; + + SMICHDR sMICHDR; + + //CTS + u8 byCTSSignalField_b; + u8 byCTSServiceField_b; + u16 wCTSTransmitLength_b; + u16 wCTSDuration_ba; + u16 wReserved3; + u16 wCTSDuration_ba_f0; + u16 wCTSDuration_ba_f1; + SCTSDataF sCTS; + + //Data + u8 bySignalField_b; + u8 byServiceField_b; + u16 wTransmitLength_b; + u8 bySignalField_a; + u8 byServiceField_a; + u16 wTransmitLength_a; + u16 wDuration_b; + u16 wDuration_a; + u16 wDuration_a_f0; + u16 wDuration_a_f1; + u16 wTimeStampOff_b; + u16 wTimeStampOff_a; + +} TX_AF_G_CTS_MIC, *PTX_AF_G_CTS_MIC; + +typedef struct tagSTX_AF_A_RTS +{ + //RsvTime + u16 wRTSTxRrvTime_a; + u16 wTxRrvTime_a; + + //RTS + u8 byRTSSignalField_a; + u8 byRTSServiceField_a; + u16 wRTSTransmitLength_a; + u16 wRTSDuration_a; + u16 wReserved2; + u16 wRTSDuration_a_f0; + u16 wRTSDuration_a_f1; + SRTSDataF sRTS; + + //Data + u8 bySignalField_a; + u8 byServiceField_a; + u16 wTransmitLength_a; + u16 wDuration_a; + u16 wTimeStampOff_a; + u16 wDuration_a_f0; + u16 wDuration_a_f1; + +} TX_AF_A_RTS, *PTX_AF_A_RTS; + +typedef struct tagSTX_AF_A_RTS_MIC +{ + //RsvTime + u16 wRTSTxRrvTime_a; + u16 wTxRrvTime_a; + + SMICHDR sMICHDR; + + //RTS + u8 byRTSSignalField_a; + u8 byRTSServiceField_a; + u16 wRTSTransmitLength_a; + u16 wRTSDuration_a; + u16 wReserved2; + u16 wRTSDuration_a_f0; + u16 wRTSDuration_a_f1; + SRTSDataF sRTS; + + //Data + u8 bySignalField_a; + u8 byServiceField_a; + u16 wTransmitLength_a; + u16 wDuration_a; + u16 wTimeStampOff_a; + u16 wDuration_a_f0; + u16 wDuration_a_f1; + +} TX_AF_A_RTS_MIC, *PTX_AF_A_RTS_MIC; + +typedef struct tagSTX_AF_A_CTS +{ + //RsvTime + u16 wReserved2; + u16 wTxRrvTime_a; + + //Data + u8 bySignalField_a; + u8 byServiceField_a; + u16 wTransmitLength_a; + u16 wDuration_a; + u16 wTimeStampOff_a; + u16 wDuration_a_f0; + u16 wDuration_a_f1; + +} TX_AF_A_CTS, *PTX_AF_A_CTS; + +typedef struct tagSTX_AF_A_CTS_MIC +{ + //RsvTime + u16 wReserved2; + u16 wTxRrvTime_a; + + SMICHDR sMICHDR; + + //Data + u8 bySignalField_a; + u8 byServiceField_a; + u16 wTransmitLength_a; + u16 wDuration_a; + u16 wTimeStampOff_a; + u16 wDuration_a_f0; + u16 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 +{ + u8 byType; + u8 byPKTNO; + u16 wTxByteCount; + + u32 adwTxKey[4]; + u16 wFIFOCtl; + u16 wTimeStamp; + u16 wFragCtl; + u16 wReserved; + + // Actual message + TX_BUFFER_CONTAINER BufferHeader; + +} TX_BUFFER, *PTX_BUFFER; + +// +// Remote NDIS message format +// +typedef struct tagSBEACON_BUFFER +{ + u8 byType; + u8 byPKTNO; + u16 wTxByteCount; + + u16 wFIFOCtl; + u16 wTimeStamp; + + // Actual message + TX_BUFFER_CONTAINER BufferHeader; + +} BEACON_BUFFER, *PBEACON_BUFFER; + +void vDMA0_tx_80211(struct vnt_private *, struct sk_buff *skb); +int nsDMA_tx_packet(struct vnt_private *, u32 uDMAIdx, struct sk_buff *skb); +CMD_STATUS csMgmt_xmit(struct vnt_private *, struct vnt_tx_mgmt *); +CMD_STATUS csBeacon_xmit(struct vnt_private *, struct vnt_tx_mgmt *); +int bRelayPacketSend(struct vnt_private *, u8 *pbySkbData, u32 uDataLen, + u32 uNodeIndex); + +#endif /* __RXTX_H__ */ |
