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 Variables --------------------------*/
40 /*--------------------- Export Functions --------------------------*/
42 /* MIC HDR data header */
46 u8 mic_addr2
[ETH_ALEN
];
47 u8 ccmp_pn
[IEEE80211_CCMP_PN_LEN
];
56 u16 packing
; /* packing to 48 bytes */
59 /* RsvTime buffer header */
60 struct vnt_rrv_time_rts
{
61 __le16 rts_rrv_time_ba
;
62 __le16 rts_rrv_time_aa
;
63 __le16 rts_rrv_time_bb
;
69 struct vnt_rrv_time_cts
{
70 __le16 cts_rrv_time_ba
;
76 struct vnt_rrv_time_ab
{
82 struct vnt_tx_datahead_g
{
83 struct vnt_phy_field b
;
84 struct vnt_phy_field a
;
87 __le16 time_stamp_off_b
;
88 __le16 time_stamp_off_a
;
91 struct vnt_tx_datahead_g_fb
{
92 struct vnt_phy_field b
;
93 struct vnt_phy_field a
;
98 __le16 time_stamp_off_b
;
99 __le16 time_stamp_off_a
;
102 struct vnt_tx_datahead_ab
{
103 struct vnt_phy_field ab
;
105 __le16 time_stamp_off
;
108 struct vnt_tx_datahead_a_fb
{
109 struct vnt_phy_field a
;
111 __le16 time_stamp_off
;
116 /* RTS buffer header */
118 struct vnt_phy_field b
;
119 struct vnt_phy_field a
;
124 struct ieee80211_rts data
;
127 struct vnt_rts_g_fb
{
128 struct vnt_phy_field b
;
129 struct vnt_phy_field a
;
134 __le16 rts_duration_ba_f0
;
135 __le16 rts_duration_aa_f0
;
136 __le16 rts_duration_ba_f1
;
137 __le16 rts_duration_aa_f1
;
138 struct ieee80211_rts data
;
142 struct vnt_phy_field ab
;
145 struct ieee80211_rts data
;
148 struct vnt_rts_a_fb
{
149 struct vnt_phy_field a
;
152 __le16 rts_duration_f0
;
153 __le16 rts_duration_f1
;
154 struct ieee80211_rts data
;
157 /* CTS buffer header */
159 struct vnt_phy_field b
;
162 struct ieee80211_cts data
;
167 struct vnt_phy_field b
;
170 __le16 cts_duration_ba_f0
;
171 __le16 cts_duration_ba_f1
;
172 struct ieee80211_cts data
;
176 struct vnt_tx_short_buf_head
{
179 struct vnt_phy_field ab
;
181 __le16 time_stamp_off
;
186 struct vnt_private
*,
187 unsigned char *pbyBufferAddr
,
188 unsigned short wDuration
,
189 PSEthernetHeader psEthHeader
,
191 unsigned short wFragType
,
192 unsigned int uDMAIdx
,
193 unsigned int uFragIdx
198 struct vnt_private
*,
199 PSKeyItem pTransmitKey
,
200 unsigned int cbFrameBodySize
,
201 PSEthernetHeader psEthHeader
205 vGenerateFIFOHeader(struct vnt_private
*, unsigned char byPktTyp
,
206 unsigned char *pbyTxBufferAddr
, bool bNeedEncrypt
,
207 unsigned int cbPayloadSize
, unsigned int uDMAIdx
,
208 PSTxDesc pHeadTD
, PSEthernetHeader psEthHeader
,
209 unsigned char *pPacket
, PSKeyItem pTransmitKey
,
210 unsigned int uNodeIndex
, unsigned int *puMACfragNum
,
211 unsigned int *pcbHeaderSize
);
213 void vDMA0_tx_80211(struct vnt_private
*, struct sk_buff
*skb
,
214 unsigned char *pbMPDU
, unsigned int cbMPDULen
);
215 CMD_STATUS
csMgmt_xmit(struct vnt_private
*, PSTxMgmtPacket pPacket
);
216 CMD_STATUS
csBeacon_xmit(struct vnt_private
*, PSTxMgmtPacket pPacket
);