Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
staging
rtl8192u
r819xU_cmdpkt.h
Go to the documentation of this file.
1
#ifndef R819XUSB_CMDPKT_H
2
#define R819XUSB_CMDPKT_H
3
/* Different command packet have dedicated message length and definition. */
4
#define CMPK_RX_TX_FB_SIZE sizeof(cmpk_txfb_t) //20
5
#define CMPK_TX_SET_CONFIG_SIZE sizeof(cmpk_set_cfg_t) //16
6
#define CMPK_BOTH_QUERY_CONFIG_SIZE sizeof(cmpk_set_cfg_t) //16
7
#define CMPK_RX_TX_STS_SIZE sizeof(cmpk_tx_status_t)//
8
#define CMPK_RX_DBG_MSG_SIZE sizeof(cmpk_rx_dbginfo_t)//
9
#define CMPK_TX_RAHIS_SIZE sizeof(cmpk_tx_rahis_t)
10
11
/* 2008/05/08 amy For USB constant. */
12
#define ISR_TxBcnOk BIT27 // Transmit Beacon OK
13
#define ISR_TxBcnErr BIT26 // Transmit Beacon Error
14
#define ISR_BcnTimerIntr BIT13 // Beacon Timer Interrupt
15
16
17
/* Define element ID of command packet. */
18
19
/*------------------------------Define structure----------------------------*/
20
/* Define different command packet structure. */
21
/* 1. RX side: TX feedback packet. */
22
typedef
struct
tag_cmd_pkt_tx_feedback
23
{
24
// DWORD 0
25
u8
element_id
;
/* Command packet type. */
26
u8
length
;
/* Command packet length. */
27
/* 2007/07/05 MH Change tx feedback info field. */
28
/*------TX Feedback Info Field */
29
u8
TID
:4;
/* */
30
u8
fail_reason
:3;
/* */
31
u8
tok
:1;
/* Transmit ok. */
32
u8
reserve1
:4;
/* */
33
u8
pkt_type
:2;
/* */
34
u8
bandwidth
:1;
/* */
35
u8
qos_pkt
:1;
/* */
36
37
// DWORD 1
38
u8
reserve2
;
/* */
39
/*------TX Feedback Info Field */
40
u8
retry_cnt
;
/* */
41
u16
pkt_id
;
/* */
42
43
// DWORD 3
44
u16
seq_num
;
/* */
45
u8
s_rate
;
/* Start rate. */
46
u8
f_rate
;
/* Final rate. */
47
48
// DWORD 4
49
u8
s_rts_rate
;
/* */
50
u8
f_rts_rate
;
/* */
51
u16
pkt_length
;
/* */
52
53
// DWORD 5
54
u16
reserve3
;
/* */
55
u16
duration
;
/* */
56
}
cmpk_txfb_t
;
57
58
/* 2. RX side: Interrupt status packet. It includes Beacon State,
59
Beacon Timer Interrupt and other useful informations in MAC ISR Reg. */
60
typedef
struct
tag_cmd_pkt_interrupt_status
61
{
62
u8
element_id
;
/* Command packet type. */
63
u8
length
;
/* Command packet length. */
64
u16
reserve
;
65
u32
interrupt_status
;
/* Interrupt Status. */
66
}
cmpk_intr_sta_t
;
67
68
69
/* 3. TX side: Set configuration packet. */
70
typedef
struct
tag_cmd_pkt_set_configuration
71
{
72
u8
element_id
;
/* Command packet type. */
73
u8
length
;
/* Command packet length. */
74
u16
reserve1
;
/* */
75
u8
cfg_reserve1
:3;
76
u8
cfg_size
:2;
/* Configuration info. */
77
u8
cfg_type
:2;
/* Configuration info. */
78
u8
cfg_action
:1;
/* Configuration info. */
79
u8
cfg_reserve2
;
/* Configuration info. */
80
u8
cfg_page
:4;
/* Configuration info. */
81
u8
cfg_reserve3
:4;
/* Configuration info. */
82
u8
cfg_offset
;
/* Configuration info. */
83
u32
value
;
/* */
84
u32
mask
;
/* */
85
}
cmpk_set_cfg_t
;
86
87
/* 4. Both side : TX/RX query configuraton packet. The query structure is the
88
same as set configuration. */
89
#define cmpk_query_cfg_t cmpk_set_cfg_t
90
91
/* 5. Multi packet feedback status. */
92
typedef
struct
tag_tx_stats_feedback
// PJ quick rxcmd 09042007
93
{
94
// For endian transfer --> Driver will not the same as firmware structure.
95
// DW 0
96
u16
reserve1
;
97
u8
length
;
// Command packet length
98
u8
element_id
;
// Command packet type
99
100
// DW 1
101
u16
txfail
;
// Tx Fail count
102
u16
txok
;
// Tx ok count
103
104
// DW 2
105
u16
txmcok
;
// tx multicast
106
u16
txretry
;
// Tx Retry count
107
108
// DW 3
109
u16
txucok
;
// tx unicast
110
u16
txbcok
;
// tx broadcast
111
112
// DW 4
113
u16
txbcfail
;
//
114
u16
txmcfail
;
//
115
116
// DW 5
117
u16
reserve2
;
//
118
u16
txucfail
;
//
119
120
// DW 6-8
121
u32
txmclength
;
122
u32
txbclength
;
123
u32
txuclength
;
124
125
// DW 9
126
u16
reserve3_23
;
127
u8
reserve3_1
;
128
u8
rate
;
129
}
__attribute__
((packed)) cmpk_tx_status_t;
130
131
/* 6. Debug feedback message. */
132
/* 2007/10/23 MH Define RX debug message */
133
typedef
struct
tag_rx_debug_message_feedback
134
{
135
// For endian transfer --> for driver
136
// DW 0
137
u16
reserve1
;
138
u8
length
;
// Command packet length
139
u8
element_id
;
// Command packet type
140
141
// DW 1-??
142
// Variable debug message.
143
144
}
cmpk_rx_dbginfo_t
;
145
146
/* 2008/03/20 MH Define transmit rate history. For big endian format. */
147
typedef
struct
tag_tx_rate_history
148
{
149
// For endian transfer --> for driver
150
// DW 0
151
u8
element_id
;
// Command packet type
152
u8
length
;
// Command packet length
153
u16
reserved1
;
154
155
// DW 1-2 CCK rate counter
156
u16
cck
[4];
157
158
// DW 3-6
159
u16
ofdm
[8];
160
161
// DW 7-14
162
//UINT16 MCS_BW0_SG0[16];
163
164
// DW 15-22
165
//UINT16 MCS_BW1_SG0[16];
166
167
// DW 23-30
168
//UINT16 MCS_BW0_SG1[16];
169
170
// DW 31-38
171
//UINT16 MCS_BW1_SG1[16];
172
173
// DW 7-14 BW=0 SG=0
174
// DW 15-22 BW=1 SG=0
175
// DW 23-30 BW=0 SG=1
176
// DW 31-38 BW=1 SG=1
177
u16
ht_mcs
[4][16];
178
179
}
__attribute__
((packed)) cmpk_tx_rahis_t;
180
181
typedef enum
tag_command_packet_directories
182
{
183
RX_TX_FEEDBACK
= 0,
184
RX_INTERRUPT_STATUS
= 1,
185
TX_SET_CONFIG
= 2,
186
BOTH_QUERY_CONFIG
= 3,
187
RX_TX_STATUS
= 4,
188
RX_DBGINFO_FEEDBACK
= 5,
189
RX_TX_PER_PKT_FEEDBACK
= 6,
190
RX_TX_RATE_HISTORY
= 7,
191
RX_CMD_ELE_MAX
192
}
cmpk_element_e
;
193
194
typedef
enum
_rt_status
{
195
RT_STATUS_SUCCESS
,
196
RT_STATUS_FAILURE
,
197
RT_STATUS_PENDING
,
198
RT_STATUS_RESOURCE
199
}
rt_status
,*
prt_status
;
200
201
extern
rt_status
cmpk_message_handle_tx
(
struct
net_device
*
dev
,
u8
* codevirtualaddress,
u32
packettype,
u32
buffer_len);
202
203
extern
u32
cmpk_message_handle_rx
(
struct
net_device
*
dev
,
struct
ieee80211_rx_stats
* pstats);
204
extern
rt_status
SendTxCommandPacket
(
struct
net_device
*
dev
,
void
*
pData
,
u32
DataLen);
205
206
207
#endif
Generated on Thu Jan 10 2013 14:31:03 for Linux Kernel by
1.8.2