]> git.kernelconcepts.de Git - karo-tx-linux.git/blob - drivers/staging/vt6656/rxtx.h
3484f2b16640b765c2282cb962ee8d133c27a3f9
[karo-tx-linux.git] / drivers / staging / vt6656 / rxtx.h
1 /*
2  * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
3  * All rights reserved.
4  *
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.
9  *
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.
14  *
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.
18  *
19  * File: rxtx.h
20  *
21  * Purpose:
22  *
23  * Author: Jerry Chen
24  *
25  * Date: Jun. 27, 2002
26  *
27  */
28
29 #ifndef __RXTX_H__
30 #define __RXTX_H__
31
32 #include "device.h"
33 #include "wcmd.h"
34 #include "baseband.h"
35
36 /* RsvTime buffer header */
37 struct vnt_rrv_time_rts {
38         u16 wRTSTxRrvTime_ba;
39         u16 wRTSTxRrvTime_aa;
40         u16 wRTSTxRrvTime_bb;
41         u16 wReserved;
42         u16 wTxRrvTime_b;
43         u16 wTxRrvTime_a;
44 } __packed;
45
46 struct vnt_rrv_time_cts {
47         u16 wCTSTxRrvTime_ba;
48         u16 wReserved;
49         u16 wTxRrvTime_b;
50         u16 wTxRrvTime_a;
51 } __packed;
52
53 struct vnt_rrv_time_ab {
54         u16 wRTSTxRrvTime;
55         u16 wTxRrvTime;
56 } __packed;
57
58 /* TX data header */
59 struct vnt_tx_datahead_g {
60         struct vnt_phy_field b;
61         struct vnt_phy_field a;
62         u16 wDuration_b;
63         u16 wDuration_a;
64         u16 wTimeStampOff_b;
65         u16 wTimeStampOff_a;
66 } __packed;
67
68 struct vnt_tx_datahead_g_fb {
69         struct vnt_phy_field b;
70         struct vnt_phy_field a;
71         u16 wDuration_b;
72         u16 wDuration_a;
73         u16 wDuration_a_f0;
74         u16 wDuration_a_f1;
75         u16 wTimeStampOff_b;
76         u16 wTimeStampOff_a;
77 } __packed;
78
79 struct vnt_tx_datahead_ab {
80         struct vnt_phy_field ab;
81         u16 wDuration;
82         u16 wTimeStampOff;
83 } __packed;
84
85 struct vnt_tx_datahead_a_fb {
86         struct vnt_phy_field a;
87         u16 wDuration;
88         u16 wTimeStampOff;
89         u16 wDuration_f0;
90         u16 wDuration_f1;
91 } __packed;
92
93 /* RTS buffer header */
94 struct vnt_rts_g {
95         struct vnt_phy_field b;
96         struct vnt_phy_field a;
97         u16 wDuration_ba;
98         u16 wDuration_aa;
99         u16 wDuration_bb;
100         u16 wReserved;
101         struct ieee80211_rts data;
102 } __packed;
103
104 struct vnt_rts_g_fb {
105         struct vnt_phy_field b;
106         struct vnt_phy_field a;
107         u16 wDuration_ba;
108         u16 wDuration_aa;
109         u16 wDuration_bb;
110         u16 wReserved;
111         u16 wRTSDuration_ba_f0;
112         u16 wRTSDuration_aa_f0;
113         u16 wRTSDuration_ba_f1;
114         u16 wRTSDuration_aa_f1;
115         struct ieee80211_rts data;
116 } __packed;
117
118 struct vnt_rts_ab {
119         struct vnt_phy_field ab;
120         u16 wDuration;
121         u16 wReserved;
122         struct ieee80211_rts data;
123 } __packed;
124
125 struct vnt_rts_a_fb {
126         struct vnt_phy_field a;
127         u16 wDuration;
128         u16 wReserved;
129         u16 wRTSDuration_f0;
130         u16 wRTSDuration_f1;
131         struct ieee80211_rts data;
132 } __packed;
133
134 /* CTS buffer header */
135 struct vnt_cts {
136         struct vnt_phy_field b;
137         u16 wDuration_ba;
138         u16 wReserved;
139         struct ieee80211_cts data;
140         u16 reserved2;
141 } __packed;
142
143 struct vnt_cts_fb {
144         struct vnt_phy_field b;
145         u16 wDuration_ba;
146         u16 wReserved;
147         u16 wCTSDuration_ba_f0;
148         u16 wCTSDuration_ba_f1;
149         struct ieee80211_cts data;
150         u16 reserved2;
151 } __packed;
152
153 struct vnt_tx_buffer {
154         u8 byType;
155         u8 byPKTNO;
156         u16 wTxByteCount;
157         u32 adwTxKey[4];
158         u16 wFIFOCtl;
159         u16 wTimeStamp;
160         u16 wFragCtl;
161         u16 wReserved;
162 } __packed;
163
164 struct vnt_beacon_buffer {
165         u8 byType;
166         u8 byPKTNO;
167         u16 wTxByteCount;
168         u16 wFIFOCtl;
169         u16 wTimeStamp;
170 } __packed;
171
172 void vDMA0_tx_80211(struct vnt_private *, struct sk_buff *skb);
173 int nsDMA_tx_packet(struct vnt_private *, u32 uDMAIdx, struct sk_buff *skb);
174 CMD_STATUS csMgmt_xmit(struct vnt_private *, struct vnt_tx_mgmt *);
175 CMD_STATUS csBeacon_xmit(struct vnt_private *, struct vnt_tx_mgmt *);
176 int bRelayPacketSend(struct vnt_private *, u8 *pbySkbData, u32 uDataLen,
177         u32 uNodeIndex);
178
179 #endif /* __RXTX_H__ */