diff options
Diffstat (limited to 'drivers/staging/vt6656/rxtx.h')
| -rw-r--r-- | drivers/staging/vt6656/rxtx.h | 876 |
1 files changed, 218 insertions, 658 deletions
diff --git a/drivers/staging/vt6656/rxtx.h b/drivers/staging/vt6656/rxtx.h index dd2198acc63..6db3337f1d1 100644 --- a/drivers/staging/vt6656/rxtx.h +++ b/drivers/staging/vt6656/rxtx.h @@ -29,666 +29,226 @@ #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 { - u32 adwHDR0[4]; - u32 adwHDR1[4]; - u32 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; - +#include "baseband.h" + +/* MIC HDR data header */ +struct vnt_mic_hdr { + u8 id; + u8 tx_priority; + u8 mic_addr2[6]; + __be32 tsc_47_16; + __be16 tsc_15_0; + __be16 payload_len; + __be16 hlen; + __le16 frame_control; + u8 addr1[6]; + u8 addr2[6]; + u8 addr3[6]; + __le16 seq_ctrl; + u8 addr4[6]; + u16 packing; /* packing to 48 bytes */ +} __packed; + +/* RsvTime buffer header */ +struct vnt_rrv_time_rts { + __le16 rts_rrv_time_ba; + __le16 rts_rrv_time_aa; + __le16 rts_rrv_time_bb; + u16 wReserved; + __le16 rrv_time_b; + __le16 rrv_time_a; +} __packed; + +struct vnt_rrv_time_cts { + __le16 cts_rrv_time_ba; + u16 wReserved; + __le16 rrv_time_b; + __le16 rrv_time_a; +} __packed; + +struct vnt_rrv_time_ab { + __le16 rts_rrv_time; + __le16 rrv_time; +} __packed; + +/* TX data header */ +struct vnt_tx_datahead_g { + struct vnt_phy_field b; + struct vnt_phy_field a; + __le16 duration_b; + __le16 duration_a; + __le16 time_stamp_off_b; + __le16 time_stamp_off_a; +} __packed; + +struct vnt_tx_datahead_g_fb { + struct vnt_phy_field b; + struct vnt_phy_field a; + __le16 duration_b; + __le16 duration_a; + __le16 duration_a_f0; + __le16 duration_a_f1; + __le16 time_stamp_off_b; + __le16 time_stamp_off_a; +} __packed; + +struct vnt_tx_datahead_ab { + struct vnt_phy_field ab; + __le16 duration; + __le16 time_stamp_off; +} __packed; + +struct vnt_tx_datahead_a_fb { + struct vnt_phy_field a; + __le16 duration; + __le16 time_stamp_off; + __le16 duration_f0; + __le16 duration_f1; +} __packed; + +/* RTS buffer header */ +struct vnt_rts_g { + struct vnt_phy_field b; + struct vnt_phy_field a; + __le16 duration_ba; + __le16 duration_aa; + __le16 duration_bb; + u16 wReserved; + struct ieee80211_rts data; + struct vnt_tx_datahead_g data_head; +} __packed; + +struct vnt_rts_g_fb { + struct vnt_phy_field b; + struct vnt_phy_field a; + __le16 duration_ba; + __le16 duration_aa; + __le16 duration_bb; + u16 wReserved; + __le16 rts_duration_ba_f0; + __le16 rts_duration_aa_f0; + __le16 rts_duration_ba_f1; + __le16 rts_duration_aa_f1; + struct ieee80211_rts data; + struct vnt_tx_datahead_g_fb data_head; +} __packed; + +struct vnt_rts_ab { + struct vnt_phy_field ab; + __le16 duration; + u16 wReserved; + struct ieee80211_rts data; + struct vnt_tx_datahead_ab data_head; +} __packed; + +struct vnt_rts_a_fb { + struct vnt_phy_field a; + __le16 duration; + u16 wReserved; + __le16 rts_duration_f0; + __le16 rts_duration_f1; + struct ieee80211_rts data; + struct vnt_tx_datahead_a_fb data_head; +} __packed; + +/* CTS buffer header */ +struct vnt_cts { + struct vnt_phy_field b; + __le16 duration_ba; + u16 wReserved; + struct ieee80211_cts data; + u16 reserved2; + struct vnt_tx_datahead_g data_head; +} __packed; + +struct vnt_cts_fb { + struct vnt_phy_field b; + __le16 duration_ba; + u16 wReserved; + __le16 cts_duration_ba_f0; + __le16 cts_duration_ba_f1; + struct ieee80211_cts data; + u16 reserved2; + struct vnt_tx_datahead_g_fb data_head; +} __packed; + +union vnt_tx_data_head { + /* rts g */ + struct vnt_rts_g rts_g; + struct vnt_rts_g_fb rts_g_fb; + /* rts a/b */ + struct vnt_rts_ab rts_ab; + struct vnt_rts_a_fb rts_a_fb; + /* cts g */ + struct vnt_cts cts_g; + struct vnt_cts_fb cts_g_fb; + /* no rts/cts */ + struct vnt_tx_datahead_a_fb data_head_a_fb; + struct vnt_tx_datahead_ab data_head_ab; +}; + +struct vnt_tx_mic_hdr { + struct vnt_mic_hdr hdr; + union vnt_tx_data_head head; +} __packed; + +union vnt_tx { + struct vnt_tx_mic_hdr mic; + union vnt_tx_data_head head; +}; + +union vnt_tx_head { + struct { + struct vnt_rrv_time_rts rts; + union vnt_tx tx; + } __packed tx_rts; + struct { + struct vnt_rrv_time_cts cts; + union vnt_tx tx; + } __packed tx_cts; + struct { + struct vnt_rrv_time_ab ab; + union vnt_tx tx; + } __packed tx_ab; +}; + +struct vnt_tx_fifo_head { u32 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); + u16 wFIFOCtl; + __le16 time_stamp; + u16 wFragCtl; + __le16 current_rate; +} __packed; + +struct vnt_tx_buffer { + u8 byType; + u8 byPKTNO; + __le16 tx_byte_count; + struct vnt_tx_fifo_head fifo_head; + union vnt_tx_head tx_head; +} __packed; + +struct vnt_tx_short_buf_head { + u16 fifo_ctl; + u16 time_stamp; + struct vnt_phy_field ab; + __le16 duration; + __le16 time_stamp_off; +} __packed; + +struct vnt_beacon_buffer { + u8 byType; + u8 byPKTNO; + __le16 tx_byte_count; + struct vnt_tx_short_buf_head short_head; + struct ieee80211_hdr hdr; +} __packed; + +void vDMA0_tx_80211(struct vnt_private *, struct sk_buff *skb); +int nsDMA_tx_packet(struct vnt_private *, 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 *); #endif /* __RXTX_H__ */ |
