summaryrefslogtreecommitdiff
path: root/drivers/staging/vt6656/rxtx.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/vt6656/rxtx.h')
-rw-r--r--drivers/staging/vt6656/rxtx.h716
1 files changed, 716 insertions, 0 deletions
diff --git a/drivers/staging/vt6656/rxtx.h b/drivers/staging/vt6656/rxtx.h
new file mode 100644
index 000000000000..07d9720f5b99
--- /dev/null
+++ b/drivers/staging/vt6656/rxtx.h
@@ -0,0 +1,716 @@
+/*
+ * 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__
+
+#if !defined(__TTYPE_H__)
+#include "ttype.h"
+#endif
+#if !defined(__DEVICE_H__)
+#include "device.h"
+#endif
+#if !defined(__WCMD_H__)
+#include "wcmd.h"
+#endif
+
+
+/*--------------------- Export Definitions -------------------------*/
+
+/*--------------------- Export Classes ----------------------------*/
+
+//
+// RTS buffer header
+//
+typedef struct tagSRTSDataF {
+ WORD wFrameControl;
+ WORD wDurationID;
+ BYTE abyRA[U_ETHER_ADDR_LEN];
+ BYTE abyTA[U_ETHER_ADDR_LEN];
+} SRTSDataF, DEF* PSRTSDataF;
+
+//
+// CTS buffer header
+//
+typedef struct tagSCTSDataF {
+ WORD wFrameControl;
+ WORD wDurationID;
+ BYTE abyRA[U_ETHER_ADDR_LEN];
+ WORD wReserved;
+} SCTSDataF, DEF* PSCTSDataF;
+
+//
+// MICHDR data header
+//
+typedef struct tagSMICHDR {
+ DWORD adwHDR0[4];
+ DWORD adwHDR1[4];
+ DWORD adwHDR2[4];
+} SMICHDR, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* 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, DEF* PBEACON_BUFFER;
+
+
+/*--------------------- Export Variables --------------------------*/
+
+/*--------------------- Export Functions --------------------------*/
+
+
+#ifdef __cplusplus
+extern "C" { /* Assume C declarations for C++ */
+#endif /* __cplusplus */
+
+
+
+BOOL
+bPacketToWirelessUsb(
+ IN PSDevice pDevice,
+ IN BYTE byPktType,
+ IN PBYTE usbPacketBuf,
+ IN BOOL bNeedEncrypt,
+ IN UINT cbPayloadSize,
+ IN UINT uDMAIdx,
+ IN PSEthernetHeader psEthHeader,
+ IN PBYTE pPacket,
+ IN PSKeyItem pTransmitKey,
+ IN UINT uNodeIndex,
+ IN WORD wCurrentRate,
+ OUT UINT *pcbHeaderLen,
+ OUT UINT *pcbTotalLen
+ );
+
+VOID vDMA0_tx_80211(PSDevice pDevice, struct sk_buff *skb);
+NTSTATUS nsDMA_tx_packet(PSDevice pDevice, UINT 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, UINT uDataLen, UINT uNodeIndex);
+
+#ifdef __cplusplus
+} /* End of extern "C" { */
+#endif /* __cplusplus */
+
+
+
+
+#endif // __RXTX_H__
+
+
+