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