1 /******************************************************************************
3 * Copyright(c) 2016 - 2018 Realtek Corporation. All rights reserved.
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of version 2 of the GNU General Public License as
7 * published by the Free Software Foundation.
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 ******************************************************************************/
16 #ifndef _HAL_ORIGINALC2HFORMAT_H2C_C2H_AP_H_
17 #define _HAL_ORIGINALC2HFORMAT_H2C_C2H_AP_H_
18 #define CMD_ID_C2H 0X00
19 #define CMD_ID_DBG 0X00
20 #define CMD_ID_C2H_LB 0X01
21 #define CMD_ID_C2H_SND_TXBF 0X02
22 #define CMD_ID_C2H_CCX_RPT 0X03
23 #define CMD_ID_C2H_AP_REQ_TXRPT 0X04
24 #define CMD_ID_C2H_INITIAL_RATE_COLLECTION 0X05
25 #define CMD_ID_C2H_RA_RPT 0X0C
26 #define CMD_ID_C2H_SPECIAL_STATISTICS 0X0D
27 #define CMD_ID_C2H_RA_PARA_RPT 0X0E
28 #define CMD_ID_C2H_CUR_CHANNEL 0X10
29 #define CMD_ID_C2H_GPIO_WAKEUP 0X14
30 #define CMD_ID_C2H_DROPID_RPT 0X2D
31 #define C2H_GET_CMD_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 0, 8)
32 #define C2H_SET_CMD_ID(c2h_pkt, value) \
33 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 0, 8, value)
34 #define C2H_SET_CMD_ID_NO_CLR(c2h_pkt, value) \
35 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 0, 8, value)
36 #define C2H_GET_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 8, 8)
37 #define C2H_SET_SEQ(c2h_pkt, value) \
38 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 8, 8, value)
39 #define C2H_SET_SEQ_NO_CLR(c2h_pkt, value) \
40 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 8, 8, value)
41 #define DBG_GET_CMD_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 0, 8)
42 #define DBG_SET_CMD_ID(c2h_pkt, value) \
43 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 0, 8, value)
44 #define DBG_SET_CMD_ID_NO_CLR(c2h_pkt, value) \
45 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 0, 8, value)
46 #define DBG_GET_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 8, 8)
47 #define DBG_SET_SEQ(c2h_pkt, value) \
48 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 8, 8, value)
49 #define DBG_SET_SEQ_NO_CLR(c2h_pkt, value) \
50 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 8, 8, value)
51 #define DBG_GET_DBG_STR1(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 16, 8)
52 #define DBG_SET_DBG_STR1(c2h_pkt, value) \
53 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 16, 8, value)
54 #define DBG_SET_DBG_STR1_NO_CLR(c2h_pkt, value) \
55 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 16, 8, value)
56 #define DBG_GET_DBG_STR2(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 24, 8)
57 #define DBG_SET_DBG_STR2(c2h_pkt, value) \
58 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 24, 8, value)
59 #define DBG_SET_DBG_STR2_NO_CLR(c2h_pkt, value) \
60 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 24, 8, value)
61 #define DBG_GET_DBG_STR3(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 0, 8)
62 #define DBG_SET_DBG_STR3(c2h_pkt, value) \
63 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 8, value)
64 #define DBG_SET_DBG_STR3_NO_CLR(c2h_pkt, value) \
65 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 8, value)
66 #define DBG_GET_DBG_STR4(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 8, 8)
67 #define DBG_SET_DBG_STR4(c2h_pkt, value) \
68 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 8, 8, value)
69 #define DBG_SET_DBG_STR4_NO_CLR(c2h_pkt, value) \
70 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 8, 8, value)
71 #define DBG_GET_DBG_STR5(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 16, 8)
72 #define DBG_SET_DBG_STR5(c2h_pkt, value) \
73 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 16, 8, value)
74 #define DBG_SET_DBG_STR5_NO_CLR(c2h_pkt, value) \
75 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 16, 8, value)
76 #define DBG_GET_DBG_STR6(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 24, 8)
77 #define DBG_SET_DBG_STR6(c2h_pkt, value) \
78 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 24, 8, value)
79 #define DBG_SET_DBG_STR6_NO_CLR(c2h_pkt, value) \
80 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 24, 8, value)
81 #define DBG_GET_DBG_STR7(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 0, 8)
82 #define DBG_SET_DBG_STR7(c2h_pkt, value) \
83 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 0, 8, value)
84 #define DBG_SET_DBG_STR7_NO_CLR(c2h_pkt, value) \
85 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 0, 8, value)
86 #define DBG_GET_DBG_STR8(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 8, 8)
87 #define DBG_SET_DBG_STR8(c2h_pkt, value) \
88 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 8, 8, value)
89 #define DBG_SET_DBG_STR8_NO_CLR(c2h_pkt, value) \
90 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 8, 8, value)
91 #define DBG_GET_DBG_STR9(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 16, 8)
92 #define DBG_SET_DBG_STR9(c2h_pkt, value) \
93 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 16, 8, value)
94 #define DBG_SET_DBG_STR9_NO_CLR(c2h_pkt, value) \
95 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 16, 8, value)
96 #define DBG_GET_DBG_STR10(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 24, 8)
97 #define DBG_SET_DBG_STR10(c2h_pkt, value) \
98 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 24, 8, value)
99 #define DBG_SET_DBG_STR10_NO_CLR(c2h_pkt, value) \
100 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 24, 8, value)
101 #define DBG_GET_DBG_STR11(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 0, 8)
102 #define DBG_SET_DBG_STR11(c2h_pkt, value) \
103 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 0, 8, value)
104 #define DBG_SET_DBG_STR11_NO_CLR(c2h_pkt, value) \
105 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 0, 8, value)
106 #define DBG_GET_DBG_STR12(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 8, 8)
107 #define DBG_SET_DBG_STR12(c2h_pkt, value) \
108 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 8, 8, value)
109 #define DBG_SET_DBG_STR12_NO_CLR(c2h_pkt, value) \
110 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 8, 8, value)
111 #define DBG_GET_LEN(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 16, 8)
112 #define DBG_SET_LEN(c2h_pkt, value) \
113 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 16, 8, value)
114 #define DBG_SET_LEN_NO_CLR(c2h_pkt, value) \
115 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 16, 8, value)
116 #define DBG_GET_TRIGGER(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 24, 8)
117 #define DBG_SET_TRIGGER(c2h_pkt, value) \
118 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 24, 8, value)
119 #define DBG_SET_TRIGGER_NO_CLR(c2h_pkt, value) \
120 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 24, 8, value)
121 #define C2H_LB_GET_CMD_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 0, 8)
122 #define C2H_LB_SET_CMD_ID(c2h_pkt, value) \
123 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 0, 8, value)
124 #define C2H_LB_SET_CMD_ID_NO_CLR(c2h_pkt, value) \
125 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 0, 8, value)
126 #define C2H_LB_GET_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 8, 8)
127 #define C2H_LB_SET_SEQ(c2h_pkt, value) \
128 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 8, 8, value)
129 #define C2H_LB_SET_SEQ_NO_CLR(c2h_pkt, value) \
130 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 8, 8, value)
131 #define C2H_LB_GET_PAYLOAD1(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 16, 16)
132 #define C2H_LB_SET_PAYLOAD1(c2h_pkt, value) \
133 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 16, 16, value)
134 #define C2H_LB_SET_PAYLOAD1_NO_CLR(c2h_pkt, value) \
135 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 16, 16, value)
136 #define C2H_LB_GET_PAYLOAD2(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 0, 32)
137 #define C2H_LB_SET_PAYLOAD2(c2h_pkt, value) \
138 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 32, value)
139 #define C2H_LB_SET_PAYLOAD2_NO_CLR(c2h_pkt, value) \
140 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 32, value)
141 #define C2H_LB_GET_LEN(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 16, 8)
142 #define C2H_LB_SET_LEN(c2h_pkt, value) \
143 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 16, 8, value)
144 #define C2H_LB_SET_LEN_NO_CLR(c2h_pkt, value) \
145 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 16, 8, value)
146 #define C2H_LB_GET_TRIGGER(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 24, 8)
147 #define C2H_LB_SET_TRIGGER(c2h_pkt, value) \
148 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 24, 8, value)
149 #define C2H_LB_SET_TRIGGER_NO_CLR(c2h_pkt, value) \
150 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 24, 8, value)
151 #define C2H_SND_TXBF_GET_CMD_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 0, 8)
152 #define C2H_SND_TXBF_SET_CMD_ID(c2h_pkt, value) \
153 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 0, 8, value)
154 #define C2H_SND_TXBF_SET_CMD_ID_NO_CLR(c2h_pkt, value) \
155 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 0, 8, value)
156 #define C2H_SND_TXBF_GET_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 8, 8)
157 #define C2H_SND_TXBF_SET_SEQ(c2h_pkt, value) \
158 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 8, 8, value)
159 #define C2H_SND_TXBF_SET_SEQ_NO_CLR(c2h_pkt, value) \
160 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 8, 8, value)
161 #define C2H_SND_TXBF_GET_SND_RESULT(c2h_pkt) \
162 GET_C2H_FIELD(c2h_pkt + 0X00, 16, 1)
163 #define C2H_SND_TXBF_SET_SND_RESULT(c2h_pkt, value) \
164 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 16, 1, value)
165 #define C2H_SND_TXBF_SET_SND_RESULT_NO_CLR(c2h_pkt, value) \
166 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 16, 1, value)
167 #define C2H_SND_TXBF_GET_LEN(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 16, 8)
168 #define C2H_SND_TXBF_SET_LEN(c2h_pkt, value) \
169 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 16, 8, value)
170 #define C2H_SND_TXBF_SET_LEN_NO_CLR(c2h_pkt, value) \
171 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 16, 8, value)
172 #define C2H_SND_TXBF_GET_TRIGGER(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 24, 8)
173 #define C2H_SND_TXBF_SET_TRIGGER(c2h_pkt, value) \
174 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 24, 8, value)
175 #define C2H_SND_TXBF_SET_TRIGGER_NO_CLR(c2h_pkt, value) \
176 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 24, 8, value)
177 #define C2H_CCX_RPT_GET_CMD_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 0, 8)
178 #define C2H_CCX_RPT_SET_CMD_ID(c2h_pkt, value) \
179 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 0, 8, value)
180 #define C2H_CCX_RPT_SET_CMD_ID_NO_CLR(c2h_pkt, value) \
181 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 0, 8, value)
182 #define C2H_CCX_RPT_GET_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 8, 8)
183 #define C2H_CCX_RPT_SET_SEQ(c2h_pkt, value) \
184 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 8, 8, value)
185 #define C2H_CCX_RPT_SET_SEQ_NO_CLR(c2h_pkt, value) \
186 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 8, 8, value)
187 #define C2H_CCX_RPT_GET_QSEL(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 16, 5)
188 #define C2H_CCX_RPT_SET_QSEL(c2h_pkt, value) \
189 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 16, 5, value)
190 #define C2H_CCX_RPT_SET_QSEL_NO_CLR(c2h_pkt, value) \
191 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 16, 5, value)
192 #define C2H_CCX_RPT_GET_BMC(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 21, 1)
193 #define C2H_CCX_RPT_SET_BMC(c2h_pkt, value) \
194 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 21, 1, value)
195 #define C2H_CCX_RPT_SET_BMC_NO_CLR(c2h_pkt, value) \
196 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 21, 1, value)
197 #define C2H_CCX_RPT_GET_LIFE_TIME_OVER(c2h_pkt) \
198 GET_C2H_FIELD(c2h_pkt + 0X00, 22, 1)
199 #define C2H_CCX_RPT_SET_LIFE_TIME_OVER(c2h_pkt, value) \
200 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 22, 1, value)
201 #define C2H_CCX_RPT_SET_LIFE_TIME_OVER_NO_CLR(c2h_pkt, value) \
202 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 22, 1, value)
203 #define C2H_CCX_RPT_GET_RETRY_OVER(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 23, 1)
204 #define C2H_CCX_RPT_SET_RETRY_OVER(c2h_pkt, value) \
205 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 23, 1, value)
206 #define C2H_CCX_RPT_SET_RETRY_OVER_NO_CLR(c2h_pkt, value) \
207 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 23, 1, value)
208 #define C2H_CCX_RPT_GET_MACID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 24, 8)
209 #define C2H_CCX_RPT_SET_MACID(c2h_pkt, value) \
210 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 24, 8, value)
211 #define C2H_CCX_RPT_SET_MACID_NO_CLR(c2h_pkt, value) \
212 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 24, 8, value)
213 #define C2H_CCX_RPT_GET_DATA_RETRY_CNT(c2h_pkt) \
214 GET_C2H_FIELD(c2h_pkt + 0X04, 0, 6)
215 #define C2H_CCX_RPT_SET_DATA_RETRY_CNT(c2h_pkt, value) \
216 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 6, value)
217 #define C2H_CCX_RPT_SET_DATA_RETRY_CNT_NO_CLR(c2h_pkt, value) \
218 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 6, value)
219 #define C2H_CCX_RPT_GET_QUEUE7_0(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 8, 8)
220 #define C2H_CCX_RPT_SET_QUEUE7_0(c2h_pkt, value) \
221 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 8, 8, value)
222 #define C2H_CCX_RPT_SET_QUEUE7_0_NO_CLR(c2h_pkt, value) \
223 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 8, 8, value)
224 #define C2H_CCX_RPT_GET_QUEUE15_8(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 16, 8)
225 #define C2H_CCX_RPT_SET_QUEUE15_8(c2h_pkt, value) \
226 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 16, 8, value)
227 #define C2H_CCX_RPT_SET_QUEUE15_8_NO_CLR(c2h_pkt, value) \
228 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 16, 8, value)
229 #define C2H_CCX_RPT_GET_FINAL_DATA_RATE(c2h_pkt) \
230 GET_C2H_FIELD(c2h_pkt + 0X04, 24, 8)
231 #define C2H_CCX_RPT_SET_FINAL_DATA_RATE(c2h_pkt, value) \
232 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 24, 8, value)
233 #define C2H_CCX_RPT_SET_FINAL_DATA_RATE_NO_CLR(c2h_pkt, value) \
234 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 24, 8, value)
235 #define C2H_CCX_RPT_GET_SW_DEFINE_0(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 0, 8)
236 #define C2H_CCX_RPT_SET_SW_DEFINE_0(c2h_pkt, value) \
237 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 0, 8, value)
238 #define C2H_CCX_RPT_SET_SW_DEFINE_0_NO_CLR(c2h_pkt, value) \
239 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 0, 8, value)
240 #define C2H_CCX_RPT_GET_SW_DEFINE_1(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 8, 4)
241 #define C2H_CCX_RPT_SET_SW_DEFINE_1(c2h_pkt, value) \
242 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 8, 4, value)
243 #define C2H_CCX_RPT_SET_SW_DEFINE_1_NO_CLR(c2h_pkt, value) \
244 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 8, 4, value)
245 #define C2H_CCX_RPT_GET_LEN(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 16, 8)
246 #define C2H_CCX_RPT_SET_LEN(c2h_pkt, value) \
247 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 16, 8, value)
248 #define C2H_CCX_RPT_SET_LEN_NO_CLR(c2h_pkt, value) \
249 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 16, 8, value)
250 #define C2H_CCX_RPT_GET_TRIGGER(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 24, 8)
251 #define C2H_CCX_RPT_SET_TRIGGER(c2h_pkt, value) \
252 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 24, 8, value)
253 #define C2H_CCX_RPT_SET_TRIGGER_NO_CLR(c2h_pkt, value) \
254 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 24, 8, value)
255 #define C2H_AP_REQ_TXRPT_GET_CMD_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 0, 8)
256 #define C2H_AP_REQ_TXRPT_SET_CMD_ID(c2h_pkt, value) \
257 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 0, 8, value)
258 #define C2H_AP_REQ_TXRPT_SET_CMD_ID_NO_CLR(c2h_pkt, value) \
259 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 0, 8, value)
260 #define C2H_AP_REQ_TXRPT_GET_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 8, 8)
261 #define C2H_AP_REQ_TXRPT_SET_SEQ(c2h_pkt, value) \
262 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 8, 8, value)
263 #define C2H_AP_REQ_TXRPT_SET_SEQ_NO_CLR(c2h_pkt, value) \
264 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 8, 8, value)
265 #define C2H_AP_REQ_TXRPT_GET_STA1_MACID(c2h_pkt) \
266 GET_C2H_FIELD(c2h_pkt + 0X00, 16, 8)
267 #define C2H_AP_REQ_TXRPT_SET_STA1_MACID(c2h_pkt, value) \
268 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 16, 8, value)
269 #define C2H_AP_REQ_TXRPT_SET_STA1_MACID_NO_CLR(c2h_pkt, value) \
270 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 16, 8, value)
271 #define C2H_AP_REQ_TXRPT_GET_TX_OK1_0(c2h_pkt) \
272 GET_C2H_FIELD(c2h_pkt + 0X00, 24, 8)
273 #define C2H_AP_REQ_TXRPT_SET_TX_OK1_0(c2h_pkt, value) \
274 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 24, 8, value)
275 #define C2H_AP_REQ_TXRPT_SET_TX_OK1_0_NO_CLR(c2h_pkt, value) \
276 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 24, 8, value)
277 #define C2H_AP_REQ_TXRPT_GET_TX_OK1_1(c2h_pkt) \
278 GET_C2H_FIELD(c2h_pkt + 0X04, 0, 8)
279 #define C2H_AP_REQ_TXRPT_SET_TX_OK1_1(c2h_pkt, value) \
280 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 8, value)
281 #define C2H_AP_REQ_TXRPT_SET_TX_OK1_1_NO_CLR(c2h_pkt, value) \
282 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 8, value)
283 #define C2H_AP_REQ_TXRPT_GET_TX_FAIL1_0(c2h_pkt) \
284 GET_C2H_FIELD(c2h_pkt + 0X04, 8, 8)
285 #define C2H_AP_REQ_TXRPT_SET_TX_FAIL1_0(c2h_pkt, value) \
286 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 8, 8, value)
287 #define C2H_AP_REQ_TXRPT_SET_TX_FAIL1_0_NO_CLR(c2h_pkt, value) \
288 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 8, 8, value)
289 #define C2H_AP_REQ_TXRPT_GET_TX_FAIL1_1(c2h_pkt) \
290 GET_C2H_FIELD(c2h_pkt + 0X04, 16, 8)
291 #define C2H_AP_REQ_TXRPT_SET_TX_FAIL1_1(c2h_pkt, value) \
292 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 16, 8, value)
293 #define C2H_AP_REQ_TXRPT_SET_TX_FAIL1_1_NO_CLR(c2h_pkt, value) \
294 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 16, 8, value)
295 #define C2H_AP_REQ_TXRPT_GET_INITIAL_RATE1(c2h_pkt) \
296 GET_C2H_FIELD(c2h_pkt + 0X04, 24, 8)
297 #define C2H_AP_REQ_TXRPT_SET_INITIAL_RATE1(c2h_pkt, value) \
298 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 24, 8, value)
299 #define C2H_AP_REQ_TXRPT_SET_INITIAL_RATE1_NO_CLR(c2h_pkt, value) \
300 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 24, 8, value)
301 #define C2H_AP_REQ_TXRPT_GET_STA2_MACID(c2h_pkt) \
302 GET_C2H_FIELD(c2h_pkt + 0X08, 0, 8)
303 #define C2H_AP_REQ_TXRPT_SET_STA2_MACID(c2h_pkt, value) \
304 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 0, 8, value)
305 #define C2H_AP_REQ_TXRPT_SET_STA2_MACID_NO_CLR(c2h_pkt, value) \
306 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 0, 8, value)
307 #define C2H_AP_REQ_TXRPT_GET_TX_OK2_0(c2h_pkt) \
308 GET_C2H_FIELD(c2h_pkt + 0X08, 8, 8)
309 #define C2H_AP_REQ_TXRPT_SET_TX_OK2_0(c2h_pkt, value) \
310 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 8, 8, value)
311 #define C2H_AP_REQ_TXRPT_SET_TX_OK2_0_NO_CLR(c2h_pkt, value) \
312 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 8, 8, value)
313 #define C2H_AP_REQ_TXRPT_GET_TX_OK2_1(c2h_pkt) \
314 GET_C2H_FIELD(c2h_pkt + 0X08, 16, 8)
315 #define C2H_AP_REQ_TXRPT_SET_TX_OK2_1(c2h_pkt, value) \
316 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 16, 8, value)
317 #define C2H_AP_REQ_TXRPT_SET_TX_OK2_1_NO_CLR(c2h_pkt, value) \
318 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 16, 8, value)
319 #define C2H_AP_REQ_TXRPT_GET_TX_FAIL2_0(c2h_pkt) \
320 GET_C2H_FIELD(c2h_pkt + 0X08, 24, 8)
321 #define C2H_AP_REQ_TXRPT_SET_TX_FAIL2_0(c2h_pkt, value) \
322 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 24, 8, value)
323 #define C2H_AP_REQ_TXRPT_SET_TX_FAIL2_0_NO_CLR(c2h_pkt, value) \
324 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 24, 8, value)
325 #define C2H_AP_REQ_TXRPT_GET_TX_FAIL2_1(c2h_pkt) \
326 GET_C2H_FIELD(c2h_pkt + 0X0C, 0, 8)
327 #define C2H_AP_REQ_TXRPT_SET_TX_FAIL2_1(c2h_pkt, value) \
328 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 0, 8, value)
329 #define C2H_AP_REQ_TXRPT_SET_TX_FAIL2_1_NO_CLR(c2h_pkt, value) \
330 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 0, 8, value)
331 #define C2H_AP_REQ_TXRPT_GET_INITIAL_RATE2(c2h_pkt) \
332 GET_C2H_FIELD(c2h_pkt + 0X0C, 8, 8)
333 #define C2H_AP_REQ_TXRPT_SET_INITIAL_RATE2(c2h_pkt, value) \
334 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 8, 8, value)
335 #define C2H_AP_REQ_TXRPT_SET_INITIAL_RATE2_NO_CLR(c2h_pkt, value) \
336 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 8, 8, value)
337 #define C2H_AP_REQ_TXRPT_GET_LEN(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 16, 8)
338 #define C2H_AP_REQ_TXRPT_SET_LEN(c2h_pkt, value) \
339 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 16, 8, value)
340 #define C2H_AP_REQ_TXRPT_SET_LEN_NO_CLR(c2h_pkt, value) \
341 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 16, 8, value)
342 #define C2H_AP_REQ_TXRPT_GET_TRIGGER(c2h_pkt) \
343 GET_C2H_FIELD(c2h_pkt + 0X0C, 24, 8)
344 #define C2H_AP_REQ_TXRPT_SET_TRIGGER(c2h_pkt, value) \
345 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 24, 8, value)
346 #define C2H_AP_REQ_TXRPT_SET_TRIGGER_NO_CLR(c2h_pkt, value) \
347 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 24, 8, value)
348 #define C2H_INITIAL_RATE_COLLECTION_GET_CMD_ID(c2h_pkt) \
349 GET_C2H_FIELD(c2h_pkt + 0X00, 0, 8)
350 #define C2H_INITIAL_RATE_COLLECTION_SET_CMD_ID(c2h_pkt, value) \
351 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 0, 8, value)
352 #define C2H_INITIAL_RATE_COLLECTION_SET_CMD_ID_NO_CLR(c2h_pkt, value) \
353 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 0, 8, value)
354 #define C2H_INITIAL_RATE_COLLECTION_GET_SEQ(c2h_pkt) \
355 GET_C2H_FIELD(c2h_pkt + 0X00, 8, 8)
356 #define C2H_INITIAL_RATE_COLLECTION_SET_SEQ(c2h_pkt, value) \
357 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 8, 8, value)
358 #define C2H_INITIAL_RATE_COLLECTION_SET_SEQ_NO_CLR(c2h_pkt, value) \
359 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 8, 8, value)
360 #define C2H_INITIAL_RATE_COLLECTION_GET_TRYING_BITMAP(c2h_pkt) \
361 GET_C2H_FIELD(c2h_pkt + 0X00, 16, 7)
362 #define C2H_INITIAL_RATE_COLLECTION_SET_TRYING_BITMAP(c2h_pkt, value) \
363 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 16, 7, value)
364 #define C2H_INITIAL_RATE_COLLECTION_SET_TRYING_BITMAP_NO_CLR(c2h_pkt, value) \
365 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 16, 7, value)
366 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE1(c2h_pkt) \
367 GET_C2H_FIELD(c2h_pkt + 0X00, 24, 8)
368 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE1(c2h_pkt, value) \
369 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 24, 8, value)
370 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE1_NO_CLR(c2h_pkt, value) \
371 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 24, 8, value)
372 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE2(c2h_pkt) \
373 GET_C2H_FIELD(c2h_pkt + 0X04, 0, 8)
374 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE2(c2h_pkt, value) \
375 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 8, value)
376 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE2_NO_CLR(c2h_pkt, value) \
377 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 8, value)
378 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE3(c2h_pkt) \
379 GET_C2H_FIELD(c2h_pkt + 0X04, 8, 8)
380 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE3(c2h_pkt, value) \
381 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 8, 8, value)
382 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE3_NO_CLR(c2h_pkt, value) \
383 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 8, 8, value)
384 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE4(c2h_pkt) \
385 GET_C2H_FIELD(c2h_pkt + 0X04, 16, 8)
386 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE4(c2h_pkt, value) \
387 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 16, 8, value)
388 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE4_NO_CLR(c2h_pkt, value) \
389 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 16, 8, value)
390 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE5(c2h_pkt) \
391 GET_C2H_FIELD(c2h_pkt + 0X04, 24, 8)
392 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE5(c2h_pkt, value) \
393 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 24, 8, value)
394 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE5_NO_CLR(c2h_pkt, value) \
395 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 24, 8, value)
396 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE6(c2h_pkt) \
397 GET_C2H_FIELD(c2h_pkt + 0X08, 0, 8)
398 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE6(c2h_pkt, value) \
399 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 0, 8, value)
400 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE6_NO_CLR(c2h_pkt, value) \
401 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 0, 8, value)
402 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE7(c2h_pkt) \
403 GET_C2H_FIELD(c2h_pkt + 0X08, 8, 8)
404 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE7(c2h_pkt, value) \
405 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 8, 8, value)
406 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE7_NO_CLR(c2h_pkt, value) \
407 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 8, 8, value)
408 #define C2H_INITIAL_RATE_COLLECTION_GET_LEN(c2h_pkt) \
409 GET_C2H_FIELD(c2h_pkt + 0X0C, 16, 8)
410 #define C2H_INITIAL_RATE_COLLECTION_SET_LEN(c2h_pkt, value) \
411 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 16, 8, value)
412 #define C2H_INITIAL_RATE_COLLECTION_SET_LEN_NO_CLR(c2h_pkt, value) \
413 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 16, 8, value)
414 #define C2H_INITIAL_RATE_COLLECTION_GET_TRIGGER(c2h_pkt) \
415 GET_C2H_FIELD(c2h_pkt + 0X0C, 24, 8)
416 #define C2H_INITIAL_RATE_COLLECTION_SET_TRIGGER(c2h_pkt, value) \
417 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 24, 8, value)
418 #define C2H_INITIAL_RATE_COLLECTION_SET_TRIGGER_NO_CLR(c2h_pkt, value) \
419 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 24, 8, value)
420 #define C2H_RA_RPT_GET_CMD_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 0, 8)
421 #define C2H_RA_RPT_SET_CMD_ID(c2h_pkt, value) \
422 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 0, 8, value)
423 #define C2H_RA_RPT_SET_CMD_ID_NO_CLR(c2h_pkt, value) \
424 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 0, 8, value)
425 #define C2H_RA_RPT_GET_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 8, 8)
426 #define C2H_RA_RPT_SET_SEQ(c2h_pkt, value) \
427 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 8, 8, value)
428 #define C2H_RA_RPT_SET_SEQ_NO_CLR(c2h_pkt, value) \
429 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 8, 8, value)
430 #define C2H_RA_RPT_GET_RATE(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 16, 8)
431 #define C2H_RA_RPT_SET_RATE(c2h_pkt, value) \
432 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 16, 8, value)
433 #define C2H_RA_RPT_SET_RATE_NO_CLR(c2h_pkt, value) \
434 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 16, 8, value)
435 #define C2H_RA_RPT_GET_MACID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 24, 8)
436 #define C2H_RA_RPT_SET_MACID(c2h_pkt, value) \
437 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 24, 8, value)
438 #define C2H_RA_RPT_SET_MACID_NO_CLR(c2h_pkt, value) \
439 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 24, 8, value)
440 #define C2H_RA_RPT_GET_USE_LDPC(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 0, 1)
441 #define C2H_RA_RPT_SET_USE_LDPC(c2h_pkt, value) \
442 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 1, value)
443 #define C2H_RA_RPT_SET_USE_LDPC_NO_CLR(c2h_pkt, value) \
444 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 1, value)
445 #define C2H_RA_RPT_GET_USE_TXBF(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 1, 1)
446 #define C2H_RA_RPT_SET_USE_TXBF(c2h_pkt, value) \
447 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 1, 1, value)
448 #define C2H_RA_RPT_SET_USE_TXBF_NO_CLR(c2h_pkt, value) \
449 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 1, 1, value)
450 #define C2H_RA_RPT_GET_COLLISION_STATE(c2h_pkt) \
451 GET_C2H_FIELD(c2h_pkt + 0X04, 8, 8)
452 #define C2H_RA_RPT_SET_COLLISION_STATE(c2h_pkt, value) \
453 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 8, 8, value)
454 #define C2H_RA_RPT_SET_COLLISION_STATE_NO_CLR(c2h_pkt, value) \
455 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 8, 8, value)
456 #define C2H_RA_RPT_GET_LEN(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 16, 8)
457 #define C2H_RA_RPT_SET_LEN(c2h_pkt, value) \
458 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 16, 8, value)
459 #define C2H_RA_RPT_SET_LEN_NO_CLR(c2h_pkt, value) \
460 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 16, 8, value)
461 #define C2H_RA_RPT_GET_TRIGGER(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 24, 8)
462 #define C2H_RA_RPT_SET_TRIGGER(c2h_pkt, value) \
463 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 24, 8, value)
464 #define C2H_RA_RPT_SET_TRIGGER_NO_CLR(c2h_pkt, value) \
465 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 24, 8, value)
466 #define C2H_SPECIAL_STATISTICS_GET_CMD_ID(c2h_pkt) \
467 GET_C2H_FIELD(c2h_pkt + 0X00, 0, 8)
468 #define C2H_SPECIAL_STATISTICS_SET_CMD_ID(c2h_pkt, value) \
469 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 0, 8, value)
470 #define C2H_SPECIAL_STATISTICS_SET_CMD_ID_NO_CLR(c2h_pkt, value) \
471 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 0, 8, value)
472 #define C2H_SPECIAL_STATISTICS_GET_SEQ(c2h_pkt) \
473 GET_C2H_FIELD(c2h_pkt + 0X00, 8, 8)
474 #define C2H_SPECIAL_STATISTICS_SET_SEQ(c2h_pkt, value) \
475 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 8, 8, value)
476 #define C2H_SPECIAL_STATISTICS_SET_SEQ_NO_CLR(c2h_pkt, value) \
477 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 8, 8, value)
478 #define C2H_SPECIAL_STATISTICS_GET_STATISTICS_IDX(c2h_pkt) \
479 GET_C2H_FIELD(c2h_pkt + 0X00, 16, 8)
480 #define C2H_SPECIAL_STATISTICS_SET_STATISTICS_IDX(c2h_pkt, value) \
481 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 16, 8, value)
482 #define C2H_SPECIAL_STATISTICS_SET_STATISTICS_IDX_NO_CLR(c2h_pkt, value) \
483 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 16, 8, value)
484 #define C2H_SPECIAL_STATISTICS_GET_DATA0(c2h_pkt) \
485 GET_C2H_FIELD(c2h_pkt + 0X00, 24, 8)
486 #define C2H_SPECIAL_STATISTICS_SET_DATA0(c2h_pkt, value) \
487 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 24, 8, value)
488 #define C2H_SPECIAL_STATISTICS_SET_DATA0_NO_CLR(c2h_pkt, value) \
489 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 24, 8, value)
490 #define C2H_SPECIAL_STATISTICS_GET_DATA1(c2h_pkt) \
491 GET_C2H_FIELD(c2h_pkt + 0X04, 0, 8)
492 #define C2H_SPECIAL_STATISTICS_SET_DATA1(c2h_pkt, value) \
493 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 8, value)
494 #define C2H_SPECIAL_STATISTICS_SET_DATA1_NO_CLR(c2h_pkt, value) \
495 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 8, value)
496 #define C2H_SPECIAL_STATISTICS_GET_DATA2(c2h_pkt) \
497 GET_C2H_FIELD(c2h_pkt + 0X04, 8, 8)
498 #define C2H_SPECIAL_STATISTICS_SET_DATA2(c2h_pkt, value) \
499 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 8, 8, value)
500 #define C2H_SPECIAL_STATISTICS_SET_DATA2_NO_CLR(c2h_pkt, value) \
501 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 8, 8, value)
502 #define C2H_SPECIAL_STATISTICS_GET_DATA3(c2h_pkt) \
503 GET_C2H_FIELD(c2h_pkt + 0X04, 16, 8)
504 #define C2H_SPECIAL_STATISTICS_SET_DATA3(c2h_pkt, value) \
505 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 16, 8, value)
506 #define C2H_SPECIAL_STATISTICS_SET_DATA3_NO_CLR(c2h_pkt, value) \
507 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 16, 8, value)
508 #define C2H_SPECIAL_STATISTICS_GET_DATA4(c2h_pkt) \
509 GET_C2H_FIELD(c2h_pkt + 0X04, 24, 8)
510 #define C2H_SPECIAL_STATISTICS_SET_DATA4(c2h_pkt, value) \
511 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 24, 8, value)
512 #define C2H_SPECIAL_STATISTICS_SET_DATA4_NO_CLR(c2h_pkt, value) \
513 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 24, 8, value)
514 #define C2H_SPECIAL_STATISTICS_GET_DATA5(c2h_pkt) \
515 GET_C2H_FIELD(c2h_pkt + 0X08, 0, 8)
516 #define C2H_SPECIAL_STATISTICS_SET_DATA5(c2h_pkt, value) \
517 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 0, 8, value)
518 #define C2H_SPECIAL_STATISTICS_SET_DATA5_NO_CLR(c2h_pkt, value) \
519 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 0, 8, value)
520 #define C2H_SPECIAL_STATISTICS_GET_DATA6(c2h_pkt) \
521 GET_C2H_FIELD(c2h_pkt + 0X08, 8, 8)
522 #define C2H_SPECIAL_STATISTICS_SET_DATA6(c2h_pkt, value) \
523 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 8, 8, value)
524 #define C2H_SPECIAL_STATISTICS_SET_DATA6_NO_CLR(c2h_pkt, value) \
525 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 8, 8, value)
526 #define C2H_SPECIAL_STATISTICS_GET_DATA7(c2h_pkt) \
527 GET_C2H_FIELD(c2h_pkt + 0X08, 16, 8)
528 #define C2H_SPECIAL_STATISTICS_SET_DATA7(c2h_pkt, value) \
529 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 16, 8, value)
530 #define C2H_SPECIAL_STATISTICS_SET_DATA7_NO_CLR(c2h_pkt, value) \
531 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 16, 8, value)
532 #define C2H_SPECIAL_STATISTICS_GET_LEN(c2h_pkt) \
533 GET_C2H_FIELD(c2h_pkt + 0X0C, 16, 8)
534 #define C2H_SPECIAL_STATISTICS_SET_LEN(c2h_pkt, value) \
535 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 16, 8, value)
536 #define C2H_SPECIAL_STATISTICS_SET_LEN_NO_CLR(c2h_pkt, value) \
537 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 16, 8, value)
538 #define C2H_SPECIAL_STATISTICS_GET_TRIGGER(c2h_pkt) \
539 GET_C2H_FIELD(c2h_pkt + 0X0C, 24, 8)
540 #define C2H_SPECIAL_STATISTICS_SET_TRIGGER(c2h_pkt, value) \
541 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 24, 8, value)
542 #define C2H_SPECIAL_STATISTICS_SET_TRIGGER_NO_CLR(c2h_pkt, value) \
543 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 24, 8, value)
544 #define C2H_RA_PARA_RPT_GET_CMD_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 0, 8)
545 #define C2H_RA_PARA_RPT_SET_CMD_ID(c2h_pkt, value) \
546 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 0, 8, value)
547 #define C2H_RA_PARA_RPT_SET_CMD_ID_NO_CLR(c2h_pkt, value) \
548 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 0, 8, value)
549 #define C2H_RA_PARA_RPT_GET_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 8, 8)
550 #define C2H_RA_PARA_RPT_SET_SEQ(c2h_pkt, value) \
551 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 8, 8, value)
552 #define C2H_RA_PARA_RPT_SET_SEQ_NO_CLR(c2h_pkt, value) \
553 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 8, 8, value)
554 #define C2H_RA_PARA_RPT_GET_LEN(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 16, 8)
555 #define C2H_RA_PARA_RPT_SET_LEN(c2h_pkt, value) \
556 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 16, 8, value)
557 #define C2H_RA_PARA_RPT_SET_LEN_NO_CLR(c2h_pkt, value) \
558 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 16, 8, value)
559 #define C2H_RA_PARA_RPT_GET_TRIGGER(c2h_pkt) \
560 GET_C2H_FIELD(c2h_pkt + 0X0C, 24, 8)
561 #define C2H_RA_PARA_RPT_SET_TRIGGER(c2h_pkt, value) \
562 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 24, 8, value)
563 #define C2H_RA_PARA_RPT_SET_TRIGGER_NO_CLR(c2h_pkt, value) \
564 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 24, 8, value)
565 #define C2H_CUR_CHANNEL_GET_CMD_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 0, 8)
566 #define C2H_CUR_CHANNEL_SET_CMD_ID(c2h_pkt, value) \
567 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 0, 8, value)
568 #define C2H_CUR_CHANNEL_SET_CMD_ID_NO_CLR(c2h_pkt, value) \
569 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 0, 8, value)
570 #define C2H_CUR_CHANNEL_GET_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 8, 8)
571 #define C2H_CUR_CHANNEL_SET_SEQ(c2h_pkt, value) \
572 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 8, 8, value)
573 #define C2H_CUR_CHANNEL_SET_SEQ_NO_CLR(c2h_pkt, value) \
574 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 8, 8, value)
575 #define C2H_CUR_CHANNEL_GET_CHANNEL_NUM(c2h_pkt) \
576 GET_C2H_FIELD(c2h_pkt + 0X00, 16, 8)
577 #define C2H_CUR_CHANNEL_SET_CHANNEL_NUM(c2h_pkt, value) \
578 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 16, 8, value)
579 #define C2H_CUR_CHANNEL_SET_CHANNEL_NUM_NO_CLR(c2h_pkt, value) \
580 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 16, 8, value)
581 #define C2H_CUR_CHANNEL_GET_LEN(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 16, 8)
582 #define C2H_CUR_CHANNEL_SET_LEN(c2h_pkt, value) \
583 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 16, 8, value)
584 #define C2H_CUR_CHANNEL_SET_LEN_NO_CLR(c2h_pkt, value) \
585 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 16, 8, value)
586 #define C2H_CUR_CHANNEL_GET_TRIGGER(c2h_pkt) \
587 GET_C2H_FIELD(c2h_pkt + 0X0C, 24, 8)
588 #define C2H_CUR_CHANNEL_SET_TRIGGER(c2h_pkt, value) \
589 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 24, 8, value)
590 #define C2H_CUR_CHANNEL_SET_TRIGGER_NO_CLR(c2h_pkt, value) \
591 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 24, 8, value)
592 #define C2H_GPIO_WAKEUP_GET_CMD_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 0, 8)
593 #define C2H_GPIO_WAKEUP_SET_CMD_ID(c2h_pkt, value) \
594 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 0, 8, value)
595 #define C2H_GPIO_WAKEUP_SET_CMD_ID_NO_CLR(c2h_pkt, value) \
596 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 0, 8, value)
597 #define C2H_GPIO_WAKEUP_GET_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 8, 8)
598 #define C2H_GPIO_WAKEUP_SET_SEQ(c2h_pkt, value) \
599 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 8, 8, value)
600 #define C2H_GPIO_WAKEUP_SET_SEQ_NO_CLR(c2h_pkt, value) \
601 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 8, 8, value)
602 #define C2H_GPIO_WAKEUP_GET_LEN(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 16, 8)
603 #define C2H_GPIO_WAKEUP_SET_LEN(c2h_pkt, value) \
604 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 16, 8, value)
605 #define C2H_GPIO_WAKEUP_SET_LEN_NO_CLR(c2h_pkt, value) \
606 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 16, 8, value)
607 #define C2H_GPIO_WAKEUP_GET_TRIGGER(c2h_pkt) \
608 GET_C2H_FIELD(c2h_pkt + 0X0C, 24, 8)
609 #define C2H_GPIO_WAKEUP_SET_TRIGGER(c2h_pkt, value) \
610 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 24, 8, value)
611 #define C2H_GPIO_WAKEUP_SET_TRIGGER_NO_CLR(c2h_pkt, value) \
612 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 24, 8, value)
613 #define C2H_DROPID_RPT_GET_CMD_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 0, 8)
614 #define C2H_DROPID_RPT_SET_CMD_ID(c2h_pkt, value) \
615 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 0, 8, value)
616 #define C2H_DROPID_RPT_SET_CMD_ID_NO_CLR(c2h_pkt, value) \
617 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 0, 8, value)
618 #define C2H_DROPID_RPT_GET_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 8, 8)
619 #define C2H_DROPID_RPT_SET_SEQ(c2h_pkt, value) \
620 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 8, 8, value)
621 #define C2H_DROPID_RPT_SET_SEQ_NO_CLR(c2h_pkt, value) \
622 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 8, 8, value)
623 #define C2H_DROPID_RPT_GET_DROPIDBIT(c2h_pkt) \
624 GET_C2H_FIELD(c2h_pkt + 0X00, 16, 4)
625 #define C2H_DROPID_RPT_SET_DROPIDBIT(c2h_pkt, value) \
626 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 16, 4, value)
627 #define C2H_DROPID_RPT_SET_DROPIDBIT_NO_CLR(c2h_pkt, value) \
628 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 16, 4, value)
629 #define C2H_DROPID_RPT_GET_CURDROPID(c2h_pkt) \
630 GET_C2H_FIELD(c2h_pkt + 0X00, 20, 2)
631 #define C2H_DROPID_RPT_SET_CURDROPID(c2h_pkt, value) \
632 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 20, 2, value)
633 #define C2H_DROPID_RPT_SET_CURDROPID_NO_CLR(c2h_pkt, value) \
634 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 20, 2, value)
635 #define C2H_DROPID_RPT_GET_MACID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 0, 8)
636 #define C2H_DROPID_RPT_SET_MACID(c2h_pkt, value) \
637 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 8, value)
638 #define C2H_DROPID_RPT_SET_MACID_NO_CLR(c2h_pkt, value) \
639 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 8, value)
640 #define C2H_DROPID_RPT_GET_LEN(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 16, 8)
641 #define C2H_DROPID_RPT_SET_LEN(c2h_pkt, value) \
642 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 16, 8, value)
643 #define C2H_DROPID_RPT_SET_LEN_NO_CLR(c2h_pkt, value) \
644 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 16, 8, value)
645 #define C2H_DROPID_RPT_GET_TRIGGER(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 24, 8)
646 #define C2H_DROPID_RPT_SET_TRIGGER(c2h_pkt, value) \
647 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 24, 8, value)
648 #define C2H_DROPID_RPT_SET_TRIGGER_NO_CLR(c2h_pkt, value) \
649 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 24, 8, value)