x86/xen: resume timer irqs early
[linux/fpc-iii.git] / drivers / staging / vt6656 / rxtx.h
blob4bbee1c2fcacef62a866c7b222605210ee2674ec
1 /*
2 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
3 * All rights reserved.
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.
19 * File: rxtx.h
21 * Purpose:
23 * Author: Jerry Chen
25 * Date: Jun. 27, 2002
29 #ifndef __RXTX_H__
30 #define __RXTX_H__
32 #include "device.h"
33 #include "wcmd.h"
34 #include "baseband.h"
36 /* MIC HDR data header */
37 struct vnt_mic_hdr {
38 u8 id;
39 u8 tx_priority;
40 u8 mic_addr2[6];
41 __be32 tsc_47_16;
42 __be16 tsc_15_0;
43 __be16 payload_len;
44 __be16 hlen;
45 __le16 frame_control;
46 u8 addr1[6];
47 u8 addr2[6];
48 u8 addr3[6];
49 __le16 seq_ctrl;
50 u8 addr4[6];
51 u16 packing; /* packing to 48 bytes */
52 } __packed;
54 /* RsvTime buffer header */
55 struct vnt_rrv_time_rts {
56 u16 wRTSTxRrvTime_ba;
57 u16 wRTSTxRrvTime_aa;
58 u16 wRTSTxRrvTime_bb;
59 u16 wReserved;
60 u16 wTxRrvTime_b;
61 u16 wTxRrvTime_a;
62 } __packed;
64 struct vnt_rrv_time_cts {
65 u16 wCTSTxRrvTime_ba;
66 u16 wReserved;
67 u16 wTxRrvTime_b;
68 u16 wTxRrvTime_a;
69 } __packed;
71 struct vnt_rrv_time_ab {
72 u16 wRTSTxRrvTime;
73 u16 wTxRrvTime;
74 } __packed;
76 /* TX data header */
77 struct vnt_tx_datahead_g {
78 struct vnt_phy_field b;
79 struct vnt_phy_field a;
80 u16 wDuration_b;
81 u16 wDuration_a;
82 u16 wTimeStampOff_b;
83 u16 wTimeStampOff_a;
84 } __packed;
86 struct vnt_tx_datahead_g_fb {
87 struct vnt_phy_field b;
88 struct vnt_phy_field a;
89 u16 wDuration_b;
90 u16 wDuration_a;
91 u16 wDuration_a_f0;
92 u16 wDuration_a_f1;
93 u16 wTimeStampOff_b;
94 u16 wTimeStampOff_a;
95 } __packed;
97 struct vnt_tx_datahead_ab {
98 struct vnt_phy_field ab;
99 u16 wDuration;
100 u16 wTimeStampOff;
101 } __packed;
103 struct vnt_tx_datahead_a_fb {
104 struct vnt_phy_field a;
105 u16 wDuration;
106 u16 wTimeStampOff;
107 u16 wDuration_f0;
108 u16 wDuration_f1;
109 } __packed;
111 /* RTS buffer header */
112 struct vnt_rts_g {
113 struct vnt_phy_field b;
114 struct vnt_phy_field a;
115 u16 wDuration_ba;
116 u16 wDuration_aa;
117 u16 wDuration_bb;
118 u16 wReserved;
119 struct ieee80211_rts data;
120 } __packed;
122 struct vnt_rts_g_fb {
123 struct vnt_phy_field b;
124 struct vnt_phy_field a;
125 u16 wDuration_ba;
126 u16 wDuration_aa;
127 u16 wDuration_bb;
128 u16 wReserved;
129 u16 wRTSDuration_ba_f0;
130 u16 wRTSDuration_aa_f0;
131 u16 wRTSDuration_ba_f1;
132 u16 wRTSDuration_aa_f1;
133 struct ieee80211_rts data;
134 } __packed;
136 struct vnt_rts_ab {
137 struct vnt_phy_field ab;
138 u16 wDuration;
139 u16 wReserved;
140 struct ieee80211_rts data;
141 } __packed;
143 struct vnt_rts_a_fb {
144 struct vnt_phy_field a;
145 u16 wDuration;
146 u16 wReserved;
147 u16 wRTSDuration_f0;
148 u16 wRTSDuration_f1;
149 struct ieee80211_rts data;
150 } __packed;
152 /* CTS buffer header */
153 struct vnt_cts {
154 struct vnt_phy_field b;
155 u16 wDuration_ba;
156 u16 wReserved;
157 struct ieee80211_cts data;
158 u16 reserved2;
159 } __packed;
161 struct vnt_cts_fb {
162 struct vnt_phy_field b;
163 u16 wDuration_ba;
164 u16 wReserved;
165 u16 wCTSDuration_ba_f0;
166 u16 wCTSDuration_ba_f1;
167 struct ieee80211_cts data;
168 u16 reserved2;
169 } __packed;
171 union vnt_tx_data_head {
172 /* rts g */
173 struct vnt_rts_g rts_g;
174 struct vnt_rts_g_fb rts_g_fb;
175 /* rts a/b */
176 struct vnt_rts_ab rts_ab;
177 struct vnt_rts_a_fb rts_a_fb;
178 /* cts g */
179 struct vnt_cts cts_g;
180 struct vnt_cts_fb cts_g_fb;
183 struct vnt_tx_buffer {
184 u8 byType;
185 u8 byPKTNO;
186 u16 wTxByteCount;
187 u32 adwTxKey[4];
188 u16 wFIFOCtl;
189 u16 wTimeStamp;
190 u16 wFragCtl;
191 u16 wReserved;
192 } __packed;
194 struct vnt_beacon_buffer {
195 u8 byType;
196 u8 byPKTNO;
197 u16 wTxByteCount;
198 u16 wFIFOCtl;
199 u16 wTimeStamp;
200 } __packed;
202 void vDMA0_tx_80211(struct vnt_private *, struct sk_buff *skb);
203 int nsDMA_tx_packet(struct vnt_private *, u32 uDMAIdx, struct sk_buff *skb);
204 CMD_STATUS csMgmt_xmit(struct vnt_private *, struct vnt_tx_mgmt *);
205 CMD_STATUS csBeacon_xmit(struct vnt_private *, struct vnt_tx_mgmt *);
206 int bRelayPacketSend(struct vnt_private *, u8 *pbySkbData, u32 uDataLen,
207 u32 uNodeIndex);
209 #endif /* __RXTX_H__ */