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_FWOFFLOADC2HFORMAT_H2C_C2H_AP_H_ 17 #define _HAL_FWOFFLOADC2HFORMAT_H2C_C2H_AP_H_ 18 #define C2H_SUB_CMD_ID_C2H_DBG 0X00 19 #define C2H_SUB_CMD_ID_BT_COEX_INFO 0X02 20 #define C2H_SUB_CMD_ID_SCAN_STATUS_RPT 0X03 21 #define C2H_SUB_CMD_ID_H2C_ACK_HDR 0X01 22 #define C2H_SUB_CMD_ID_CFG_PARAM_ACK 0X01 23 #define C2H_SUB_CMD_ID_CH_SWITCH_ACK 0X01 24 #define C2H_SUB_CMD_ID_BT_COEX_ACK 0X01 25 #define C2H_SUB_CMD_ID_DUMP_PHYSICAL_EFUSE_ACK 0X01 26 #define C2H_SUB_CMD_ID_UPDATE_PKT_ACK 0X01 27 #define C2H_SUB_CMD_ID_SEND_SCAN_PKT_ACK 0X01 28 #define C2H_SUB_CMD_ID_DROP_SCAN_PKT_ACK 0X01 29 #define C2H_SUB_CMD_ID_UPDATE_DATAPACK_ACK 0X01 30 #define C2H_SUB_CMD_ID_RUN_DATAPACK_ACK 0X01 31 #define C2H_SUB_CMD_ID_IQK_ACK 0X01 32 #define C2H_SUB_CMD_ID_PWR_TRK_ACK 0X01 33 #define C2H_SUB_CMD_ID_PSD_ACK 0X01 34 #define C2H_SUB_CMD_ID_FW_MEM_DUMP_ACK 0X01 35 #define C2H_SUB_CMD_ID_ACT_SCHEDULE_REQ_ACK 0X1 36 #define C2H_SUB_CMD_ID_NAN_FUNC_CTRL_ACK 0X1 37 #define C2H_SUB_CMD_ID_DPK_ACK 0X1 38 #define C2H_SUB_CMD_ID_PSD_DATA 0X04 39 #define C2H_SUB_CMD_ID_EFUSE_DATA 0X05 40 #define C2H_SUB_CMD_ID_IQK_DATA 0X06 41 #define C2H_SUB_CMD_ID_C2H_PKT_FTM_DBG 0X07 42 #define C2H_SUB_CMD_ID_C2H_PKT_FTM_2_DBG 0X08 43 #define C2H_SUB_CMD_ID_C2H_PKT_FTM_3_DBG 0X09 44 #define C2H_SUB_CMD_ID_C2H_PKT_FTM_4_DBG 0X0A 45 #define C2H_SUB_CMD_ID_FTMACKRPT_HDL_DBG 0X0B 46 #define C2H_SUB_CMD_ID_FTMC2H_RPT 0X0C 47 #define C2H_SUB_CMD_ID_DRVFTMC2H_RPT 0X0D 48 #define C2H_SUB_CMD_ID_C2H_PKT_FTM_5_DBG 0X0E 49 #define C2H_SUB_CMD_ID_CCX_RPT 0X0F 50 #define C2H_SUB_CMD_ID_C2H_PKT_NAN_RPT 0X10 51 #define C2H_SUB_CMD_ID_C2H_PKT_ATM_RPT 0X11 52 #define C2H_SUB_CMD_ID_C2H_PKT_SCC_CSA_RPT 0X1A 53 #define C2H_SUB_CMD_ID_C2H_PKT_FW_STATUS_NOTIFY 0X1B 54 #define C2H_SUB_CMD_ID_C2H_PKT_FTMSESSION_END 0X1C 55 #define C2H_SUB_CMD_ID_C2H_PKT_DETECT_THERMAL 0X1D 56 #define C2H_SUB_CMD_ID_FW_DBG_MSG 0XFF 57 #define C2H_SUB_CMD_ID_FW_SNDING_ACK 0X01 58 #define C2H_SUB_CMD_ID_FW_FWCTRL_RPT 0X1F 59 #define C2H_SUB_CMD_ID_H2C_LOOPBACK_ACK 0X20 60 #define C2H_SUB_CMD_ID_FWCMD_LOOPBACK_ACK 0X21 61 #define C2H_SUB_CMD_ID_SCAN_CH_NOTIFY 0X22 62 #define C2H_SUB_CMD_ID_FW_TBTT_RPT 0X23 63 #define C2H_SUB_CMD_ID_BCN_OFFLOAD 0X24 64 #define C2H_SUB_CMD_ID_DPK_DATA 0X25 65 #define H2C_SUB_CMD_ID_CFG_PARAM_ACK SUB_CMD_ID_CFG_PARAM 66 #define H2C_SUB_CMD_ID_CH_SWITCH_ACK SUB_CMD_ID_CH_SWITCH 67 #define H2C_SUB_CMD_ID_BT_COEX_ACK SUB_CMD_ID_BT_COEX 68 #define H2C_SUB_CMD_ID_DUMP_PHYSICAL_EFUSE_ACK SUB_CMD_ID_DUMP_PHYSICAL_EFUSE 69 #define H2C_SUB_CMD_ID_UPDATE_PKT_ACK SUB_CMD_ID_UPDATE_PKT 70 #define H2C_SUB_CMD_ID_SEND_SCAN_PKT_ACK SUB_CMD_ID_SEND_SCAN_PKT 71 #define H2C_SUB_CMD_ID_DROP_SCAN_PKT_ACK SUB_CMD_ID_DROP_SCAN_PKT 72 #define H2C_SUB_CMD_ID_UPDATE_DATAPACK_ACK SUB_CMD_ID_UPDATE_DATAPACK 73 #define H2C_SUB_CMD_ID_RUN_DATAPACK_ACK SUB_CMD_ID_RUN_DATAPACK 74 #define H2C_SUB_CMD_ID_IQK_ACK SUB_CMD_ID_IQK 75 #define H2C_SUB_CMD_ID_PWR_TRK_ACK SUB_CMD_ID_PWR_TRK 76 #define H2C_SUB_CMD_ID_PSD_ACK SUB_CMD_ID_PSD 77 #define H2C_SUB_CMD_ID_FW_MEM_DUMP_ACK SUB_CMD_ID_FW_MEM_DUMP 78 #define H2C_SUB_CMD_ID_ACT_SCHEDULE_REQ_ACK SUB_CMD_ID_ACT_SCHEDULE_REQ 79 #define H2C_SUB_CMD_ID_NAN_FUNC_CTRL_ACK SUB_CMD_ID_NAN_FUNC_CTRL 80 #define H2C_SUB_CMD_ID_DPK_ACK SUB_CMD_ID_DPK 81 #define H2C_SUB_CMD_ID_CCX_RPT SUB_CMD_ID_CCX_RPT 82 #define H2C_SUB_CMD_ID_FW_DBG_MSG SUB_CMD_ID_FW_DBG_MSG 83 #define H2C_SUB_CMD_ID_FW_SNDING_ACK SUB_CMD_ID_FW_SNDING 84 #define H2C_SUB_CMD_ID_FW_FWCTRL_RPT SUB_CMD_ID_FW_FWCTRL_RPT 85 #define H2C_SUB_CMD_ID_H2C_LOOPBACK_ACK SUB_CMD_ID_H2C_LOOPBACK 86 #define H2C_SUB_CMD_ID_FWCMD_LOOPBACK_ACK SUB_CMD_ID_FWCMD_LOOPBACK 87 #define H2C_CMD_ID_CFG_PARAM_ACK 0XFF 88 #define H2C_CMD_ID_CH_SWITCH_ACK 0XFF 89 #define H2C_CMD_ID_BT_COEX_ACK 0XFF 90 #define H2C_CMD_ID_DUMP_PHYSICAL_EFUSE_ACK 0XFF 91 #define H2C_CMD_ID_UPDATE_PKT_ACK 0XFF 92 #define H2C_CMD_ID_SEND_SCAN_PKT_ACK 0XFF 93 #define H2C_CMD_ID_DROP_SCAN_PKT_ACK 0XFF 94 #define H2C_CMD_ID_UPDATE_DATAPACK_ACK 0XFF 95 #define H2C_CMD_ID_RUN_DATAPACK_ACK 0XFF 96 #define H2C_CMD_ID_IQK_ACK 0XFF 97 #define H2C_CMD_ID_PWR_TRK_ACK 0XFF 98 #define H2C_CMD_ID_PSD_ACK 0XFF 99 #define H2C_CMD_ID_FW_MEM_DUMP_ACK 0XFF 100 #define H2C_CMD_ID_ACT_SCHEDULE_REQ_ACK 0XFF 101 #define H2C_CMD_ID_NAN_FUNC_CTRL_ACK 0XFF 102 #define H2C_CMD_ID_DPK_ACK 0XFF 103 #define H2C_CMD_ID_CCX_RPT 0XFF 104 #define H2C_CMD_ID_FW_DBG_MSG 0XFF 105 #define H2C_CMD_ID_FW_SNDING_ACK 0XFF 106 #define H2C_CMD_ID_FW_FWCTRL_RPT 0XFF 107 #define H2C_CMD_ID_H2C_LOOPBACK_ACK 0XFF 108 #define H2C_CMD_ID_FWCMD_LOOPBACK_ACK 0XFF 109 #define C2H_HDR_GET_CMD_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 0, 8) 110 #define C2H_HDR_SET_CMD_ID(c2h_pkt, value) \ 111 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 0, 8, value) 112 #define C2H_HDR_SET_CMD_ID_NO_CLR(c2h_pkt, value) \ 113 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 0, 8, value) 114 #define C2H_HDR_GET_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 8, 8) 115 #define C2H_HDR_SET_SEQ(c2h_pkt, value) \ 116 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 8, 8, value) 117 #define C2H_HDR_SET_SEQ_NO_CLR(c2h_pkt, value) \ 118 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 8, 8, value) 119 #define C2H_HDR_GET_C2H_SUB_CMD_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 16, 8) 120 #define C2H_HDR_SET_C2H_SUB_CMD_ID(c2h_pkt, value) \ 121 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 16, 8, value) 122 #define C2H_HDR_SET_C2H_SUB_CMD_ID_NO_CLR(c2h_pkt, value) \ 123 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 16, 8, value) 124 #define C2H_HDR_GET_LEN(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 24, 8) 125 #define C2H_HDR_SET_LEN(c2h_pkt, value) \ 126 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 24, 8, value) 127 #define C2H_HDR_SET_LEN_NO_CLR(c2h_pkt, value) \ 128 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 24, 8, value) 129 #define C2H_DBG_GET_DBG_MSG(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 0, 8) 130 #define C2H_DBG_SET_DBG_MSG(c2h_pkt, value) \ 131 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 8, value) 132 #define C2H_DBG_SET_DBG_MSG_NO_CLR(c2h_pkt, value) \ 133 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 8, value) 134 #define BT_COEX_INFO_GET_DATA_START(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 0, 8) 135 #define BT_COEX_INFO_SET_DATA_START(c2h_pkt, value) \ 136 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 8, value) 137 #define BT_COEX_INFO_SET_DATA_START_NO_CLR(c2h_pkt, value) \ 138 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 8, value) 139 #define SCAN_STATUS_RPT_GET_H2C_RETURN_CODE(c2h_pkt) \ 140 GET_C2H_FIELD(c2h_pkt + 0X04, 0, 8) 141 #define SCAN_STATUS_RPT_SET_H2C_RETURN_CODE(c2h_pkt, value) \ 142 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 8, value) 143 #define SCAN_STATUS_RPT_SET_H2C_RETURN_CODE_NO_CLR(c2h_pkt, value) \ 144 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 8, value) 145 #define SCAN_STATUS_RPT_GET_H2C_SEQ(c2h_pkt) \ 146 GET_C2H_FIELD(c2h_pkt + 0X04, 16, 16) 147 #define SCAN_STATUS_RPT_SET_H2C_SEQ(c2h_pkt, value) \ 148 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 16, 16, value) 149 #define SCAN_STATUS_RPT_SET_H2C_SEQ_NO_CLR(c2h_pkt, value) \ 150 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 16, 16, value) 151 #define SCAN_STATUS_RPT_GET_TSF_0(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 0, 8) 152 #define SCAN_STATUS_RPT_SET_TSF_0(c2h_pkt, value) \ 153 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 0, 8, value) 154 #define SCAN_STATUS_RPT_SET_TSF_0_NO_CLR(c2h_pkt, value) \ 155 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 0, 8, value) 156 #define SCAN_STATUS_RPT_GET_TSF_1(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 8, 8) 157 #define SCAN_STATUS_RPT_SET_TSF_1(c2h_pkt, value) \ 158 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 8, 8, value) 159 #define SCAN_STATUS_RPT_SET_TSF_1_NO_CLR(c2h_pkt, value) \ 160 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 8, 8, value) 161 #define SCAN_STATUS_RPT_GET_TSF_2(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 16, 8) 162 #define SCAN_STATUS_RPT_SET_TSF_2(c2h_pkt, value) \ 163 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 16, 8, value) 164 #define SCAN_STATUS_RPT_SET_TSF_2_NO_CLR(c2h_pkt, value) \ 165 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 16, 8, value) 166 #define SCAN_STATUS_RPT_GET_TSF_3(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 24, 8) 167 #define SCAN_STATUS_RPT_SET_TSF_3(c2h_pkt, value) \ 168 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 24, 8, value) 169 #define SCAN_STATUS_RPT_SET_TSF_3_NO_CLR(c2h_pkt, value) \ 170 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 24, 8, value) 171 #define SCAN_STATUS_RPT_GET_TSF_4(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0XC, 0, 8) 172 #define SCAN_STATUS_RPT_SET_TSF_4(c2h_pkt, value) \ 173 SET_C2H_FIELD_CLR(c2h_pkt + 0XC, 0, 8, value) 174 #define SCAN_STATUS_RPT_SET_TSF_4_NO_CLR(c2h_pkt, value) \ 175 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0XC, 0, 8, value) 176 #define SCAN_STATUS_RPT_GET_TSF_5(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0XC, 8, 8) 177 #define SCAN_STATUS_RPT_SET_TSF_5(c2h_pkt, value) \ 178 SET_C2H_FIELD_CLR(c2h_pkt + 0XC, 8, 8, value) 179 #define SCAN_STATUS_RPT_SET_TSF_5_NO_CLR(c2h_pkt, value) \ 180 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0XC, 8, 8, value) 181 #define SCAN_STATUS_RPT_GET_TSF_6(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0XC, 16, 8) 182 #define SCAN_STATUS_RPT_SET_TSF_6(c2h_pkt, value) \ 183 SET_C2H_FIELD_CLR(c2h_pkt + 0XC, 16, 8, value) 184 #define SCAN_STATUS_RPT_SET_TSF_6_NO_CLR(c2h_pkt, value) \ 185 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0XC, 16, 8, value) 186 #define SCAN_STATUS_RPT_GET_TSF_7(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0XC, 24, 8) 187 #define SCAN_STATUS_RPT_SET_TSF_7(c2h_pkt, value) \ 188 SET_C2H_FIELD_CLR(c2h_pkt + 0XC, 24, 8, value) 189 #define SCAN_STATUS_RPT_SET_TSF_7_NO_CLR(c2h_pkt, value) \ 190 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0XC, 24, 8, value) 191 #define H2C_ACK_HDR_GET_H2C_RETURN_CODE(c2h_pkt) \ 192 GET_C2H_FIELD(c2h_pkt + 0X04, 0, 8) 193 #define H2C_ACK_HDR_SET_H2C_RETURN_CODE(c2h_pkt, value) \ 194 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 8, value) 195 #define H2C_ACK_HDR_SET_H2C_RETURN_CODE_NO_CLR(c2h_pkt, value) \ 196 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 8, value) 197 #define H2C_ACK_HDR_GET_H2C_CMD_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 8, 8) 198 #define H2C_ACK_HDR_SET_H2C_CMD_ID(c2h_pkt, value) \ 199 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 8, 8, value) 200 #define H2C_ACK_HDR_SET_H2C_CMD_ID_NO_CLR(c2h_pkt, value) \ 201 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 8, 8, value) 202 #define H2C_ACK_HDR_GET_H2C_SUB_CMD_ID(c2h_pkt) \ 203 GET_C2H_FIELD(c2h_pkt + 0X04, 16, 16) 204 #define H2C_ACK_HDR_SET_H2C_SUB_CMD_ID(c2h_pkt, value) \ 205 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 16, 16, value) 206 #define H2C_ACK_HDR_SET_H2C_SUB_CMD_ID_NO_CLR(c2h_pkt, value) \ 207 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 16, 16, value) 208 #define H2C_ACK_HDR_GET_H2C_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 0, 16) 209 #define H2C_ACK_HDR_SET_H2C_SEQ(c2h_pkt, value) \ 210 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 0, 16, value) 211 #define H2C_ACK_HDR_SET_H2C_SEQ_NO_CLR(c2h_pkt, value) \ 212 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 0, 16, value) 213 #define CFG_PARAM_ACK_GET_OFFSET_ACCUMULATION(c2h_pkt) \ 214 GET_C2H_FIELD(c2h_pkt + 0XC, 0, 32) 215 #define CFG_PARAM_ACK_SET_OFFSET_ACCUMULATION(c2h_pkt, value) \ 216 SET_C2H_FIELD_CLR(c2h_pkt + 0XC, 0, 32, value) 217 #define CFG_PARAM_ACK_SET_OFFSET_ACCUMULATION_NO_CLR(c2h_pkt, value) \ 218 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0XC, 0, 32, value) 219 #define CFG_PARAM_ACK_GET_VALUE_ACCUMULATION(c2h_pkt) \ 220 GET_C2H_FIELD(c2h_pkt + 0X10, 0, 32) 221 #define CFG_PARAM_ACK_SET_VALUE_ACCUMULATION(c2h_pkt, value) \ 222 SET_C2H_FIELD_CLR(c2h_pkt + 0X10, 0, 32, value) 223 #define CFG_PARAM_ACK_SET_VALUE_ACCUMULATION_NO_CLR(c2h_pkt, value) \ 224 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X10, 0, 32, value) 225 #define CH_SWITCH_ACK_GET_TSF_0(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 0, 8) 226 #define CH_SWITCH_ACK_SET_TSF_0(c2h_pkt, value) \ 227 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 0, 8, value) 228 #define CH_SWITCH_ACK_SET_TSF_0_NO_CLR(c2h_pkt, value) \ 229 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 0, 8, value) 230 #define CH_SWITCH_ACK_GET_TSF_1(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 8, 8) 231 #define CH_SWITCH_ACK_SET_TSF_1(c2h_pkt, value) \ 232 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 8, 8, value) 233 #define CH_SWITCH_ACK_SET_TSF_1_NO_CLR(c2h_pkt, value) \ 234 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 8, 8, value) 235 #define CH_SWITCH_ACK_GET_TSF_2(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 16, 8) 236 #define CH_SWITCH_ACK_SET_TSF_2(c2h_pkt, value) \ 237 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 16, 8, value) 238 #define CH_SWITCH_ACK_SET_TSF_2_NO_CLR(c2h_pkt, value) \ 239 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 16, 8, value) 240 #define CH_SWITCH_ACK_GET_TSF_3(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 24, 8) 241 #define CH_SWITCH_ACK_SET_TSF_3(c2h_pkt, value) \ 242 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 24, 8, value) 243 #define CH_SWITCH_ACK_SET_TSF_3_NO_CLR(c2h_pkt, value) \ 244 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 24, 8, value) 245 #define CH_SWITCH_ACK_GET_TSF_4(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X10, 0, 8) 246 #define CH_SWITCH_ACK_SET_TSF_4(c2h_pkt, value) \ 247 SET_C2H_FIELD_CLR(c2h_pkt + 0X10, 0, 8, value) 248 #define CH_SWITCH_ACK_SET_TSF_4_NO_CLR(c2h_pkt, value) \ 249 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X10, 0, 8, value) 250 #define CH_SWITCH_ACK_GET_TSF_5(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X10, 8, 8) 251 #define CH_SWITCH_ACK_SET_TSF_5(c2h_pkt, value) \ 252 SET_C2H_FIELD_CLR(c2h_pkt + 0X10, 8, 8, value) 253 #define CH_SWITCH_ACK_SET_TSF_5_NO_CLR(c2h_pkt, value) \ 254 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X10, 8, 8, value) 255 #define CH_SWITCH_ACK_GET_TSF_6(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X10, 16, 8) 256 #define CH_SWITCH_ACK_SET_TSF_6(c2h_pkt, value) \ 257 SET_C2H_FIELD_CLR(c2h_pkt + 0X10, 16, 8, value) 258 #define CH_SWITCH_ACK_SET_TSF_6_NO_CLR(c2h_pkt, value) \ 259 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X10, 16, 8, value) 260 #define CH_SWITCH_ACK_GET_TSF_7(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X10, 24, 8) 261 #define CH_SWITCH_ACK_SET_TSF_7(c2h_pkt, value) \ 262 SET_C2H_FIELD_CLR(c2h_pkt + 0X10, 24, 8, value) 263 #define CH_SWITCH_ACK_SET_TSF_7_NO_CLR(c2h_pkt, value) \ 264 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X10, 24, 8, value) 265 #define BT_COEX_ACK_GET_DATA_START(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0XC, 0, 8) 266 #define BT_COEX_ACK_SET_DATA_START(c2h_pkt, value) \ 267 SET_C2H_FIELD_CLR(c2h_pkt + 0XC, 0, 8, value) 268 #define BT_COEX_ACK_SET_DATA_START_NO_CLR(c2h_pkt, value) \ 269 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0XC, 0, 8, value) 270 #define PSD_DATA_GET_SEGMENT_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 0, 7) 271 #define PSD_DATA_SET_SEGMENT_ID(c2h_pkt, value) \ 272 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 7, value) 273 #define PSD_DATA_SET_SEGMENT_ID_NO_CLR(c2h_pkt, value) \ 274 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 7, value) 275 #define PSD_DATA_GET_END_SEGMENT(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 7, 1) 276 #define PSD_DATA_SET_END_SEGMENT(c2h_pkt, value) \ 277 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 7, 1, value) 278 #define PSD_DATA_SET_END_SEGMENT_NO_CLR(c2h_pkt, value) \ 279 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 7, 1, value) 280 #define PSD_DATA_GET_SEGMENT_SIZE(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 8, 8) 281 #define PSD_DATA_SET_SEGMENT_SIZE(c2h_pkt, value) \ 282 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 8, 8, value) 283 #define PSD_DATA_SET_SEGMENT_SIZE_NO_CLR(c2h_pkt, value) \ 284 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 8, 8, value) 285 #define PSD_DATA_GET_TOTAL_SIZE(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 16, 16) 286 #define PSD_DATA_SET_TOTAL_SIZE(c2h_pkt, value) \ 287 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 16, 16, value) 288 #define PSD_DATA_SET_TOTAL_SIZE_NO_CLR(c2h_pkt, value) \ 289 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 16, 16, value) 290 #define PSD_DATA_GET_H2C_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X8, 0, 16) 291 #define PSD_DATA_SET_H2C_SEQ(c2h_pkt, value) \ 292 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 0, 16, value) 293 #define PSD_DATA_SET_H2C_SEQ_NO_CLR(c2h_pkt, value) \ 294 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 0, 16, value) 295 #define PSD_DATA_GET_DATA_START(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X8, 16, 8) 296 #define PSD_DATA_SET_DATA_START(c2h_pkt, value) \ 297 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 16, 8, value) 298 #define PSD_DATA_SET_DATA_START_NO_CLR(c2h_pkt, value) \ 299 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 16, 8, value) 300 #define EFUSE_DATA_GET_SEGMENT_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 0, 7) 301 #define EFUSE_DATA_SET_SEGMENT_ID(c2h_pkt, value) \ 302 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 7, value) 303 #define EFUSE_DATA_SET_SEGMENT_ID_NO_CLR(c2h_pkt, value) \ 304 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 7, value) 305 #define EFUSE_DATA_GET_END_SEGMENT(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 7, 1) 306 #define EFUSE_DATA_SET_END_SEGMENT(c2h_pkt, value) \ 307 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 7, 1, value) 308 #define EFUSE_DATA_SET_END_SEGMENT_NO_CLR(c2h_pkt, value) \ 309 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 7, 1, value) 310 #define EFUSE_DATA_GET_SEGMENT_SIZE(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 8, 8) 311 #define EFUSE_DATA_SET_SEGMENT_SIZE(c2h_pkt, value) \ 312 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 8, 8, value) 313 #define EFUSE_DATA_SET_SEGMENT_SIZE_NO_CLR(c2h_pkt, value) \ 314 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 8, 8, value) 315 #define EFUSE_DATA_GET_TOTAL_SIZE(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 16, 16) 316 #define EFUSE_DATA_SET_TOTAL_SIZE(c2h_pkt, value) \ 317 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 16, 16, value) 318 #define EFUSE_DATA_SET_TOTAL_SIZE_NO_CLR(c2h_pkt, value) \ 319 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 16, 16, value) 320 #define EFUSE_DATA_GET_H2C_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X8, 0, 16) 321 #define EFUSE_DATA_SET_H2C_SEQ(c2h_pkt, value) \ 322 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 0, 16, value) 323 #define EFUSE_DATA_SET_H2C_SEQ_NO_CLR(c2h_pkt, value) \ 324 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 0, 16, value) 325 #define EFUSE_DATA_GET_DATA_START(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X8, 16, 8) 326 #define EFUSE_DATA_SET_DATA_START(c2h_pkt, value) \ 327 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 16, 8, value) 328 #define EFUSE_DATA_SET_DATA_START_NO_CLR(c2h_pkt, value) \ 329 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 16, 8, value) 330 #define IQK_DATA_GET_SEGMENT_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 0, 7) 331 #define IQK_DATA_SET_SEGMENT_ID(c2h_pkt, value) \ 332 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 7, value) 333 #define IQK_DATA_SET_SEGMENT_ID_NO_CLR(c2h_pkt, value) \ 334 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 7, value) 335 #define IQK_DATA_GET_END_SEGMENT(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 7, 1) 336 #define IQK_DATA_SET_END_SEGMENT(c2h_pkt, value) \ 337 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 7, 1, value) 338 #define IQK_DATA_SET_END_SEGMENT_NO_CLR(c2h_pkt, value) \ 339 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 7, 1, value) 340 #define IQK_DATA_GET_SEGMENT_SIZE(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 8, 8) 341 #define IQK_DATA_SET_SEGMENT_SIZE(c2h_pkt, value) \ 342 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 8, 8, value) 343 #define IQK_DATA_SET_SEGMENT_SIZE_NO_CLR(c2h_pkt, value) \ 344 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 8, 8, value) 345 #define IQK_DATA_GET_TOTAL_SIZE(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 16, 16) 346 #define IQK_DATA_SET_TOTAL_SIZE(c2h_pkt, value) \ 347 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 16, 16, value) 348 #define IQK_DATA_SET_TOTAL_SIZE_NO_CLR(c2h_pkt, value) \ 349 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 16, 16, value) 350 #define IQK_DATA_GET_H2C_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X8, 0, 16) 351 #define IQK_DATA_SET_H2C_SEQ(c2h_pkt, value) \ 352 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 0, 16, value) 353 #define IQK_DATA_SET_H2C_SEQ_NO_CLR(c2h_pkt, value) \ 354 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 0, 16, value) 355 #define IQK_DATA_GET_DATA_START(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X8, 16, 8) 356 #define IQK_DATA_SET_DATA_START(c2h_pkt, value) \ 357 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 16, 8, value) 358 #define IQK_DATA_SET_DATA_START_NO_CLR(c2h_pkt, value) \ 359 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 16, 8, value) 360 #define CCX_RPT_GET_POLLUTED(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X4, 0, 1) 361 #define CCX_RPT_SET_POLLUTED(c2h_pkt, value) \ 362 SET_C2H_FIELD_CLR(c2h_pkt + 0X4, 0, 1, value) 363 #define CCX_RPT_SET_POLLUTED_NO_CLR(c2h_pkt, value) \ 364 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X4, 0, 1, value) 365 #define CCX_RPT_GET_RPT_SEL(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X4, 5, 3) 366 #define CCX_RPT_SET_RPT_SEL(c2h_pkt, value) \ 367 SET_C2H_FIELD_CLR(c2h_pkt + 0X4, 5, 3, value) 368 #define CCX_RPT_SET_RPT_SEL_NO_CLR(c2h_pkt, value) \ 369 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X4, 5, 3, value) 370 #define CCX_RPT_GET_QSEL(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X4, 8, 5) 371 #define CCX_RPT_SET_QSEL(c2h_pkt, value) \ 372 SET_C2H_FIELD_CLR(c2h_pkt + 0X4, 8, 5, value) 373 #define CCX_RPT_SET_QSEL_NO_CLR(c2h_pkt, value) \ 374 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X4, 8, 5, value) 375 #define CCX_RPT_GET_MISSED_RPT_NUM(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X4, 13, 3) 376 #define CCX_RPT_SET_MISSED_RPT_NUM(c2h_pkt, value) \ 377 SET_C2H_FIELD_CLR(c2h_pkt + 0X4, 13, 3, value) 378 #define CCX_RPT_SET_MISSED_RPT_NUM_NO_CLR(c2h_pkt, value) \ 379 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X4, 13, 3, value) 380 #define CCX_RPT_GET_MACID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X4, 16, 7) 381 #define CCX_RPT_SET_MACID(c2h_pkt, value) \ 382 SET_C2H_FIELD_CLR(c2h_pkt + 0X4, 16, 7, value) 383 #define CCX_RPT_SET_MACID_NO_CLR(c2h_pkt, value) \ 384 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X4, 16, 7, value) 385 #define CCX_RPT_GET_INITIAL_DATA_RATE(c2h_pkt) \ 386 GET_C2H_FIELD(c2h_pkt + 0X4, 24, 7) 387 #define CCX_RPT_SET_INITIAL_DATA_RATE(c2h_pkt, value) \ 388 SET_C2H_FIELD_CLR(c2h_pkt + 0X4, 24, 7, value) 389 #define CCX_RPT_SET_INITIAL_DATA_RATE_NO_CLR(c2h_pkt, value) \ 390 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X4, 24, 7, value) 391 #define CCX_RPT_GET_INITIAL_SGI(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X4, 31, 1) 392 #define CCX_RPT_SET_INITIAL_SGI(c2h_pkt, value) \ 393 SET_C2H_FIELD_CLR(c2h_pkt + 0X4, 31, 1, value) 394 #define CCX_RPT_SET_INITIAL_SGI_NO_CLR(c2h_pkt, value) \ 395 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X4, 31, 1, value) 396 #define CCX_RPT_GET_QUEUE_TIME(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X8, 0, 16) 397 #define CCX_RPT_SET_QUEUE_TIME(c2h_pkt, value) \ 398 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 0, 16, value) 399 #define CCX_RPT_SET_QUEUE_TIME_NO_CLR(c2h_pkt, value) \ 400 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 0, 16, value) 401 #define CCX_RPT_GET_SW_DEFINE_BYTE0(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X8, 16, 8) 402 #define CCX_RPT_SET_SW_DEFINE_BYTE0(c2h_pkt, value) \ 403 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 16, 8, value) 404 #define CCX_RPT_SET_SW_DEFINE_BYTE0_NO_CLR(c2h_pkt, value) \ 405 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 16, 8, value) 406 #define CCX_RPT_GET_RTS_RETRY_COUNT(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X8, 24, 4) 407 #define CCX_RPT_SET_RTS_RETRY_COUNT(c2h_pkt, value) \ 408 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 24, 4, value) 409 #define CCX_RPT_SET_RTS_RETRY_COUNT_NO_CLR(c2h_pkt, value) \ 410 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 24, 4, value) 411 #define CCX_RPT_GET_BMC(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X8, 29, 1) 412 #define CCX_RPT_SET_BMC(c2h_pkt, value) \ 413 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 29, 1, value) 414 #define CCX_RPT_SET_BMC_NO_CLR(c2h_pkt, value) \ 415 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 29, 1, value) 416 #define CCX_RPT_GET_TX_STATE(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X8, 30, 2) 417 #define CCX_RPT_SET_TX_STATE(c2h_pkt, value) \ 418 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 30, 2, value) 419 #define CCX_RPT_SET_TX_STATE_NO_CLR(c2h_pkt, value) \ 420 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 30, 2, value) 421 #define CCX_RPT_GET_DATA_RETRY_COUNT(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0XC, 0, 6) 422 #define CCX_RPT_SET_DATA_RETRY_COUNT(c2h_pkt, value) \ 423 SET_C2H_FIELD_CLR(c2h_pkt + 0XC, 0, 6, value) 424 #define CCX_RPT_SET_DATA_RETRY_COUNT_NO_CLR(c2h_pkt, value) \ 425 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0XC, 0, 6, value) 426 #define CCX_RPT_GET_FINAL_DATA_RATE(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0XC, 8, 7) 427 #define CCX_RPT_SET_FINAL_DATA_RATE(c2h_pkt, value) \ 428 SET_C2H_FIELD_CLR(c2h_pkt + 0XC, 8, 7, value) 429 #define CCX_RPT_SET_FINAL_DATA_RATE_NO_CLR(c2h_pkt, value) \ 430 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0XC, 8, 7, value) 431 #define CCX_RPT_GET_FINAL_SGI(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0XC, 15, 1) 432 #define CCX_RPT_SET_FINAL_SGI(c2h_pkt, value) \ 433 SET_C2H_FIELD_CLR(c2h_pkt + 0XC, 15, 1, value) 434 #define CCX_RPT_SET_FINAL_SGI_NO_CLR(c2h_pkt, value) \ 435 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0XC, 15, 1, value) 436 #define CCX_RPT_GET_RF_CH_NUM(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0XC, 16, 10) 437 #define CCX_RPT_SET_RF_CH_NUM(c2h_pkt, value) \ 438 SET_C2H_FIELD_CLR(c2h_pkt + 0XC, 16, 10, value) 439 #define CCX_RPT_SET_RF_CH_NUM_NO_CLR(c2h_pkt, value) \ 440 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0XC, 16, 10, value) 441 #define CCX_RPT_GET_SC(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0XC, 26, 4) 442 #define CCX_RPT_SET_SC(c2h_pkt, value) \ 443 SET_C2H_FIELD_CLR(c2h_pkt + 0XC, 26, 4, value) 444 #define CCX_RPT_SET_SC_NO_CLR(c2h_pkt, value) \ 445 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0XC, 26, 4, value) 446 #define CCX_RPT_GET_BW(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0XC, 30, 2) 447 #define CCX_RPT_SET_BW(c2h_pkt, value) \ 448 SET_C2H_FIELD_CLR(c2h_pkt + 0XC, 30, 2, value) 449 #define CCX_RPT_SET_BW_NO_CLR(c2h_pkt, value) \ 450 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0XC, 30, 2, value) 451 #define C2H_PKT_FW_STATUS_NOTIFY_GET_STATUS_CODE(c2h_pkt) \ 452 GET_C2H_FIELD(c2h_pkt + 0X04, 0, 32) 453 #define C2H_PKT_FW_STATUS_NOTIFY_SET_STATUS_CODE(c2h_pkt, value) \ 454 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 32, value) 455 #define C2H_PKT_FW_STATUS_NOTIFY_SET_STATUS_CODE_NO_CLR(c2h_pkt, value) \ 456 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 32, value) 457 #define C2H_PKT_DETECT_THERMAL_GET_THERMAL_VALUE(c2h_pkt) \ 458 GET_C2H_FIELD(c2h_pkt + 0X04, 0, 32) 459 #define C2H_PKT_DETECT_THERMAL_SET_THERMAL_VALUE(c2h_pkt, value) \ 460 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 32, value) 461 #define C2H_PKT_DETECT_THERMAL_SET_THERMAL_VALUE_NO_CLR(c2h_pkt, value) \ 462 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 32, value) 463 #define FW_DBG_MSG_GET_CMD_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 0, 8) 464 #define FW_DBG_MSG_SET_CMD_ID(c2h_pkt, value) \ 465 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 0, 8, value) 466 #define FW_DBG_MSG_SET_CMD_ID_NO_CLR(c2h_pkt, value) \ 467 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 0, 8, value) 468 #define FW_DBG_MSG_GET_C2H_SUB_CMD_ID(c2h_pkt) \ 469 GET_C2H_FIELD(c2h_pkt + 0X00, 16, 8) 470 #define FW_DBG_MSG_SET_C2H_SUB_CMD_ID(c2h_pkt, value) \ 471 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 16, 8, value) 472 #define FW_DBG_MSG_SET_C2H_SUB_CMD_ID_NO_CLR(c2h_pkt, value) \ 473 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 16, 8, value) 474 #define FW_DBG_MSG_GET_FULL(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 24, 1) 475 #define FW_DBG_MSG_SET_FULL(c2h_pkt, value) \ 476 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 24, 1, value) 477 #define FW_DBG_MSG_SET_FULL_NO_CLR(c2h_pkt, value) \ 478 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 24, 1, value) 479 #define FW_DBG_MSG_GET_OWN(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 31, 1) 480 #define FW_DBG_MSG_SET_OWN(c2h_pkt, value) \ 481 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 31, 1, value) 482 #define FW_DBG_MSG_SET_OWN_NO_CLR(c2h_pkt, value) \ 483 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 31, 1, value) 484 #define FW_FWCTRL_RPT_GET_EVT_TYPE(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 0, 8) 485 #define FW_FWCTRL_RPT_SET_EVT_TYPE(c2h_pkt, value) \ 486 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 0, 8, value) 487 #define FW_FWCTRL_RPT_SET_EVT_TYPE_NO_CLR(c2h_pkt, value) \ 488 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 0, 8, value) 489 #define FW_FWCTRL_RPT_GET_LENGTH(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 8, 8) 490 #define FW_FWCTRL_RPT_SET_LENGTH(c2h_pkt, value) \ 491 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 8, 8, value) 492 #define FW_FWCTRL_RPT_SET_LENGTH_NO_CLR(c2h_pkt, value) \ 493 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 8, 8, value) 494 #define FW_FWCTRL_RPT_GET_SEQ_NUM(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 16, 8) 495 #define FW_FWCTRL_RPT_SET_SEQ_NUM(c2h_pkt, value) \ 496 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 16, 8, value) 497 #define FW_FWCTRL_RPT_SET_SEQ_NUM_NO_CLR(c2h_pkt, value) \ 498 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 16, 8, value) 499 #define FW_FWCTRL_RPT_GET_IS_ACK(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X00, 24, 1) 500 #define FW_FWCTRL_RPT_SET_IS_ACK(c2h_pkt, value) \ 501 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 24, 1, value) 502 #define FW_FWCTRL_RPT_SET_IS_ACK_NO_CLR(c2h_pkt, value) \ 503 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 24, 1, value) 504 #define FW_FWCTRL_RPT_GET_MORE_CONTENT(c2h_pkt) \ 505 GET_C2H_FIELD(c2h_pkt + 0X00, 25, 1) 506 #define FW_FWCTRL_RPT_SET_MORE_CONTENT(c2h_pkt, value) \ 507 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 25, 1, value) 508 #define FW_FWCTRL_RPT_SET_MORE_CONTENT_NO_CLR(c2h_pkt, value) \ 509 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 25, 1, value) 510 #define FW_FWCTRL_RPT_GET_CONTENT_IDX(c2h_pkt) \ 511 GET_C2H_FIELD(c2h_pkt + 0X00, 26, 6) 512 #define FW_FWCTRL_RPT_SET_CONTENT_IDX(c2h_pkt, value) \ 513 SET_C2H_FIELD_CLR(c2h_pkt + 0X00, 26, 6, value) 514 #define FW_FWCTRL_RPT_SET_CONTENT_IDX_NO_CLR(c2h_pkt, value) \ 515 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X00, 26, 6, value) 516 #define FW_FWCTRL_RPT_GET_CLASS_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 0, 8) 517 #define FW_FWCTRL_RPT_SET_CLASS_ID(c2h_pkt, value) \ 518 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 8, value) 519 #define FW_FWCTRL_RPT_SET_CLASS_ID_NO_CLR(c2h_pkt, value) \ 520 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 8, value) 521 #define FW_FWCTRL_RPT_GET_CONTENT(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 16, 16) 522 #define FW_FWCTRL_RPT_SET_CONTENT(c2h_pkt, value) \ 523 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 16, 16, value) 524 #define FW_FWCTRL_RPT_SET_CONTENT_NO_CLR(c2h_pkt, value) \ 525 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 16, 16, value) 526 #define H2C_LOOPBACK_ACK_GET_H2C_BYTE_0(c2h_pkt) \ 527 GET_C2H_FIELD(c2h_pkt + 0X04, 0, 8) 528 #define H2C_LOOPBACK_ACK_SET_H2C_BYTE_0(c2h_pkt, value) \ 529 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 8, value) 530 #define H2C_LOOPBACK_ACK_SET_H2C_BYTE_0_NO_CLR(c2h_pkt, value) \ 531 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 8, value) 532 #define H2C_LOOPBACK_ACK_GET_H2C_BYTE_1(c2h_pkt) \ 533 GET_C2H_FIELD(c2h_pkt + 0X04, 8, 8) 534 #define H2C_LOOPBACK_ACK_SET_H2C_BYTE_1(c2h_pkt, value) \ 535 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 8, 8, value) 536 #define H2C_LOOPBACK_ACK_SET_H2C_BYTE_1_NO_CLR(c2h_pkt, value) \ 537 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 8, 8, value) 538 #define H2C_LOOPBACK_ACK_GET_H2C_BYTE_2(c2h_pkt) \ 539 GET_C2H_FIELD(c2h_pkt + 0X04, 16, 8) 540 #define H2C_LOOPBACK_ACK_SET_H2C_BYTE_2(c2h_pkt, value) \ 541 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 16, 8, value) 542 #define H2C_LOOPBACK_ACK_SET_H2C_BYTE_2_NO_CLR(c2h_pkt, value) \ 543 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 16, 8, value) 544 #define H2C_LOOPBACK_ACK_GET_H2C_BYTE_3(c2h_pkt) \ 545 GET_C2H_FIELD(c2h_pkt + 0X04, 24, 8) 546 #define H2C_LOOPBACK_ACK_SET_H2C_BYTE_3(c2h_pkt, value) \ 547 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 24, 8, value) 548 #define H2C_LOOPBACK_ACK_SET_H2C_BYTE_3_NO_CLR(c2h_pkt, value) \ 549 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 24, 8, value) 550 #define H2C_LOOPBACK_ACK_GET_H2C_BYTE_4(c2h_pkt) \ 551 GET_C2H_FIELD(c2h_pkt + 0X8, 0, 8) 552 #define H2C_LOOPBACK_ACK_SET_H2C_BYTE_4(c2h_pkt, value) \ 553 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 0, 8, value) 554 #define H2C_LOOPBACK_ACK_SET_H2C_BYTE_4_NO_CLR(c2h_pkt, value) \ 555 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 0, 8, value) 556 #define H2C_LOOPBACK_ACK_GET_H2C_BYTE_5(c2h_pkt) \ 557 GET_C2H_FIELD(c2h_pkt + 0X8, 8, 8) 558 #define H2C_LOOPBACK_ACK_SET_H2C_BYTE_5(c2h_pkt, value) \ 559 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 8, 8, value) 560 #define H2C_LOOPBACK_ACK_SET_H2C_BYTE_5_NO_CLR(c2h_pkt, value) \ 561 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 8, 8, value) 562 #define H2C_LOOPBACK_ACK_GET_H2C_BYTE_6(c2h_pkt) \ 563 GET_C2H_FIELD(c2h_pkt + 0X8, 16, 8) 564 #define H2C_LOOPBACK_ACK_SET_H2C_BYTE_6(c2h_pkt, value) \ 565 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 16, 8, value) 566 #define H2C_LOOPBACK_ACK_SET_H2C_BYTE_6_NO_CLR(c2h_pkt, value) \ 567 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 16, 8, value) 568 #define H2C_LOOPBACK_ACK_GET_H2C_BYTE_7(c2h_pkt) \ 569 GET_C2H_FIELD(c2h_pkt + 0X8, 24, 8) 570 #define H2C_LOOPBACK_ACK_SET_H2C_BYTE_7(c2h_pkt, value) \ 571 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 24, 8, value) 572 #define H2C_LOOPBACK_ACK_SET_H2C_BYTE_7_NO_CLR(c2h_pkt, value) \ 573 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 24, 8, value) 574 #define FWCMD_LOOPBACK_ACK_GET_H2C_BYTE_0(c2h_pkt) \ 575 GET_C2H_FIELD(c2h_pkt + 0X04, 0, 8) 576 #define FWCMD_LOOPBACK_ACK_SET_H2C_BYTE_0(c2h_pkt, value) \ 577 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 8, value) 578 #define FWCMD_LOOPBACK_ACK_SET_H2C_BYTE_0_NO_CLR(c2h_pkt, value) \ 579 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 8, value) 580 #define FWCMD_LOOPBACK_ACK_GET_H2C_BYTE_1(c2h_pkt) \ 581 GET_C2H_FIELD(c2h_pkt + 0X04, 8, 8) 582 #define FWCMD_LOOPBACK_ACK_SET_H2C_BYTE_1(c2h_pkt, value) \ 583 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 8, 8, value) 584 #define FWCMD_LOOPBACK_ACK_SET_H2C_BYTE_1_NO_CLR(c2h_pkt, value) \ 585 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 8, 8, value) 586 #define FWCMD_LOOPBACK_ACK_GET_H2C_BYTE_2(c2h_pkt) \ 587 GET_C2H_FIELD(c2h_pkt + 0X04, 16, 8) 588 #define FWCMD_LOOPBACK_ACK_SET_H2C_BYTE_2(c2h_pkt, value) \ 589 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 16, 8, value) 590 #define FWCMD_LOOPBACK_ACK_SET_H2C_BYTE_2_NO_CLR(c2h_pkt, value) \ 591 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 16, 8, value) 592 #define FWCMD_LOOPBACK_ACK_GET_H2C_BYTE_3(c2h_pkt) \ 593 GET_C2H_FIELD(c2h_pkt + 0X04, 24, 8) 594 #define FWCMD_LOOPBACK_ACK_SET_H2C_BYTE_3(c2h_pkt, value) \ 595 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 24, 8, value) 596 #define FWCMD_LOOPBACK_ACK_SET_H2C_BYTE_3_NO_CLR(c2h_pkt, value) \ 597 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 24, 8, value) 598 #define FWCMD_LOOPBACK_ACK_GET_H2C_BYTE_4(c2h_pkt) \ 599 GET_C2H_FIELD(c2h_pkt + 0X8, 0, 8) 600 #define FWCMD_LOOPBACK_ACK_SET_H2C_BYTE_4(c2h_pkt, value) \ 601 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 0, 8, value) 602 #define FWCMD_LOOPBACK_ACK_SET_H2C_BYTE_4_NO_CLR(c2h_pkt, value) \ 603 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 0, 8, value) 604 #define FWCMD_LOOPBACK_ACK_GET_H2C_BYTE_5(c2h_pkt) \ 605 GET_C2H_FIELD(c2h_pkt + 0X8, 8, 8) 606 #define FWCMD_LOOPBACK_ACK_SET_H2C_BYTE_5(c2h_pkt, value) \ 607 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 8, 8, value) 608 #define FWCMD_LOOPBACK_ACK_SET_H2C_BYTE_5_NO_CLR(c2h_pkt, value) \ 609 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 8, 8, value) 610 #define FWCMD_LOOPBACK_ACK_GET_H2C_BYTE_6(c2h_pkt) \ 611 GET_C2H_FIELD(c2h_pkt + 0X8, 16, 8) 612 #define FWCMD_LOOPBACK_ACK_SET_H2C_BYTE_6(c2h_pkt, value) \ 613 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 16, 8, value) 614 #define FWCMD_LOOPBACK_ACK_SET_H2C_BYTE_6_NO_CLR(c2h_pkt, value) \ 615 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 16, 8, value) 616 #define FWCMD_LOOPBACK_ACK_GET_H2C_BYTE_7(c2h_pkt) \ 617 GET_C2H_FIELD(c2h_pkt + 0X8, 24, 8) 618 #define FWCMD_LOOPBACK_ACK_SET_H2C_BYTE_7(c2h_pkt, value) \ 619 SET_C2H_FIELD_CLR(c2h_pkt + 0X8, 24, 8, value) 620 #define FWCMD_LOOPBACK_ACK_SET_H2C_BYTE_7_NO_CLR(c2h_pkt, value) \ 621 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X8, 24, 8, value) 622 #define SCAN_CH_NOTIFY_GET_CH_NUM(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 0, 8) 623 #define SCAN_CH_NOTIFY_SET_CH_NUM(c2h_pkt, value) \ 624 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 8, value) 625 #define SCAN_CH_NOTIFY_SET_CH_NUM_NO_CLR(c2h_pkt, value) \ 626 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 8, value) 627 #define SCAN_CH_NOTIFY_GET_NOTIFY_ID(c2h_pkt) \ 628 GET_C2H_FIELD(c2h_pkt + 0X04, 8, 8) 629 #define SCAN_CH_NOTIFY_SET_NOTIFY_ID(c2h_pkt, value) \ 630 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 8, 8, value) 631 #define SCAN_CH_NOTIFY_SET_NOTIFY_ID_NO_CLR(c2h_pkt, value) \ 632 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 8, 8, value) 633 #define SCAN_CH_NOTIFY_GET_STATUS(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 16, 8) 634 #define SCAN_CH_NOTIFY_SET_STATUS(c2h_pkt, value) \ 635 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 16, 8, value) 636 #define SCAN_CH_NOTIFY_SET_STATUS_NO_CLR(c2h_pkt, value) \ 637 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 16, 8, value) 638 #define SCAN_CH_NOTIFY_GET_TSF_0(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 0, 8) 639 #define SCAN_CH_NOTIFY_SET_TSF_0(c2h_pkt, value) \ 640 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 0, 8, value) 641 #define SCAN_CH_NOTIFY_SET_TSF_0_NO_CLR(c2h_pkt, value) \ 642 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 0, 8, value) 643 #define SCAN_CH_NOTIFY_GET_TSF_1(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 8, 8) 644 #define SCAN_CH_NOTIFY_SET_TSF_1(c2h_pkt, value) \ 645 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 8, 8, value) 646 #define SCAN_CH_NOTIFY_SET_TSF_1_NO_CLR(c2h_pkt, value) \ 647 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 8, 8, value) 648 #define SCAN_CH_NOTIFY_GET_TSF_2(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 16, 8) 649 #define SCAN_CH_NOTIFY_SET_TSF_2(c2h_pkt, value) \ 650 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 16, 8, value) 651 #define SCAN_CH_NOTIFY_SET_TSF_2_NO_CLR(c2h_pkt, value) \ 652 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 16, 8, value) 653 #define SCAN_CH_NOTIFY_GET_TSF_3(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 24, 8) 654 #define SCAN_CH_NOTIFY_SET_TSF_3(c2h_pkt, value) \ 655 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 24, 8, value) 656 #define SCAN_CH_NOTIFY_SET_TSF_3_NO_CLR(c2h_pkt, value) \ 657 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 24, 8, value) 658 #define SCAN_CH_NOTIFY_GET_TSF_4(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 0, 8) 659 #define SCAN_CH_NOTIFY_SET_TSF_4(c2h_pkt, value) \ 660 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 0, 8, value) 661 #define SCAN_CH_NOTIFY_SET_TSF_4_NO_CLR(c2h_pkt, value) \ 662 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 0, 8, value) 663 #define SCAN_CH_NOTIFY_GET_TSF_5(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 8, 8) 664 #define SCAN_CH_NOTIFY_SET_TSF_5(c2h_pkt, value) \ 665 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 8, 8, value) 666 #define SCAN_CH_NOTIFY_SET_TSF_5_NO_CLR(c2h_pkt, value) \ 667 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 8, 8, value) 668 #define SCAN_CH_NOTIFY_GET_TSF_6(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 16, 8) 669 #define SCAN_CH_NOTIFY_SET_TSF_6(c2h_pkt, value) \ 670 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 16, 8, value) 671 #define SCAN_CH_NOTIFY_SET_TSF_6_NO_CLR(c2h_pkt, value) \ 672 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 16, 8, value) 673 #define SCAN_CH_NOTIFY_GET_TSF_7(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 24, 8) 674 #define SCAN_CH_NOTIFY_SET_TSF_7(c2h_pkt, value) \ 675 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 24, 8, value) 676 #define SCAN_CH_NOTIFY_SET_TSF_7_NO_CLR(c2h_pkt, value) \ 677 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 24, 8, value) 678 #define FW_TBTT_RPT_GET_PORT_NUMBER(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 0, 8) 679 #define FW_TBTT_RPT_SET_PORT_NUMBER(c2h_pkt, value) \ 680 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 8, value) 681 #define FW_TBTT_RPT_SET_PORT_NUMBER_NO_CLR(c2h_pkt, value) \ 682 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 8, value) 683 #define BCN_OFFLOAD_GET_SUPPORT_VER(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 0, 8) 684 #define BCN_OFFLOAD_SET_SUPPORT_VER(c2h_pkt, value) \ 685 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 8, value) 686 #define BCN_OFFLOAD_SET_SUPPORT_VER_NO_CLR(c2h_pkt, value) \ 687 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 8, value) 688 #define BCN_OFFLOAD_GET_STATUS(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 8, 8) 689 #define BCN_OFFLOAD_SET_STATUS(c2h_pkt, value) \ 690 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 8, 8, value) 691 #define BCN_OFFLOAD_SET_STATUS_NO_CLR(c2h_pkt, value) \ 692 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 8, 8, value) 693 #define DPK_DATA_GET_SEGMENT_ID(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 0, 7) 694 #define DPK_DATA_SET_SEGMENT_ID(c2h_pkt, value) \ 695 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 0, 7, value) 696 #define DPK_DATA_SET_SEGMENT_ID_NO_CLR(c2h_pkt, value) \ 697 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 0, 7, value) 698 #define DPK_DATA_GET_END_SEGMENT(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 7, 1) 699 #define DPK_DATA_SET_END_SEGMENT(c2h_pkt, value) \ 700 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 7, 1, value) 701 #define DPK_DATA_SET_END_SEGMENT_NO_CLR(c2h_pkt, value) \ 702 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 7, 1, value) 703 #define DPK_DATA_GET_SEGMENT_SIZE(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 8, 8) 704 #define DPK_DATA_SET_SEGMENT_SIZE(c2h_pkt, value) \ 705 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 8, 8, value) 706 #define DPK_DATA_SET_SEGMENT_SIZE_NO_CLR(c2h_pkt, value) \ 707 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 8, 8, value) 708 #define DPK_DATA_GET_TOTAL_SIZE(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X04, 16, 16) 709 #define DPK_DATA_SET_TOTAL_SIZE(c2h_pkt, value) \ 710 SET_C2H_FIELD_CLR(c2h_pkt + 0X04, 16, 16, value) 711 #define DPK_DATA_SET_TOTAL_SIZE_NO_CLR(c2h_pkt, value) \ 712 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X04, 16, 16, value) 713 #define DPK_DATA_GET_H2C_SEQ(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 0, 16) 714 #define DPK_DATA_SET_H2C_SEQ(c2h_pkt, value) \ 715 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 0, 16, value) 716 #define DPK_DATA_SET_H2C_SEQ_NO_CLR(c2h_pkt, value) \ 717 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 0, 16, value) 718 #define DPK_DATA_GET_PATH0_OK(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 16, 8) 719 #define DPK_DATA_SET_PATH0_OK(c2h_pkt, value) \ 720 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 16, 8, value) 721 #define DPK_DATA_SET_PATH0_OK_NO_CLR(c2h_pkt, value) \ 722 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 16, 8, value) 723 #define DPK_DATA_GET_PATH1_OK(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X08, 24, 8) 724 #define DPK_DATA_SET_PATH1_OK(c2h_pkt, value) \ 725 SET_C2H_FIELD_CLR(c2h_pkt + 0X08, 24, 8, value) 726 #define DPK_DATA_SET_PATH1_OK_NO_CLR(c2h_pkt, value) \ 727 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X08, 24, 8, value) 728 #define DPK_DATA_GET_THERM0_S0(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 0, 8) 729 #define DPK_DATA_SET_THERM0_S0(c2h_pkt, value) \ 730 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 0, 8, value) 731 #define DPK_DATA_SET_THERM0_S0_NO_CLR(c2h_pkt, value) \ 732 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 0, 8, value) 733 #define DPK_DATA_GET_THERM0_S1(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 8, 8) 734 #define DPK_DATA_SET_THERM0_S1(c2h_pkt, value) \ 735 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 8, 8, value) 736 #define DPK_DATA_SET_THERM0_S1_NO_CLR(c2h_pkt, value) \ 737 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 8, 8, value) 738 #define DPK_DATA_GET_THERM1_S0(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 16, 8) 739 #define DPK_DATA_SET_THERM1_S0(c2h_pkt, value) \ 740 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 16, 8, value) 741 #define DPK_DATA_SET_THERM1_S0_NO_CLR(c2h_pkt, value) \ 742 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 16, 8, value) 743 #define DPK_DATA_GET_THERM1_S1(c2h_pkt) GET_C2H_FIELD(c2h_pkt + 0X0C, 24, 8) 744 #define DPK_DATA_SET_THERM1_S1(c2h_pkt, value) \ 745 SET_C2H_FIELD_CLR(c2h_pkt + 0X0C, 24, 8, value) 746 #define DPK_DATA_SET_THERM1_S1_NO_CLR(c2h_pkt, value) \ 747 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X0C, 24, 8, value) 748 #define DPK_DATA_GET_THERM_DELTA0_S0(c2h_pkt) \ 749 GET_C2H_FIELD(c2h_pkt + 0X10, 0, 8) 750 #define DPK_DATA_SET_THERM_DELTA0_S0(c2h_pkt, value) \ 751 SET_C2H_FIELD_CLR(c2h_pkt + 0X10, 0, 8, value) 752 #define DPK_DATA_SET_THERM_DELTA0_S0_NO_CLR(c2h_pkt, value) \ 753 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X10, 0, 8, value) 754 #define DPK_DATA_GET_THERM_DELTA0_S1(c2h_pkt) \ 755 GET_C2H_FIELD(c2h_pkt + 0X10, 8, 8) 756 #define DPK_DATA_SET_THERM_DELTA0_S1(c2h_pkt, value) \ 757 SET_C2H_FIELD_CLR(c2h_pkt + 0X10, 8, 8, value) 758 #define DPK_DATA_SET_THERM_DELTA0_S1_NO_CLR(c2h_pkt, value) \ 759 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X10, 8, 8, value) 760 #define DPK_DATA_GET_THERM_DELTA1_S0(c2h_pkt) \ 761 GET_C2H_FIELD(c2h_pkt + 0X10, 16, 8) 762 #define DPK_DATA_SET_THERM_DELTA1_S0(c2h_pkt, value) \ 763 SET_C2H_FIELD_CLR(c2h_pkt + 0X10, 16, 8, value) 764 #define DPK_DATA_SET_THERM_DELTA1_S0_NO_CLR(c2h_pkt, value) \ 765 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X10, 16, 8, value) 766 #define DPK_DATA_GET_THERM_DELTA1_S1(c2h_pkt) \ 767 GET_C2H_FIELD(c2h_pkt + 0X10, 24, 8) 768 #define DPK_DATA_SET_THERM_DELTA1_S1(c2h_pkt, value) \ 769 SET_C2H_FIELD_CLR(c2h_pkt + 0X10, 24, 8, value) 770 #define DPK_DATA_SET_THERM_DELTA1_S1_NO_CLR(c2h_pkt, value) \ 771 SET_C2H_FIELD_NO_CLR(c2h_pkt + 0X10, 24, 8, value) 772 #endif 773