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_FWOFFLOADH2CFORMAT_H2C_C2H_AP_H_
17 #define _HAL_FWOFFLOADH2CFORMAT_H2C_C2H_AP_H_
18 #define CMD_ID_FW_OFFLOAD_H2C 0XFF
19 #define CMD_ID_FW_ACCESS_TEST 0XFF
20 #define CMD_ID_CH_SWITCH 0XFF
21 #define CMD_ID_DUMP_PHYSICAL_EFUSE 0XFF
22 #define CMD_ID_UPDATE_BEACON_PARSING_INFO 0XFF
23 #define CMD_ID_CFG_PARAM 0XFF
24 #define CMD_ID_UPDATE_DATAPACK 0XFF
25 #define CMD_ID_RUN_DATAPACK 0XFF
26 #define CMD_ID_DOWNLOAD_FLASH 0XFF
27 #define CMD_ID_UPDATE_PKT 0XFF
28 #define CMD_ID_GENERAL_INFO 0XFF
29 #define CMD_ID_IQK 0XFF
30 #define CMD_ID_PWR_TRK 0XFF
31 #define CMD_ID_PSD 0XFF
32 #define CMD_ID_PHYDM_INFO 0XFF
33 #define CMD_ID_FW_SNDING 0XFF
34 #define CMD_ID_FW_FWCTRL 0XFF
35 #define CMD_ID_H2C_LOOPBACK 0XFF
36 #define CMD_ID_FWCMD_LOOPBACK 0XFF
37 #define CMD_ID_P2PPS 0XFF
38 #define CMD_ID_BT_COEX 0XFF
39 #define CMD_ID_NAN_CTRL 0XFF
40 #define CMD_ID_NAN_CHANNEL_PLAN_0 0XFF
41 #define CMD_ID_NAN_CHANNEL_PLAN_1 0XFF
42 #define CATEGORY_H2C_CMD_HEADER 0X00
43 #define CATEGORY_FW_OFFLOAD_H2C 0X01
44 #define CATEGORY_FW_ACCESS_TEST 0X01
45 #define CATEGORY_CH_SWITCH 0X01
46 #define CATEGORY_DUMP_PHYSICAL_EFUSE 0X01
47 #define CATEGORY_UPDATE_BEACON_PARSING_INFO 0X01
48 #define CATEGORY_CFG_PARAM 0X01
49 #define CATEGORY_UPDATE_DATAPACK 0X01
50 #define CATEGORY_RUN_DATAPACK 0X01
51 #define CATEGORY_DOWNLOAD_FLASH 0X01
52 #define CATEGORY_UPDATE_PKT 0X01
53 #define CATEGORY_GENERAL_INFO 0X01
54 #define CATEGORY_IQK 0X01
55 #define CATEGORY_PWR_TRK 0X01
56 #define CATEGORY_PSD 0X01
57 #define CATEGORY_PHYDM_INFO 0X01
58 #define CATEGORY_FW_SNDING 0X01
59 #define CATEGORY_FW_FWCTRL 0X01
60 #define CATEGORY_H2C_LOOPBACK 0X01
61 #define CATEGORY_FWCMD_LOOPBACK 0X01
62 #define CATEGORY_P2PPS 0X01
63 #define CATEGORY_BT_COEX 0X01
64 #define CATEGORY_NAN_CTRL 0X01
65 #define CATEGORY_NAN_CHANNEL_PLAN_0 0X01
66 #define CATEGORY_NAN_CHANNEL_PLAN_1 0X01
67 #define SUB_CMD_ID_FW_ACCESS_TEST 0X00
68 #define SUB_CMD_ID_CH_SWITCH 0X02
69 #define SUB_CMD_ID_DUMP_PHYSICAL_EFUSE 0X03
70 #define SUB_CMD_ID_UPDATE_BEACON_PARSING_INFO 0X05
71 #define SUB_CMD_ID_CFG_PARAM 0X08
72 #define SUB_CMD_ID_UPDATE_DATAPACK 0X09
73 #define SUB_CMD_ID_RUN_DATAPACK 0X0A
74 #define SUB_CMD_ID_DOWNLOAD_FLASH 0X0B
75 #define SUB_CMD_ID_UPDATE_PKT 0X0C
76 #define SUB_CMD_ID_GENERAL_INFO 0X0D
77 #define SUB_CMD_ID_IQK 0X0E
78 #define SUB_CMD_ID_PWR_TRK 0X0F
79 #define SUB_CMD_ID_PSD 0X10
80 #define SUB_CMD_ID_PHYDM_INFO 0X11
81 #define SUB_CMD_ID_FW_SNDING 0X12
82 #define SUB_CMD_ID_FW_FWCTRL 0X13
83 #define SUB_CMD_ID_H2C_LOOPBACK 0X14
84 #define SUB_CMD_ID_FWCMD_LOOPBACK 0X15
85 #define SUB_CMD_ID_P2PPS 0X24
86 #define SUB_CMD_ID_BT_COEX 0X60
87 #define SUB_CMD_ID_NAN_CTRL 0XB2
88 #define SUB_CMD_ID_NAN_CHANNEL_PLAN_0 0XB4
89 #define SUB_CMD_ID_NAN_CHANNEL_PLAN_1 0XB5
90 #define H2C_CMD_HEADER_GET_CATEGORY(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 7)
91 #define H2C_CMD_HEADER_SET_CATEGORY(h2c_pkt, value) \
92 SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 7, value)
93 #define H2C_CMD_HEADER_SET_CATEGORY_NO_CLR(h2c_pkt, value) \
94 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 7, value)
95 #define H2C_CMD_HEADER_GET_ACK(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 7, 1)
96 #define H2C_CMD_HEADER_SET_ACK(h2c_pkt, value) \
97 SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 7, 1, value)
98 #define H2C_CMD_HEADER_SET_ACK_NO_CLR(h2c_pkt, value) \
99 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 7, 1, value)
100 #define H2C_CMD_HEADER_GET_TOTAL_LEN(h2c_pkt) \
101 GET_H2C_FIELD(h2c_pkt + 0X04, 0, 16)
102 #define H2C_CMD_HEADER_SET_TOTAL_LEN(h2c_pkt, value) \
103 SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 16, value)
104 #define H2C_CMD_HEADER_SET_TOTAL_LEN_NO_CLR(h2c_pkt, value) \
105 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 16, value)
106 #define H2C_CMD_HEADER_GET_SEQ_NUM(h2c_pkt) \
107 GET_H2C_FIELD(h2c_pkt + 0X04, 16, 16)
108 #define H2C_CMD_HEADER_SET_SEQ_NUM(h2c_pkt, value) \
109 SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 16, 16, value)
110 #define H2C_CMD_HEADER_SET_SEQ_NUM_NO_CLR(h2c_pkt, value) \
111 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 16, 16, value)
112 #define FW_OFFLOAD_H2C_GET_CATEGORY(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 0, 7)
113 #define FW_OFFLOAD_H2C_SET_CATEGORY(h2c_pkt, value) \
114 SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 0, 7, value)
115 #define FW_OFFLOAD_H2C_SET_CATEGORY_NO_CLR(h2c_pkt, value) \
116 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 0, 7, value)
117 #define FW_OFFLOAD_H2C_GET_ACK(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 7, 1)
118 #define FW_OFFLOAD_H2C_SET_ACK(h2c_pkt, value) \
119 SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 7, 1, value)
120 #define FW_OFFLOAD_H2C_SET_ACK_NO_CLR(h2c_pkt, value) \
121 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 7, 1, value)
122 #define FW_OFFLOAD_H2C_GET_CMD_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X00, 8, 8)
123 #define FW_OFFLOAD_H2C_SET_CMD_ID(h2c_pkt, value) \
124 SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 8, 8, value)
125 #define FW_OFFLOAD_H2C_SET_CMD_ID_NO_CLR(h2c_pkt, value) \
126 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 8, 8, value)
127 #define FW_OFFLOAD_H2C_GET_SUB_CMD_ID(h2c_pkt) \
128 GET_H2C_FIELD(h2c_pkt + 0X00, 16, 16)
129 #define FW_OFFLOAD_H2C_SET_SUB_CMD_ID(h2c_pkt, value) \
130 SET_H2C_FIELD_CLR(h2c_pkt + 0X00, 16, 16, value)
131 #define FW_OFFLOAD_H2C_SET_SUB_CMD_ID_NO_CLR(h2c_pkt, value) \
132 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X00, 16, 16, value)
133 #define FW_OFFLOAD_H2C_GET_TOTAL_LEN(h2c_pkt) \
134 GET_H2C_FIELD(h2c_pkt + 0X04, 0, 16)
135 #define FW_OFFLOAD_H2C_SET_TOTAL_LEN(h2c_pkt, value) \
136 SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 0, 16, value)
137 #define FW_OFFLOAD_H2C_SET_TOTAL_LEN_NO_CLR(h2c_pkt, value) \
138 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 0, 16, value)
139 #define FW_OFFLOAD_H2C_GET_SEQ_NUM(h2c_pkt) \
140 GET_H2C_FIELD(h2c_pkt + 0X04, 16, 16)
141 #define FW_OFFLOAD_H2C_SET_SEQ_NUM(h2c_pkt, value) \
142 SET_H2C_FIELD_CLR(h2c_pkt + 0X04, 16, 16, value)
143 #define FW_OFFLOAD_H2C_SET_SEQ_NUM_NO_CLR(h2c_pkt, value) \
144 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X04, 16, 16, value)
145 #define FW_ACCESS_TEST_GET_ACCESS_TXFF(h2c_pkt) \
146 GET_H2C_FIELD(h2c_pkt + 0X08, 0, 1)
147 #define FW_ACCESS_TEST_SET_ACCESS_TXFF(h2c_pkt, value) \
148 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 1, value)
149 #define FW_ACCESS_TEST_SET_ACCESS_TXFF_NO_CLR(h2c_pkt, value) \
150 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 1, value)
151 #define FW_ACCESS_TEST_GET_ACCESS_RXFF(h2c_pkt) \
152 GET_H2C_FIELD(h2c_pkt + 0X08, 1, 1)
153 #define FW_ACCESS_TEST_SET_ACCESS_RXFF(h2c_pkt, value) \
154 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 1, 1, value)
155 #define FW_ACCESS_TEST_SET_ACCESS_RXFF_NO_CLR(h2c_pkt, value) \
156 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 1, 1, value)
157 #define FW_ACCESS_TEST_GET_ACCESS_FWFF(h2c_pkt) \
158 GET_H2C_FIELD(h2c_pkt + 0X08, 2, 1)
159 #define FW_ACCESS_TEST_SET_ACCESS_FWFF(h2c_pkt, value) \
160 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 2, 1, value)
161 #define FW_ACCESS_TEST_SET_ACCESS_FWFF_NO_CLR(h2c_pkt, value) \
162 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 2, 1, value)
163 #define FW_ACCESS_TEST_GET_ACCESS_PHYFF(h2c_pkt) \
164 GET_H2C_FIELD(h2c_pkt + 0X08, 3, 1)
165 #define FW_ACCESS_TEST_SET_ACCESS_PHYFF(h2c_pkt, value) \
166 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 3, 1, value)
167 #define FW_ACCESS_TEST_SET_ACCESS_PHYFF_NO_CLR(h2c_pkt, value) \
168 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 3, 1, value)
169 #define FW_ACCESS_TEST_GET_ACCESS_RPT_BUF(h2c_pkt) \
170 GET_H2C_FIELD(h2c_pkt + 0X08, 4, 1)
171 #define FW_ACCESS_TEST_SET_ACCESS_RPT_BUF(h2c_pkt, value) \
172 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 4, 1, value)
173 #define FW_ACCESS_TEST_SET_ACCESS_RPT_BUF_NO_CLR(h2c_pkt, value) \
174 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 4, 1, value)
175 #define FW_ACCESS_TEST_GET_ACCESS_CAM(h2c_pkt) \
176 GET_H2C_FIELD(h2c_pkt + 0X08, 5, 1)
177 #define FW_ACCESS_TEST_SET_ACCESS_CAM(h2c_pkt, value) \
178 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 5, 1, value)
179 #define FW_ACCESS_TEST_SET_ACCESS_CAM_NO_CLR(h2c_pkt, value) \
180 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 5, 1, value)
181 #define FW_ACCESS_TEST_GET_ACCESS_WOW_CAM(h2c_pkt) \
182 GET_H2C_FIELD(h2c_pkt + 0X08, 6, 1)
183 #define FW_ACCESS_TEST_SET_ACCESS_WOW_CAM(h2c_pkt, value) \
184 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 6, 1, value)
185 #define FW_ACCESS_TEST_SET_ACCESS_WOW_CAM_NO_CLR(h2c_pkt, value) \
186 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 6, 1, value)
187 #define FW_ACCESS_TEST_GET_ACCESS_RX_CAM(h2c_pkt) \
188 GET_H2C_FIELD(h2c_pkt + 0X08, 7, 1)
189 #define FW_ACCESS_TEST_SET_ACCESS_RX_CAM(h2c_pkt, value) \
190 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 7, 1, value)
191 #define FW_ACCESS_TEST_SET_ACCESS_RX_CAM_NO_CLR(h2c_pkt, value) \
192 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 7, 1, value)
193 #define FW_ACCESS_TEST_GET_ACCESS_BA_CAM(h2c_pkt) \
194 GET_H2C_FIELD(h2c_pkt + 0X08, 8, 1)
195 #define FW_ACCESS_TEST_SET_ACCESS_BA_CAM(h2c_pkt, value) \
196 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 1, value)
197 #define FW_ACCESS_TEST_SET_ACCESS_BA_CAM_NO_CLR(h2c_pkt, value) \
198 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 1, value)
199 #define FW_ACCESS_TEST_GET_ACCESS_MBSSID_CAM(h2c_pkt) \
200 GET_H2C_FIELD(h2c_pkt + 0X08, 9, 1)
201 #define FW_ACCESS_TEST_SET_ACCESS_MBSSID_CAM(h2c_pkt, value) \
202 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 9, 1, value)
203 #define FW_ACCESS_TEST_SET_ACCESS_MBSSID_CAM_NO_CLR(h2c_pkt, value) \
204 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 9, 1, value)
205 #define FW_ACCESS_TEST_GET_ACCESS_PAGE0(h2c_pkt) \
206 GET_H2C_FIELD(h2c_pkt + 0X08, 16, 1)
207 #define FW_ACCESS_TEST_SET_ACCESS_PAGE0(h2c_pkt, value) \
208 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 1, value)
209 #define FW_ACCESS_TEST_SET_ACCESS_PAGE0_NO_CLR(h2c_pkt, value) \
210 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 1, value)
211 #define FW_ACCESS_TEST_GET_ACCESS_PAGE1(h2c_pkt) \
212 GET_H2C_FIELD(h2c_pkt + 0X08, 17, 1)
213 #define FW_ACCESS_TEST_SET_ACCESS_PAGE1(h2c_pkt, value) \
214 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 17, 1, value)
215 #define FW_ACCESS_TEST_SET_ACCESS_PAGE1_NO_CLR(h2c_pkt, value) \
216 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 17, 1, value)
217 #define FW_ACCESS_TEST_GET_ACCESS_PAGE2(h2c_pkt) \
218 GET_H2C_FIELD(h2c_pkt + 0X08, 18, 1)
219 #define FW_ACCESS_TEST_SET_ACCESS_PAGE2(h2c_pkt, value) \
220 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 18, 1, value)
221 #define FW_ACCESS_TEST_SET_ACCESS_PAGE2_NO_CLR(h2c_pkt, value) \
222 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 18, 1, value)
223 #define FW_ACCESS_TEST_GET_ACCESS_PAGE3(h2c_pkt) \
224 GET_H2C_FIELD(h2c_pkt + 0X08, 19, 1)
225 #define FW_ACCESS_TEST_SET_ACCESS_PAGE3(h2c_pkt, value) \
226 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 19, 1, value)
227 #define FW_ACCESS_TEST_SET_ACCESS_PAGE3_NO_CLR(h2c_pkt, value) \
228 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 19, 1, value)
229 #define FW_ACCESS_TEST_GET_ACCESS_PAGE4(h2c_pkt) \
230 GET_H2C_FIELD(h2c_pkt + 0X08, 20, 1)
231 #define FW_ACCESS_TEST_SET_ACCESS_PAGE4(h2c_pkt, value) \
232 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 20, 1, value)
233 #define FW_ACCESS_TEST_SET_ACCESS_PAGE4_NO_CLR(h2c_pkt, value) \
234 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 20, 1, value)
235 #define FW_ACCESS_TEST_GET_ACCESS_PAGE5(h2c_pkt) \
236 GET_H2C_FIELD(h2c_pkt + 0X08, 21, 1)
237 #define FW_ACCESS_TEST_SET_ACCESS_PAGE5(h2c_pkt, value) \
238 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 21, 1, value)
239 #define FW_ACCESS_TEST_SET_ACCESS_PAGE5_NO_CLR(h2c_pkt, value) \
240 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 21, 1, value)
241 #define FW_ACCESS_TEST_GET_ACCESS_PAGE6(h2c_pkt) \
242 GET_H2C_FIELD(h2c_pkt + 0X08, 22, 1)
243 #define FW_ACCESS_TEST_SET_ACCESS_PAGE6(h2c_pkt, value) \
244 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 22, 1, value)
245 #define FW_ACCESS_TEST_SET_ACCESS_PAGE6_NO_CLR(h2c_pkt, value) \
246 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 22, 1, value)
247 #define FW_ACCESS_TEST_GET_ACCESS_PAGE7(h2c_pkt) \
248 GET_H2C_FIELD(h2c_pkt + 0X08, 23, 1)
249 #define FW_ACCESS_TEST_SET_ACCESS_PAGE7(h2c_pkt, value) \
250 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 23, 1, value)
251 #define FW_ACCESS_TEST_SET_ACCESS_PAGE7_NO_CLR(h2c_pkt, value) \
252 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 23, 1, value)
253 #define CH_SWITCH_GET_START(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 1)
254 #define CH_SWITCH_SET_START(h2c_pkt, value) \
255 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 1, value)
256 #define CH_SWITCH_SET_START_NO_CLR(h2c_pkt, value) \
257 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 1, value)
258 #define CH_SWITCH_GET_DEST_CH_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 1, 1)
259 #define CH_SWITCH_SET_DEST_CH_EN(h2c_pkt, value) \
260 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 1, 1, value)
261 #define CH_SWITCH_SET_DEST_CH_EN_NO_CLR(h2c_pkt, value) \
262 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 1, 1, value)
263 #define CH_SWITCH_GET_ABSOLUTE_TIME(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 2, 1)
264 #define CH_SWITCH_SET_ABSOLUTE_TIME(h2c_pkt, value) \
265 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 2, 1, value)
266 #define CH_SWITCH_SET_ABSOLUTE_TIME_NO_CLR(h2c_pkt, value) \
267 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 2, 1, value)
268 #define CH_SWITCH_GET_PERIODIC_OPT(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 3, 2)
269 #define CH_SWITCH_SET_PERIODIC_OPT(h2c_pkt, value) \
270 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 3, 2, value)
271 #define CH_SWITCH_SET_PERIODIC_OPT_NO_CLR(h2c_pkt, value) \
272 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 3, 2, value)
273 #define CH_SWITCH_GET_INFO_LOC(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8)
274 #define CH_SWITCH_SET_INFO_LOC(h2c_pkt, value) \
275 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value)
276 #define CH_SWITCH_SET_INFO_LOC_NO_CLR(h2c_pkt, value) \
277 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value)
278 #define CH_SWITCH_GET_CH_NUM(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8)
279 #define CH_SWITCH_SET_CH_NUM(h2c_pkt, value) \
280 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value)
281 #define CH_SWITCH_SET_CH_NUM_NO_CLR(h2c_pkt, value) \
282 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value)
283 #define CH_SWITCH_GET_PRI_CH_IDX(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 24, 4)
284 #define CH_SWITCH_SET_PRI_CH_IDX(h2c_pkt, value) \
285 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 4, value)
286 #define CH_SWITCH_SET_PRI_CH_IDX_NO_CLR(h2c_pkt, value) \
287 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 4, value)
288 #define CH_SWITCH_GET_DEST_BW(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 28, 4)
289 #define CH_SWITCH_SET_DEST_BW(h2c_pkt, value) \
290 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 28, 4, value)
291 #define CH_SWITCH_SET_DEST_BW_NO_CLR(h2c_pkt, value) \
292 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 28, 4, value)
293 #define CH_SWITCH_GET_DEST_CH(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 8)
294 #define CH_SWITCH_SET_DEST_CH(h2c_pkt, value) \
295 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 8, value)
296 #define CH_SWITCH_SET_DEST_CH_NO_CLR(h2c_pkt, value) \
297 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 8, value)
298 #define CH_SWITCH_GET_NORMAL_PERIOD(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 8, 6)
299 #define CH_SWITCH_SET_NORMAL_PERIOD(h2c_pkt, value) \
300 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 8, 6, value)
301 #define CH_SWITCH_SET_NORMAL_PERIOD_NO_CLR(h2c_pkt, value) \
302 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 8, 6, value)
303 #define CH_SWITCH_GET_NORMAL_PERIOD_SEL(h2c_pkt) \
304 GET_H2C_FIELD(h2c_pkt + 0X0C, 14, 2)
305 #define CH_SWITCH_SET_NORMAL_PERIOD_SEL(h2c_pkt, value) \
306 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 14, 2, value)
307 #define CH_SWITCH_SET_NORMAL_PERIOD_SEL_NO_CLR(h2c_pkt, value) \
308 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 14, 2, value)
309 #define CH_SWITCH_GET_SLOW_PERIOD(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 16, 6)
310 #define CH_SWITCH_SET_SLOW_PERIOD(h2c_pkt, value) \
311 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 16, 6, value)
312 #define CH_SWITCH_SET_SLOW_PERIOD_NO_CLR(h2c_pkt, value) \
313 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 16, 6, value)
314 #define CH_SWITCH_GET_SLOW_PERIOD_SEL(h2c_pkt) \
315 GET_H2C_FIELD(h2c_pkt + 0X0C, 22, 2)
316 #define CH_SWITCH_SET_SLOW_PERIOD_SEL(h2c_pkt, value) \
317 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 22, 2, value)
318 #define CH_SWITCH_SET_SLOW_PERIOD_SEL_NO_CLR(h2c_pkt, value) \
319 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 22, 2, value)
320 #define CH_SWITCH_GET_NORMAL_CYCLE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 24, 8)
321 #define CH_SWITCH_SET_NORMAL_CYCLE(h2c_pkt, value) \
322 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 24, 8, value)
323 #define CH_SWITCH_SET_NORMAL_CYCLE_NO_CLR(h2c_pkt, value) \
324 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 24, 8, value)
325 #define CH_SWITCH_GET_TSF_HIGH(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X10, 0, 32)
326 #define CH_SWITCH_SET_TSF_HIGH(h2c_pkt, value) \
327 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 0, 32, value)
328 #define CH_SWITCH_SET_TSF_HIGH_NO_CLR(h2c_pkt, value) \
329 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 0, 32, value)
330 #define CH_SWITCH_GET_TSF_LOW(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X14, 0, 32)
331 #define CH_SWITCH_SET_TSF_LOW(h2c_pkt, value) \
332 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 0, 32, value)
333 #define CH_SWITCH_SET_TSF_LOW_NO_CLR(h2c_pkt, value) \
334 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 0, 32, value)
335 #define CH_SWITCH_GET_INFO_SIZE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X18, 0, 16)
336 #define CH_SWITCH_SET_INFO_SIZE(h2c_pkt, value) \
337 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 0, 16, value)
338 #define CH_SWITCH_SET_INFO_SIZE_NO_CLR(h2c_pkt, value) \
339 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 0, 16, value)
340 #define UPDATE_BEACON_PARSING_INFO_GET_FUNC_EN(h2c_pkt) \
341 GET_H2C_FIELD(h2c_pkt + 0X08, 0, 1)
342 #define UPDATE_BEACON_PARSING_INFO_SET_FUNC_EN(h2c_pkt, value) \
343 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 1, value)
344 #define UPDATE_BEACON_PARSING_INFO_SET_FUNC_EN_NO_CLR(h2c_pkt, value) \
345 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 1, value)
346 #define UPDATE_BEACON_PARSING_INFO_GET_SIZE_TH(h2c_pkt) \
347 GET_H2C_FIELD(h2c_pkt + 0X08, 8, 4)
348 #define UPDATE_BEACON_PARSING_INFO_SET_SIZE_TH(h2c_pkt, value) \
349 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 4, value)
350 #define UPDATE_BEACON_PARSING_INFO_SET_SIZE_TH_NO_CLR(h2c_pkt, value) \
351 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 4, value)
352 #define UPDATE_BEACON_PARSING_INFO_GET_TIMEOUT(h2c_pkt) \
353 GET_H2C_FIELD(h2c_pkt + 0X08, 12, 4)
354 #define UPDATE_BEACON_PARSING_INFO_SET_TIMEOUT(h2c_pkt, value) \
355 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 12, 4, value)
356 #define UPDATE_BEACON_PARSING_INFO_SET_TIMEOUT_NO_CLR(h2c_pkt, value) \
357 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 12, 4, value)
358 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_0(h2c_pkt) \
359 GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 32)
360 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_0(h2c_pkt, value) \
361 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 32, value)
362 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_0_NO_CLR(h2c_pkt, value) \
363 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 32, value)
364 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_1(h2c_pkt) \
365 GET_H2C_FIELD(h2c_pkt + 0X10, 0, 32)
366 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_1(h2c_pkt, value) \
367 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 0, 32, value)
368 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_1_NO_CLR(h2c_pkt, value) \
369 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 0, 32, value)
370 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_2(h2c_pkt) \
371 GET_H2C_FIELD(h2c_pkt + 0X14, 0, 32)
372 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_2(h2c_pkt, value) \
373 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 0, 32, value)
374 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_2_NO_CLR(h2c_pkt, value) \
375 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 0, 32, value)
376 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_3(h2c_pkt) \
377 GET_H2C_FIELD(h2c_pkt + 0X18, 0, 32)
378 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_3(h2c_pkt, value) \
379 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 0, 32, value)
380 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_3_NO_CLR(h2c_pkt, value) \
381 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 0, 32, value)
382 #define UPDATE_BEACON_PARSING_INFO_GET_IE_ID_BMP_4(h2c_pkt) \
383 GET_H2C_FIELD(h2c_pkt + 0X1C, 0, 32)
384 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_4(h2c_pkt, value) \
385 SET_H2C_FIELD_CLR(h2c_pkt + 0X1C, 0, 32, value)
386 #define UPDATE_BEACON_PARSING_INFO_SET_IE_ID_BMP_4_NO_CLR(h2c_pkt, value) \
387 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X1C, 0, 32, value)
388 #define CFG_PARAM_GET_NUM(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 16)
389 #define CFG_PARAM_SET_NUM(h2c_pkt, value) \
390 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 16, value)
391 #define CFG_PARAM_SET_NUM_NO_CLR(h2c_pkt, value) \
392 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 16, value)
393 #define CFG_PARAM_GET_INIT_CASE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 16, 1)
394 #define CFG_PARAM_SET_INIT_CASE(h2c_pkt, value) \
395 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 1, value)
396 #define CFG_PARAM_SET_INIT_CASE_NO_CLR(h2c_pkt, value) \
397 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 1, value)
398 #define CFG_PARAM_GET_LOC(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 24, 8)
399 #define CFG_PARAM_SET_LOC(h2c_pkt, value) \
400 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 8, value)
401 #define CFG_PARAM_SET_LOC_NO_CLR(h2c_pkt, value) \
402 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 8, value)
403 #define UPDATE_DATAPACK_GET_SIZE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 16)
404 #define UPDATE_DATAPACK_SET_SIZE(h2c_pkt, value) \
405 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 16, value)
406 #define UPDATE_DATAPACK_SET_SIZE_NO_CLR(h2c_pkt, value) \
407 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 16, value)
408 #define UPDATE_DATAPACK_GET_DATAPACK_ID(h2c_pkt) \
409 GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8)
410 #define UPDATE_DATAPACK_SET_DATAPACK_ID(h2c_pkt, value) \
411 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value)
412 #define UPDATE_DATAPACK_SET_DATAPACK_ID_NO_CLR(h2c_pkt, value) \
413 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value)
414 #define UPDATE_DATAPACK_GET_DATAPACK_LOC(h2c_pkt) \
415 GET_H2C_FIELD(h2c_pkt + 0X08, 24, 8)
416 #define UPDATE_DATAPACK_SET_DATAPACK_LOC(h2c_pkt, value) \
417 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 8, value)
418 #define UPDATE_DATAPACK_SET_DATAPACK_LOC_NO_CLR(h2c_pkt, value) \
419 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 8, value)
420 #define UPDATE_DATAPACK_GET_DATAPACK_SEGMENT(h2c_pkt) \
421 GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 8)
422 #define UPDATE_DATAPACK_SET_DATAPACK_SEGMENT(h2c_pkt, value) \
423 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 8, value)
424 #define UPDATE_DATAPACK_SET_DATAPACK_SEGMENT_NO_CLR(h2c_pkt, value) \
425 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 8, value)
426 #define UPDATE_DATAPACK_GET_END_SEGMENT(h2c_pkt) \
427 GET_H2C_FIELD(h2c_pkt + 0X0C, 8, 1)
428 #define UPDATE_DATAPACK_SET_END_SEGMENT(h2c_pkt, value) \
429 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 8, 1, value)
430 #define UPDATE_DATAPACK_SET_END_SEGMENT_NO_CLR(h2c_pkt, value) \
431 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 8, 1, value)
432 #define RUN_DATAPACK_GET_DATAPACK_ID(h2c_pkt) \
433 GET_H2C_FIELD(h2c_pkt + 0X08, 0, 8)
434 #define RUN_DATAPACK_SET_DATAPACK_ID(h2c_pkt, value) \
435 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 8, value)
436 #define RUN_DATAPACK_SET_DATAPACK_ID_NO_CLR(h2c_pkt, value) \
437 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 8, value)
438 #define DOWNLOAD_FLASH_GET_SPI_CMD(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 8)
439 #define DOWNLOAD_FLASH_SET_SPI_CMD(h2c_pkt, value) \
440 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 8, value)
441 #define DOWNLOAD_FLASH_SET_SPI_CMD_NO_CLR(h2c_pkt, value) \
442 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 8, value)
443 #define DOWNLOAD_FLASH_GET_LOCATION(h2c_pkt) \
444 GET_H2C_FIELD(h2c_pkt + 0X08, 8, 16)
445 #define DOWNLOAD_FLASH_SET_LOCATION(h2c_pkt, value) \
446 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 16, value)
447 #define DOWNLOAD_FLASH_SET_LOCATION_NO_CLR(h2c_pkt, value) \
448 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 16, value)
449 #define DOWNLOAD_FLASH_GET_SIZE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 32)
450 #define DOWNLOAD_FLASH_SET_SIZE(h2c_pkt, value) \
451 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 32, value)
452 #define DOWNLOAD_FLASH_SET_SIZE_NO_CLR(h2c_pkt, value) \
453 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 32, value)
454 #define DOWNLOAD_FLASH_GET_START_ADDR(h2c_pkt) \
455 GET_H2C_FIELD(h2c_pkt + 0X10, 0, 32)
456 #define DOWNLOAD_FLASH_SET_START_ADDR(h2c_pkt, value) \
457 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 0, 32, value)
458 #define DOWNLOAD_FLASH_SET_START_ADDR_NO_CLR(h2c_pkt, value) \
459 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 0, 32, value)
460 #define UPDATE_PKT_GET_SIZE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 16)
461 #define UPDATE_PKT_SET_SIZE(h2c_pkt, value) \
462 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 16, value)
463 #define UPDATE_PKT_SET_SIZE_NO_CLR(h2c_pkt, value) \
464 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 16, value)
465 #define UPDATE_PKT_GET_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8)
466 #define UPDATE_PKT_SET_ID(h2c_pkt, value) \
467 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value)
468 #define UPDATE_PKT_SET_ID_NO_CLR(h2c_pkt, value) \
469 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value)
470 #define UPDATE_PKT_GET_LOC(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 24, 8)
471 #define UPDATE_PKT_SET_LOC(h2c_pkt, value) \
472 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 8, value)
473 #define UPDATE_PKT_SET_LOC_NO_CLR(h2c_pkt, value) \
474 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 8, value)
475 #define GENERAL_INFO_GET_FW_TX_BOUNDARY(h2c_pkt) \
476 GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8)
477 #define GENERAL_INFO_SET_FW_TX_BOUNDARY(h2c_pkt, value) \
478 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value)
479 #define GENERAL_INFO_SET_FW_TX_BOUNDARY_NO_CLR(h2c_pkt, value) \
480 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value)
481 #define IQK_GET_CLEAR(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 1)
482 #define IQK_SET_CLEAR(h2c_pkt, value) \
483 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 1, value)
484 #define IQK_SET_CLEAR_NO_CLR(h2c_pkt, value) \
485 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 1, value)
486 #define IQK_GET_SEGMENT_IQK(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 1, 1)
487 #define IQK_SET_SEGMENT_IQK(h2c_pkt, value) \
488 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 1, 1, value)
489 #define IQK_SET_SEGMENT_IQK_NO_CLR(h2c_pkt, value) \
490 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 1, 1, value)
491 #define PWR_TRK_GET_ENABLE_A(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 1)
492 #define PWR_TRK_SET_ENABLE_A(h2c_pkt, value) \
493 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 1, value)
494 #define PWR_TRK_SET_ENABLE_A_NO_CLR(h2c_pkt, value) \
495 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 1, value)
496 #define PWR_TRK_GET_ENABLE_B(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 1, 1)
497 #define PWR_TRK_SET_ENABLE_B(h2c_pkt, value) \
498 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 1, 1, value)
499 #define PWR_TRK_SET_ENABLE_B_NO_CLR(h2c_pkt, value) \
500 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 1, 1, value)
501 #define PWR_TRK_GET_ENABLE_C(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 2, 1)
502 #define PWR_TRK_SET_ENABLE_C(h2c_pkt, value) \
503 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 2, 1, value)
504 #define PWR_TRK_SET_ENABLE_C_NO_CLR(h2c_pkt, value) \
505 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 2, 1, value)
506 #define PWR_TRK_GET_ENABLE_D(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 3, 1)
507 #define PWR_TRK_SET_ENABLE_D(h2c_pkt, value) \
508 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 3, 1, value)
509 #define PWR_TRK_SET_ENABLE_D_NO_CLR(h2c_pkt, value) \
510 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 3, 1, value)
511 #define PWR_TRK_GET_TYPE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 4, 3)
512 #define PWR_TRK_SET_TYPE(h2c_pkt, value) \
513 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 4, 3, value)
514 #define PWR_TRK_SET_TYPE_NO_CLR(h2c_pkt, value) \
515 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 4, 3, value)
516 #define PWR_TRK_GET_BBSWING_INDEX(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8)
517 #define PWR_TRK_SET_BBSWING_INDEX(h2c_pkt, value) \
518 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value)
519 #define PWR_TRK_SET_BBSWING_INDEX_NO_CLR(h2c_pkt, value) \
520 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value)
521 #define PWR_TRK_GET_TX_PWR_INDEX_A(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 8)
522 #define PWR_TRK_SET_TX_PWR_INDEX_A(h2c_pkt, value) \
523 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 8, value)
524 #define PWR_TRK_SET_TX_PWR_INDEX_A_NO_CLR(h2c_pkt, value) \
525 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 8, value)
526 #define PWR_TRK_GET_OFFSET_VALUE_A(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 8, 8)
527 #define PWR_TRK_SET_OFFSET_VALUE_A(h2c_pkt, value) \
528 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 8, 8, value)
529 #define PWR_TRK_SET_OFFSET_VALUE_A_NO_CLR(h2c_pkt, value) \
530 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 8, 8, value)
531 #define PWR_TRK_GET_TSSI_VALUE_A(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 16, 8)
532 #define PWR_TRK_SET_TSSI_VALUE_A(h2c_pkt, value) \
533 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 16, 8, value)
534 #define PWR_TRK_SET_TSSI_VALUE_A_NO_CLR(h2c_pkt, value) \
535 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 16, 8, value)
536 #define PWR_TRK_GET_TX_PWR_INDEX_B(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X10, 0, 8)
537 #define PWR_TRK_SET_TX_PWR_INDEX_B(h2c_pkt, value) \
538 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 0, 8, value)
539 #define PWR_TRK_SET_TX_PWR_INDEX_B_NO_CLR(h2c_pkt, value) \
540 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 0, 8, value)
541 #define PWR_TRK_GET_OFFSET_VALUE_B(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X10, 8, 8)
542 #define PWR_TRK_SET_OFFSET_VALUE_B(h2c_pkt, value) \
543 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 8, 8, value)
544 #define PWR_TRK_SET_OFFSET_VALUE_B_NO_CLR(h2c_pkt, value) \
545 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 8, 8, value)
546 #define PWR_TRK_GET_TSSI_VALUE_B(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X10, 16, 8)
547 #define PWR_TRK_SET_TSSI_VALUE_B(h2c_pkt, value) \
548 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 16, 8, value)
549 #define PWR_TRK_SET_TSSI_VALUE_B_NO_CLR(h2c_pkt, value) \
550 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 16, 8, value)
551 #define PWR_TRK_GET_TX_PWR_INDEX_C(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X14, 0, 8)
552 #define PWR_TRK_SET_TX_PWR_INDEX_C(h2c_pkt, value) \
553 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 0, 8, value)
554 #define PWR_TRK_SET_TX_PWR_INDEX_C_NO_CLR(h2c_pkt, value) \
555 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 0, 8, value)
556 #define PWR_TRK_GET_OFFSET_VALUE_C(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X14, 8, 8)
557 #define PWR_TRK_SET_OFFSET_VALUE_C(h2c_pkt, value) \
558 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 8, 8, value)
559 #define PWR_TRK_SET_OFFSET_VALUE_C_NO_CLR(h2c_pkt, value) \
560 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 8, 8, value)
561 #define PWR_TRK_GET_TSSI_VALUE_C(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X14, 16, 8)
562 #define PWR_TRK_SET_TSSI_VALUE_C(h2c_pkt, value) \
563 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 16, 8, value)
564 #define PWR_TRK_SET_TSSI_VALUE_C_NO_CLR(h2c_pkt, value) \
565 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 16, 8, value)
566 #define PWR_TRK_GET_TX_PWR_INDEX_D(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X18, 0, 8)
567 #define PWR_TRK_SET_TX_PWR_INDEX_D(h2c_pkt, value) \
568 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 0, 8, value)
569 #define PWR_TRK_SET_TX_PWR_INDEX_D_NO_CLR(h2c_pkt, value) \
570 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 0, 8, value)
571 #define PWR_TRK_GET_OFFSET_VALUE_D(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X18, 8, 8)
572 #define PWR_TRK_SET_OFFSET_VALUE_D(h2c_pkt, value) \
573 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 8, 8, value)
574 #define PWR_TRK_SET_OFFSET_VALUE_D_NO_CLR(h2c_pkt, value) \
575 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 8, 8, value)
576 #define PWR_TRK_GET_TSSI_VALUE_D(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X18, 16, 8)
577 #define PWR_TRK_SET_TSSI_VALUE_D(h2c_pkt, value) \
578 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 16, 8, value)
579 #define PWR_TRK_SET_TSSI_VALUE_D_NO_CLR(h2c_pkt, value) \
580 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 16, 8, value)
581 #define PSD_GET_START_PSD(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 16)
582 #define PSD_SET_START_PSD(h2c_pkt, value) \
583 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 16, value)
584 #define PSD_SET_START_PSD_NO_CLR(h2c_pkt, value) \
585 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 16, value)
586 #define PSD_GET_END_PSD(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 16, 16)
587 #define PSD_SET_END_PSD(h2c_pkt, value) \
588 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 16, value)
589 #define PSD_SET_END_PSD_NO_CLR(h2c_pkt, value) \
590 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 16, value)
591 #define PHYDM_INFO_GET_REF_TYPE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 8)
592 #define PHYDM_INFO_SET_REF_TYPE(h2c_pkt, value) \
593 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 8, value)
594 #define PHYDM_INFO_SET_REF_TYPE_NO_CLR(h2c_pkt, value) \
595 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 8, value)
596 #define PHYDM_INFO_GET_RF_TYPE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8)
597 #define PHYDM_INFO_SET_RF_TYPE(h2c_pkt, value) \
598 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value)
599 #define PHYDM_INFO_SET_RF_TYPE_NO_CLR(h2c_pkt, value) \
600 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value)
601 #define PHYDM_INFO_GET_CUT_VER(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8)
602 #define PHYDM_INFO_SET_CUT_VER(h2c_pkt, value) \
603 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value)
604 #define PHYDM_INFO_SET_CUT_VER_NO_CLR(h2c_pkt, value) \
605 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value)
606 #define PHYDM_INFO_GET_RX_ANT_STATUS(h2c_pkt) \
607 GET_H2C_FIELD(h2c_pkt + 0X08, 24, 4)
608 #define PHYDM_INFO_SET_RX_ANT_STATUS(h2c_pkt, value) \
609 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 4, value)
610 #define PHYDM_INFO_SET_RX_ANT_STATUS_NO_CLR(h2c_pkt, value) \
611 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 4, value)
612 #define PHYDM_INFO_GET_TX_ANT_STATUS(h2c_pkt) \
613 GET_H2C_FIELD(h2c_pkt + 0X08, 28, 4)
614 #define PHYDM_INFO_SET_TX_ANT_STATUS(h2c_pkt, value) \
615 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 28, 4, value)
616 #define PHYDM_INFO_SET_TX_ANT_STATUS_NO_CLR(h2c_pkt, value) \
617 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 28, 4, value)
618 #define FW_SNDING_GET_SU0(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 1)
619 #define FW_SNDING_SET_SU0(h2c_pkt, value) \
620 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 1, value)
621 #define FW_SNDING_SET_SU0_NO_CLR(h2c_pkt, value) \
622 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 1, value)
623 #define FW_SNDING_GET_SU1(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 1, 1)
624 #define FW_SNDING_SET_SU1(h2c_pkt, value) \
625 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 1, 1, value)
626 #define FW_SNDING_SET_SU1_NO_CLR(h2c_pkt, value) \
627 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 1, 1, value)
628 #define FW_SNDING_GET_MU(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 2, 1)
629 #define FW_SNDING_SET_MU(h2c_pkt, value) \
630 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 2, 1, value)
631 #define FW_SNDING_SET_MU_NO_CLR(h2c_pkt, value) \
632 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 2, 1, value)
633 #define FW_SNDING_GET_PERIOD(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8)
634 #define FW_SNDING_SET_PERIOD(h2c_pkt, value) \
635 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value)
636 #define FW_SNDING_SET_PERIOD_NO_CLR(h2c_pkt, value) \
637 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value)
638 #define FW_SNDING_GET_NDPA0_HEAD_PG(h2c_pkt) \
639 GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8)
640 #define FW_SNDING_SET_NDPA0_HEAD_PG(h2c_pkt, value) \
641 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value)
642 #define FW_SNDING_SET_NDPA0_HEAD_PG_NO_CLR(h2c_pkt, value) \
643 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value)
644 #define FW_SNDING_GET_NDPA1_HEAD_PG(h2c_pkt) \
645 GET_H2C_FIELD(h2c_pkt + 0X08, 24, 8)
646 #define FW_SNDING_SET_NDPA1_HEAD_PG(h2c_pkt, value) \
647 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 8, value)
648 #define FW_SNDING_SET_NDPA1_HEAD_PG_NO_CLR(h2c_pkt, value) \
649 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 8, value)
650 #define FW_SNDING_GET_MU_NDPA_HEAD_PG(h2c_pkt) \
651 GET_H2C_FIELD(h2c_pkt + 0XC, 0, 8)
652 #define FW_SNDING_SET_MU_NDPA_HEAD_PG(h2c_pkt, value) \
653 SET_H2C_FIELD_CLR(h2c_pkt + 0XC, 0, 8, value)
654 #define FW_SNDING_SET_MU_NDPA_HEAD_PG_NO_CLR(h2c_pkt, value) \
655 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0XC, 0, 8, value)
656 #define FW_SNDING_GET_RPT0_HEAD_PG(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0XC, 8, 8)
657 #define FW_SNDING_SET_RPT0_HEAD_PG(h2c_pkt, value) \
658 SET_H2C_FIELD_CLR(h2c_pkt + 0XC, 8, 8, value)
659 #define FW_SNDING_SET_RPT0_HEAD_PG_NO_CLR(h2c_pkt, value) \
660 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0XC, 8, 8, value)
661 #define FW_SNDING_GET_RPT1_HEAD_PG(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0XC, 16, 8)
662 #define FW_SNDING_SET_RPT1_HEAD_PG(h2c_pkt, value) \
663 SET_H2C_FIELD_CLR(h2c_pkt + 0XC, 16, 8, value)
664 #define FW_SNDING_SET_RPT1_HEAD_PG_NO_CLR(h2c_pkt, value) \
665 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0XC, 16, 8, value)
666 #define FW_SNDING_GET_RPT2_HEAD_PG(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0XC, 24, 8)
667 #define FW_SNDING_SET_RPT2_HEAD_PG(h2c_pkt, value) \
668 SET_H2C_FIELD_CLR(h2c_pkt + 0XC, 24, 8, value)
669 #define FW_SNDING_SET_RPT2_HEAD_PG_NO_CLR(h2c_pkt, value) \
670 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0XC, 24, 8, value)
671 #define FW_FWCTRL_GET_SEQ_NUM(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 8)
672 #define FW_FWCTRL_SET_SEQ_NUM(h2c_pkt, value) \
673 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 8, value)
674 #define FW_FWCTRL_SET_SEQ_NUM_NO_CLR(h2c_pkt, value) \
675 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 8, value)
676 #define FW_FWCTRL_GET_MORE_CONTENT(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 8, 1)
677 #define FW_FWCTRL_SET_MORE_CONTENT(h2c_pkt, value) \
678 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 1, value)
679 #define FW_FWCTRL_SET_MORE_CONTENT_NO_CLR(h2c_pkt, value) \
680 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 1, value)
681 #define FW_FWCTRL_GET_CONTENT_IDX(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 9, 7)
682 #define FW_FWCTRL_SET_CONTENT_IDX(h2c_pkt, value) \
683 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 9, 7, value)
684 #define FW_FWCTRL_SET_CONTENT_IDX_NO_CLR(h2c_pkt, value) \
685 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 9, 7, value)
686 #define FW_FWCTRL_GET_CLASS_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8)
687 #define FW_FWCTRL_SET_CLASS_ID(h2c_pkt, value) \
688 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value)
689 #define FW_FWCTRL_SET_CLASS_ID_NO_CLR(h2c_pkt, value) \
690 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value)
691 #define FW_FWCTRL_GET_LENGTH(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 24, 8)
692 #define FW_FWCTRL_SET_LENGTH(h2c_pkt, value) \
693 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 8, value)
694 #define FW_FWCTRL_SET_LENGTH_NO_CLR(h2c_pkt, value) \
695 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 8, value)
696 #define FW_FWCTRL_GET_CONTENT(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 32)
697 #define FW_FWCTRL_SET_CONTENT(h2c_pkt, value) \
698 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 32, value)
699 #define FW_FWCTRL_SET_CONTENT_NO_CLR(h2c_pkt, value) \
700 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 32, value)
701 #define P2PPS_GET_OFFLOAD_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 1)
702 #define P2PPS_SET_OFFLOAD_EN(h2c_pkt, value) \
703 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 1, value)
704 #define P2PPS_SET_OFFLOAD_EN_NO_CLR(h2c_pkt, value) \
705 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 1, value)
706 #define P2PPS_GET_ROLE(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 1, 1)
707 #define P2PPS_SET_ROLE(h2c_pkt, value) \
708 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 1, 1, value)
709 #define P2PPS_SET_ROLE_NO_CLR(h2c_pkt, value) \
710 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 1, 1, value)
711 #define P2PPS_GET_CTWINDOW_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 2, 1)
712 #define P2PPS_SET_CTWINDOW_EN(h2c_pkt, value) \
713 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 2, 1, value)
714 #define P2PPS_SET_CTWINDOW_EN_NO_CLR(h2c_pkt, value) \
715 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 2, 1, value)
716 #define P2PPS_GET_NOA_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 3, 1)
717 #define P2PPS_SET_NOA_EN(h2c_pkt, value) \
718 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 3, 1, value)
719 #define P2PPS_SET_NOA_EN_NO_CLR(h2c_pkt, value) \
720 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 3, 1, value)
721 #define P2PPS_GET_NOA_SEL(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 4, 1)
722 #define P2PPS_SET_NOA_SEL(h2c_pkt, value) \
723 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 4, 1, value)
724 #define P2PPS_SET_NOA_SEL_NO_CLR(h2c_pkt, value) \
725 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 4, 1, value)
726 #define P2PPS_GET_ALLSTASLEEP(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 5, 1)
727 #define P2PPS_SET_ALLSTASLEEP(h2c_pkt, value) \
728 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 5, 1, value)
729 #define P2PPS_SET_ALLSTASLEEP_NO_CLR(h2c_pkt, value) \
730 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 5, 1, value)
731 #define P2PPS_GET_DISCOVERY(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 6, 1)
732 #define P2PPS_SET_DISCOVERY(h2c_pkt, value) \
733 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 6, 1, value)
734 #define P2PPS_SET_DISCOVERY_NO_CLR(h2c_pkt, value) \
735 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 6, 1, value)
736 #define P2PPS_GET_DISABLE_CLOSERF(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 7, 1)
737 #define P2PPS_SET_DISABLE_CLOSERF(h2c_pkt, value) \
738 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 7, 1, value)
739 #define P2PPS_SET_DISABLE_CLOSERF_NO_CLR(h2c_pkt, value) \
740 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 7, 1, value)
741 #define P2PPS_GET_P2P_PORT_ID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8)
742 #define P2PPS_SET_P2P_PORT_ID(h2c_pkt, value) \
743 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value)
744 #define P2PPS_SET_P2P_PORT_ID_NO_CLR(h2c_pkt, value) \
745 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value)
746 #define P2PPS_GET_P2P_GROUP(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8)
747 #define P2PPS_SET_P2P_GROUP(h2c_pkt, value) \
748 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value)
749 #define P2PPS_SET_P2P_GROUP_NO_CLR(h2c_pkt, value) \
750 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value)
751 #define P2PPS_GET_P2P_MACID(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 24, 8)
752 #define P2PPS_SET_P2P_MACID(h2c_pkt, value) \
753 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 8, value)
754 #define P2PPS_SET_P2P_MACID_NO_CLR(h2c_pkt, value) \
755 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 8, value)
756 #define P2PPS_GET_CTWINDOW_LENGTH(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 8)
757 #define P2PPS_SET_CTWINDOW_LENGTH(h2c_pkt, value) \
758 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 8, value)
759 #define P2PPS_SET_CTWINDOW_LENGTH_NO_CLR(h2c_pkt, value) \
760 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 8, value)
761 #define P2PPS_GET_NOA_DURATION_PARA(h2c_pkt) \
762 GET_H2C_FIELD(h2c_pkt + 0X10, 0, 32)
763 #define P2PPS_SET_NOA_DURATION_PARA(h2c_pkt, value) \
764 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 0, 32, value)
765 #define P2PPS_SET_NOA_DURATION_PARA_NO_CLR(h2c_pkt, value) \
766 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 0, 32, value)
767 #define P2PPS_GET_NOA_INTERVAL_PARA(h2c_pkt) \
768 GET_H2C_FIELD(h2c_pkt + 0X14, 0, 32)
769 #define P2PPS_SET_NOA_INTERVAL_PARA(h2c_pkt, value) \
770 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 0, 32, value)
771 #define P2PPS_SET_NOA_INTERVAL_PARA_NO_CLR(h2c_pkt, value) \
772 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 0, 32, value)
773 #define P2PPS_GET_NOA_START_TIME_PARA(h2c_pkt) \
774 GET_H2C_FIELD(h2c_pkt + 0X18, 0, 32)
775 #define P2PPS_SET_NOA_START_TIME_PARA(h2c_pkt, value) \
776 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 0, 32, value)
777 #define P2PPS_SET_NOA_START_TIME_PARA_NO_CLR(h2c_pkt, value) \
778 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 0, 32, value)
779 #define P2PPS_GET_NOA_COUNT_PARA(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X1C, 0, 32)
780 #define P2PPS_SET_NOA_COUNT_PARA(h2c_pkt, value) \
781 SET_H2C_FIELD_CLR(h2c_pkt + 0X1C, 0, 32, value)
782 #define P2PPS_SET_NOA_COUNT_PARA_NO_CLR(h2c_pkt, value) \
783 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X1C, 0, 32, value)
784 #define BT_COEX_GET_DATA_START(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 8)
785 #define BT_COEX_SET_DATA_START(h2c_pkt, value) \
786 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 8, value)
787 #define BT_COEX_SET_DATA_START_NO_CLR(h2c_pkt, value) \
788 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 8, value)
789 #define NAN_CTRL_GET_NAN_EN(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 0, 2)
790 #define NAN_CTRL_SET_NAN_EN(h2c_pkt, value) \
791 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 2, value)
792 #define NAN_CTRL_SET_NAN_EN_NO_CLR(h2c_pkt, value) \
793 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 2, value)
794 #define NAN_CTRL_GET_WARMUP_TIMER_FLAG(h2c_pkt) \
795 GET_H2C_FIELD(h2c_pkt + 0X08, 2, 1)
796 #define NAN_CTRL_SET_WARMUP_TIMER_FLAG(h2c_pkt, value) \
797 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 2, 1, value)
798 #define NAN_CTRL_SET_WARMUP_TIMER_FLAG_NO_CLR(h2c_pkt, value) \
799 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 2, 1, value)
800 #define NAN_CTRL_GET_SUPPORT_BAND(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 8, 2)
801 #define NAN_CTRL_SET_SUPPORT_BAND(h2c_pkt, value) \
802 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 2, value)
803 #define NAN_CTRL_SET_SUPPORT_BAND_NO_CLR(h2c_pkt, value) \
804 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 2, value)
805 #define NAN_CTRL_GET_DISABLE_2G_DISC_BCN(h2c_pkt) \
806 GET_H2C_FIELD(h2c_pkt + 0X08, 10, 1)
807 #define NAN_CTRL_SET_DISABLE_2G_DISC_BCN(h2c_pkt, value) \
808 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 10, 1, value)
809 #define NAN_CTRL_SET_DISABLE_2G_DISC_BCN_NO_CLR(h2c_pkt, value) \
810 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 10, 1, value)
811 #define NAN_CTRL_GET_DISABLE_5G_DISC_BCN(h2c_pkt) \
812 GET_H2C_FIELD(h2c_pkt + 0X08, 11, 1)
813 #define NAN_CTRL_SET_DISABLE_5G_DISC_BCN(h2c_pkt, value) \
814 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 11, 1, value)
815 #define NAN_CTRL_SET_DISABLE_5G_DISC_BCN_NO_CLR(h2c_pkt, value) \
816 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 11, 1, value)
817 #define NAN_CTRL_GET_BCN_RSVD_PAGE_OFFSET(h2c_pkt) \
818 GET_H2C_FIELD(h2c_pkt + 0X08, 16, 8)
819 #define NAN_CTRL_SET_BCN_RSVD_PAGE_OFFSET(h2c_pkt, value) \
820 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 16, 8, value)
821 #define NAN_CTRL_SET_BCN_RSVD_PAGE_OFFSET_NO_CLR(h2c_pkt, value) \
822 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 16, 8, value)
823 #define NAN_CTRL_GET_CHANNEL_2G(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X08, 24, 8)
824 #define NAN_CTRL_SET_CHANNEL_2G(h2c_pkt, value) \
825 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 24, 8, value)
826 #define NAN_CTRL_SET_CHANNEL_2G_NO_CLR(h2c_pkt, value) \
827 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 24, 8, value)
828 #define NAN_CTRL_GET_CHANNEL_5G(h2c_pkt) GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 8)
829 #define NAN_CTRL_SET_CHANNEL_5G(h2c_pkt, value) \
830 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 8, value)
831 #define NAN_CTRL_SET_CHANNEL_5G_NO_CLR(h2c_pkt, value) \
832 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 8, value)
833 #define NAN_CTRL_GET_MASTERPREFERENCE_VALUE(h2c_pkt) \
834 GET_H2C_FIELD(h2c_pkt + 0X0C, 8, 8)
835 #define NAN_CTRL_SET_MASTERPREFERENCE_VALUE(h2c_pkt, value) \
836 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 8, 8, value)
837 #define NAN_CTRL_SET_MASTERPREFERENCE_VALUE_NO_CLR(h2c_pkt, value) \
838 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 8, 8, value)
839 #define NAN_CTRL_GET_RANDOMFACTOR_VALUE(h2c_pkt) \
840 GET_H2C_FIELD(h2c_pkt + 0X0C, 16, 8)
841 #define NAN_CTRL_SET_RANDOMFACTOR_VALUE(h2c_pkt, value) \
842 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 16, 8, value)
843 #define NAN_CTRL_SET_RANDOMFACTOR_VALUE_NO_CLR(h2c_pkt, value) \
844 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 16, 8, value)
845 #define NAN_CHANNEL_PLAN_0_GET_CHANNEL_NUMBER_0(h2c_pkt) \
846 GET_H2C_FIELD(h2c_pkt + 0X08, 0, 8)
847 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_0(h2c_pkt, value) \
848 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 8, value)
849 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_0_NO_CLR(h2c_pkt, value) \
850 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 8, value)
851 #define NAN_CHANNEL_PLAN_0_GET_UNPAUSE_MACID_0(h2c_pkt) \
852 GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8)
853 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_0(h2c_pkt, value) \
854 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value)
855 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_0_NO_CLR(h2c_pkt, value) \
856 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value)
857 #define NAN_CHANNEL_PLAN_0_GET_START_TIME_SLOT_0(h2c_pkt) \
858 GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 16)
859 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_0(h2c_pkt, value) \
860 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 16, value)
861 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_0_NO_CLR(h2c_pkt, value) \
862 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 16, value)
863 #define NAN_CHANNEL_PLAN_0_GET_DURATION_0(h2c_pkt) \
864 GET_H2C_FIELD(h2c_pkt + 0X0C, 16, 16)
865 #define NAN_CHANNEL_PLAN_0_SET_DURATION_0(h2c_pkt, value) \
866 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 16, 16, value)
867 #define NAN_CHANNEL_PLAN_0_SET_DURATION_0_NO_CLR(h2c_pkt, value) \
868 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 16, 16, value)
869 #define NAN_CHANNEL_PLAN_0_GET_CHANNEL_NUMBER_1(h2c_pkt) \
870 GET_H2C_FIELD(h2c_pkt + 0X10, 0, 8)
871 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_1(h2c_pkt, value) \
872 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 0, 8, value)
873 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_1_NO_CLR(h2c_pkt, value) \
874 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 0, 8, value)
875 #define NAN_CHANNEL_PLAN_0_GET_UNPAUSE_MACID_1(h2c_pkt) \
876 GET_H2C_FIELD(h2c_pkt + 0X10, 8, 8)
877 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_1(h2c_pkt, value) \
878 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 8, 8, value)
879 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_1_NO_CLR(h2c_pkt, value) \
880 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 8, 8, value)
881 #define NAN_CHANNEL_PLAN_0_GET_START_TIME_SLOT_1(h2c_pkt) \
882 GET_H2C_FIELD(h2c_pkt + 0X14, 0, 16)
883 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_1(h2c_pkt, value) \
884 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 0, 16, value)
885 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_1_NO_CLR(h2c_pkt, value) \
886 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 0, 16, value)
887 #define NAN_CHANNEL_PLAN_0_GET_DURATION_1(h2c_pkt) \
888 GET_H2C_FIELD(h2c_pkt + 0X14, 16, 16)
889 #define NAN_CHANNEL_PLAN_0_SET_DURATION_1(h2c_pkt, value) \
890 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 16, 16, value)
891 #define NAN_CHANNEL_PLAN_0_SET_DURATION_1_NO_CLR(h2c_pkt, value) \
892 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 16, 16, value)
893 #define NAN_CHANNEL_PLAN_0_GET_CHANNEL_NUMBER_2(h2c_pkt) \
894 GET_H2C_FIELD(h2c_pkt + 0X18, 0, 8)
895 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_2(h2c_pkt, value) \
896 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 0, 8, value)
897 #define NAN_CHANNEL_PLAN_0_SET_CHANNEL_NUMBER_2_NO_CLR(h2c_pkt, value) \
898 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 0, 8, value)
899 #define NAN_CHANNEL_PLAN_0_GET_UNPAUSE_MACID_2(h2c_pkt) \
900 GET_H2C_FIELD(h2c_pkt + 0X18, 8, 8)
901 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_2(h2c_pkt, value) \
902 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 8, 8, value)
903 #define NAN_CHANNEL_PLAN_0_SET_UNPAUSE_MACID_2_NO_CLR(h2c_pkt, value) \
904 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 8, 8, value)
905 #define NAN_CHANNEL_PLAN_0_GET_START_TIME_SLOT_2(h2c_pkt) \
906 GET_H2C_FIELD(h2c_pkt + 0X1C, 0, 16)
907 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_2(h2c_pkt, value) \
908 SET_H2C_FIELD_CLR(h2c_pkt + 0X1C, 0, 16, value)
909 #define NAN_CHANNEL_PLAN_0_SET_START_TIME_SLOT_2_NO_CLR(h2c_pkt, value) \
910 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X1C, 0, 16, value)
911 #define NAN_CHANNEL_PLAN_0_GET_DURATION_2(h2c_pkt) \
912 GET_H2C_FIELD(h2c_pkt + 0X1C, 16, 16)
913 #define NAN_CHANNEL_PLAN_0_SET_DURATION_2(h2c_pkt, value) \
914 SET_H2C_FIELD_CLR(h2c_pkt + 0X1C, 16, 16, value)
915 #define NAN_CHANNEL_PLAN_0_SET_DURATION_2_NO_CLR(h2c_pkt, value) \
916 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X1C, 16, 16, value)
917 #define NAN_CHANNEL_PLAN_1_GET_CHANNEL_NUMBER_3(h2c_pkt) \
918 GET_H2C_FIELD(h2c_pkt + 0X08, 0, 8)
919 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_3(h2c_pkt, value) \
920 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 0, 8, value)
921 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_3_NO_CLR(h2c_pkt, value) \
922 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 0, 8, value)
923 #define NAN_CHANNEL_PLAN_1_GET_UNPAUSE_MACID_3(h2c_pkt) \
924 GET_H2C_FIELD(h2c_pkt + 0X08, 8, 8)
925 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_3(h2c_pkt, value) \
926 SET_H2C_FIELD_CLR(h2c_pkt + 0X08, 8, 8, value)
927 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_3_NO_CLR(h2c_pkt, value) \
928 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X08, 8, 8, value)
929 #define NAN_CHANNEL_PLAN_1_GET_START_TIME_SLOT_3(h2c_pkt) \
930 GET_H2C_FIELD(h2c_pkt + 0X0C, 0, 16)
931 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_3(h2c_pkt, value) \
932 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 0, 16, value)
933 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_3_NO_CLR(h2c_pkt, value) \
934 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 0, 16, value)
935 #define NAN_CHANNEL_PLAN_1_GET_DURATION_3(h2c_pkt) \
936 GET_H2C_FIELD(h2c_pkt + 0X0C, 16, 16)
937 #define NAN_CHANNEL_PLAN_1_SET_DURATION_3(h2c_pkt, value) \
938 SET_H2C_FIELD_CLR(h2c_pkt + 0X0C, 16, 16, value)
939 #define NAN_CHANNEL_PLAN_1_SET_DURATION_3_NO_CLR(h2c_pkt, value) \
940 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X0C, 16, 16, value)
941 #define NAN_CHANNEL_PLAN_1_GET_CHANNEL_NUMBER_4(h2c_pkt) \
942 GET_H2C_FIELD(h2c_pkt + 0X10, 0, 8)
943 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_4(h2c_pkt, value) \
944 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 0, 8, value)
945 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_4_NO_CLR(h2c_pkt, value) \
946 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 0, 8, value)
947 #define NAN_CHANNEL_PLAN_1_GET_UNPAUSE_MACID_4(h2c_pkt) \
948 GET_H2C_FIELD(h2c_pkt + 0X10, 8, 8)
949 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_4(h2c_pkt, value) \
950 SET_H2C_FIELD_CLR(h2c_pkt + 0X10, 8, 8, value)
951 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_4_NO_CLR(h2c_pkt, value) \
952 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X10, 8, 8, value)
953 #define NAN_CHANNEL_PLAN_1_GET_START_TIME_SLOT_4(h2c_pkt) \
954 GET_H2C_FIELD(h2c_pkt + 0X14, 0, 16)
955 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_4(h2c_pkt, value) \
956 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 0, 16, value)
957 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_4_NO_CLR(h2c_pkt, value) \
958 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 0, 16, value)
959 #define NAN_CHANNEL_PLAN_1_GET_DURATION_4(h2c_pkt) \
960 GET_H2C_FIELD(h2c_pkt + 0X14, 16, 16)
961 #define NAN_CHANNEL_PLAN_1_SET_DURATION_4(h2c_pkt, value) \
962 SET_H2C_FIELD_CLR(h2c_pkt + 0X14, 16, 16, value)
963 #define NAN_CHANNEL_PLAN_1_SET_DURATION_4_NO_CLR(h2c_pkt, value) \
964 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X14, 16, 16, value)
965 #define NAN_CHANNEL_PLAN_1_GET_CHANNEL_NUMBER_5(h2c_pkt) \
966 GET_H2C_FIELD(h2c_pkt + 0X18, 0, 8)
967 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_5(h2c_pkt, value) \
968 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 0, 8, value)
969 #define NAN_CHANNEL_PLAN_1_SET_CHANNEL_NUMBER_5_NO_CLR(h2c_pkt, value) \
970 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 0, 8, value)
971 #define NAN_CHANNEL_PLAN_1_GET_UNPAUSE_MACID_5(h2c_pkt) \
972 GET_H2C_FIELD(h2c_pkt + 0X18, 8, 8)
973 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_5(h2c_pkt, value) \
974 SET_H2C_FIELD_CLR(h2c_pkt + 0X18, 8, 8, value)
975 #define NAN_CHANNEL_PLAN_1_SET_UNPAUSE_MACID_5_NO_CLR(h2c_pkt, value) \
976 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X18, 8, 8, value)
977 #define NAN_CHANNEL_PLAN_1_GET_START_TIME_SLOT_5(h2c_pkt) \
978 GET_H2C_FIELD(h2c_pkt + 0X1C, 0, 16)
979 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_5(h2c_pkt, value) \
980 SET_H2C_FIELD_CLR(h2c_pkt + 0X1C, 0, 16, value)
981 #define NAN_CHANNEL_PLAN_1_SET_START_TIME_SLOT_5_NO_CLR(h2c_pkt, value) \
982 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X1C, 0, 16, value)
983 #define NAN_CHANNEL_PLAN_1_GET_DURATION_5(h2c_pkt) \
984 GET_H2C_FIELD(h2c_pkt + 0X1C, 16, 16)
985 #define NAN_CHANNEL_PLAN_1_SET_DURATION_5(h2c_pkt, value) \
986 SET_H2C_FIELD_CLR(h2c_pkt + 0X1C, 16, 16, value)
987 #define NAN_CHANNEL_PLAN_1_SET_DURATION_5_NO_CLR(h2c_pkt, value) \
988 SET_H2C_FIELD_NO_CLR(h2c_pkt + 0X1C, 16, 16, value)