1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
/*
* 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__
#include "device.h"
#include "wcmd.h"
/* RTS buffer header */
struct vnt_rts_g {
u8 bySignalField_b;
u8 byServiceField_b;
u16 wTransmitLength_b;
u8 bySignalField_a;
u8 byServiceField_a;
u16 wTransmitLength_a;
u16 wDuration_ba;
u16 wDuration_aa;
u16 wDuration_bb;
u16 wReserved;
struct ieee80211_rts data;
} __packed;
struct vnt_rts_g_fb {
u8 bySignalField_b;
u8 byServiceField_b;
u16 wTransmitLength_b;
u8 bySignalField_a;
u8 byServiceField_a;
u16 wTransmitLength_a;
u16 wDuration_ba;
u16 wDuration_aa;
u16 wDuration_bb;
u16 wReserved;
u16 wRTSDuration_ba_f0;
u16 wRTSDuration_aa_f0;
u16 wRTSDuration_ba_f1;
u16 wRTSDuration_aa_f1;
struct ieee80211_rts data;
} __packed;
struct vnt_rts_ab {
u8 bySignalField;
u8 byServiceField;
u16 wTransmitLength;
u16 wDuration;
u16 wReserved;
struct ieee80211_rts data;
} __packed;
struct vnt_rts_a_fb {
u8 bySignalField;
u8 byServiceField;
u16 wTransmitLength;
u16 wDuration;
u16 wReserved;
u16 wRTSDuration_f0;
u16 wRTSDuration_f1;
struct ieee80211_rts data;
} __packed;
struct vnt_tx_buffer {
u8 byType;
u8 byPKTNO;
u16 wTxByteCount;
u32 adwTxKey[4];
u16 wFIFOCtl;
u16 wTimeStamp;
u16 wFragCtl;
u16 wReserved;
} __packed;
struct vnt_beacon_buffer {
u8 byType;
u8 byPKTNO;
u16 wTxByteCount;
u16 wFIFOCtl;
u16 wTimeStamp;
} __packed;
void vDMA0_tx_80211(struct vnt_private *, struct sk_buff *skb);
int nsDMA_tx_packet(struct vnt_private *, u32 uDMAIdx, 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 *);
int bRelayPacketSend(struct vnt_private *, u8 *pbySkbData, u32 uDataLen,
u32 uNodeIndex);
#endif /* __RXTX_H__ */
|