1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /****************************************************************************** 3 * 4 * Copyright(c) 2016 Realtek Corporation. 5 * 6 * Contact Information: 7 * wlanfae <wlanfae@realtek.com> 8 * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, 9 * Hsinchu 300, Taiwan. 10 * 11 * Larry Finger <Larry.Finger@lwfinger.net> 12 * 13 *****************************************************************************/ 14 #ifndef _HAL_ORIGINALC2HFORMAT_H2C_C2H_NIC_H_ 15 #define _HAL_ORIGINALC2HFORMAT_H2C_C2H_NIC_H_ 16 #define CMD_ID_C2H 0X00 17 #define CMD_ID_DBG 0X00 18 #define CMD_ID_C2H_LB 0X01 19 #define CMD_ID_C2H_SND_TXBF 0X02 20 #define CMD_ID_C2H_CCX_RPT 0X03 21 #define CMD_ID_C2H_AP_REQ_TXRPT 0X04 22 #define CMD_ID_C2H_INITIAL_RATE_COLLECTION 0X05 23 #define CMD_ID_C2H_RA_RPT 0X0C 24 #define CMD_ID_C2H_SPECIAL_STATISTICS 0X0D 25 #define CMD_ID_C2H_RA_PARA_RPT 0X0E 26 #define CMD_ID_C2H_CUR_CHANNEL 0X10 27 #define CMD_ID_C2H_GPIO_WAKEUP 0X14 28 #define C2H_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8) 29 #define C2H_SET_CMD_ID(__c2h, __value) \ 30 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value) 31 #define C2H_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8) 32 #define C2H_SET_SEQ(__c2h, __value) \ 33 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value) 34 #define DBG_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8) 35 #define DBG_SET_CMD_ID(__c2h, __value) \ 36 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value) 37 #define DBG_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8) 38 #define DBG_SET_SEQ(__c2h, __value) \ 39 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value) 40 #define DBG_GET_DBG_STR1(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 8) 41 #define DBG_SET_DBG_STR1(__c2h, __value) \ 42 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 8, __value) 43 #define DBG_GET_DBG_STR2(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8) 44 #define DBG_SET_DBG_STR2(__c2h, __value) \ 45 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value) 46 #define DBG_GET_DBG_STR3(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 8) 47 #define DBG_SET_DBG_STR3(__c2h, __value) \ 48 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 8, __value) 49 #define DBG_GET_DBG_STR4(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8) 50 #define DBG_SET_DBG_STR4(__c2h, __value) \ 51 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value) 52 #define DBG_GET_DBG_STR5(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 8) 53 #define DBG_SET_DBG_STR5(__c2h, __value) \ 54 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 8, __value) 55 #define DBG_GET_DBG_STR6(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 24, 8) 56 #define DBG_SET_DBG_STR6(__c2h, __value) \ 57 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 24, 8, __value) 58 #define DBG_GET_DBG_STR7(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 0, 8) 59 #define DBG_SET_DBG_STR7(__c2h, __value) \ 60 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 0, 8, __value) 61 #define DBG_GET_DBG_STR8(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 8, 8) 62 #define DBG_SET_DBG_STR8(__c2h, __value) \ 63 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 8, 8, __value) 64 #define DBG_GET_DBG_STR9(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 16, 8) 65 #define DBG_SET_DBG_STR9(__c2h, __value) \ 66 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 16, 8, __value) 67 #define DBG_GET_DBG_STR10(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 24, 8) 68 #define DBG_SET_DBG_STR10(__c2h, __value) \ 69 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 24, 8, __value) 70 #define DBG_GET_DBG_STR11(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 0, 8) 71 #define DBG_SET_DBG_STR11(__c2h, __value) \ 72 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 0, 8, __value) 73 #define DBG_GET_DBG_STR12(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 8, 8) 74 #define DBG_SET_DBG_STR12(__c2h, __value) \ 75 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 8, 8, __value) 76 #define DBG_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8) 77 #define DBG_SET_LEN(__c2h, __value) \ 78 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value) 79 #define DBG_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8) 80 #define DBG_SET_TRIGGER(__c2h, __value) \ 81 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value) 82 #define C2H_LB_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8) 83 #define C2H_LB_SET_CMD_ID(__c2h, __value) \ 84 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value) 85 #define C2H_LB_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8) 86 #define C2H_LB_SET_SEQ(__c2h, __value) \ 87 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value) 88 #define C2H_LB_GET_PAYLOAD1(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 16) 89 #define C2H_LB_SET_PAYLOAD1(__c2h, __value) \ 90 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 16, __value) 91 #define C2H_LB_GET_PAYLOAD2(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 32) 92 #define C2H_LB_SET_PAYLOAD2(__c2h, __value) \ 93 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 32, __value) 94 #define C2H_LB_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8) 95 #define C2H_LB_SET_LEN(__c2h, __value) \ 96 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value) 97 #define C2H_LB_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8) 98 #define C2H_LB_SET_TRIGGER(__c2h, __value) \ 99 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value) 100 #define C2H_SND_TXBF_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8) 101 #define C2H_SND_TXBF_SET_CMD_ID(__c2h, __value) \ 102 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value) 103 #define C2H_SND_TXBF_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8) 104 #define C2H_SND_TXBF_SET_SEQ(__c2h, __value) \ 105 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value) 106 #define C2H_SND_TXBF_GET_SND_RESULT(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 1) 107 #define C2H_SND_TXBF_SET_SND_RESULT(__c2h, __value) \ 108 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 1, __value) 109 #define C2H_SND_TXBF_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8) 110 #define C2H_SND_TXBF_SET_LEN(__c2h, __value) \ 111 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value) 112 #define C2H_SND_TXBF_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8) 113 #define C2H_SND_TXBF_SET_TRIGGER(__c2h, __value) \ 114 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value) 115 #define C2H_CCX_RPT_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8) 116 #define C2H_CCX_RPT_SET_CMD_ID(__c2h, __value) \ 117 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value) 118 #define C2H_CCX_RPT_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8) 119 #define C2H_CCX_RPT_SET_SEQ(__c2h, __value) \ 120 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value) 121 #define C2H_CCX_RPT_GET_QSEL(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 5) 122 #define C2H_CCX_RPT_SET_QSEL(__c2h, __value) \ 123 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 5, __value) 124 #define C2H_CCX_RPT_GET_BMC(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 21, 1) 125 #define C2H_CCX_RPT_SET_BMC(__c2h, __value) \ 126 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 21, 1, __value) 127 #define C2H_CCX_RPT_GET_LIFE_TIME_OVER(__c2h) \ 128 LE_BITS_TO_4BYTE(__c2h + 0X00, 22, 1) 129 #define C2H_CCX_RPT_SET_LIFE_TIME_OVER(__c2h, __value) \ 130 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 22, 1, __value) 131 #define C2H_CCX_RPT_GET_RETRY_OVER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 23, 1) 132 #define C2H_CCX_RPT_SET_RETRY_OVER(__c2h, __value) \ 133 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 23, 1, __value) 134 #define C2H_CCX_RPT_GET_MACID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8) 135 #define C2H_CCX_RPT_SET_MACID(__c2h, __value) \ 136 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value) 137 #define C2H_CCX_RPT_GET_DATA_RETRY_CNT(__c2h) \ 138 LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 6) 139 #define C2H_CCX_RPT_SET_DATA_RETRY_CNT(__c2h, __value) \ 140 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 6, __value) 141 #define C2H_CCX_RPT_GET_QUEUE7_0(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8) 142 #define C2H_CCX_RPT_SET_QUEUE7_0(__c2h, __value) \ 143 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value) 144 #define C2H_CCX_RPT_GET_QUEUE15_8(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 8) 145 #define C2H_CCX_RPT_SET_QUEUE15_8(__c2h, __value) \ 146 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 8, __value) 147 #define C2H_CCX_RPT_GET_FINAL_DATA_RATE(__c2h) \ 148 LE_BITS_TO_4BYTE(__c2h + 0X04, 24, 8) 149 #define C2H_CCX_RPT_SET_FINAL_DATA_RATE(__c2h, __value) \ 150 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 24, 8, __value) 151 #define C2H_CCX_RPT_GET_SW_DEFINE_0(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 0, 8) 152 #define C2H_CCX_RPT_SET_SW_DEFINE_0(__c2h, __value) \ 153 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 0, 8, __value) 154 #define C2H_CCX_RPT_GET_SW_DEFINE_1(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X08, 8, 4) 155 #define C2H_CCX_RPT_SET_SW_DEFINE_1(__c2h, __value) \ 156 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 8, 4, __value) 157 #define C2H_CCX_RPT_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8) 158 #define C2H_CCX_RPT_SET_LEN(__c2h, __value) \ 159 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value) 160 #define C2H_CCX_RPT_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8) 161 #define C2H_CCX_RPT_SET_TRIGGER(__c2h, __value) \ 162 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value) 163 #define C2H_AP_REQ_TXRPT_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8) 164 #define C2H_AP_REQ_TXRPT_SET_CMD_ID(__c2h, __value) \ 165 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value) 166 #define C2H_AP_REQ_TXRPT_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8) 167 #define C2H_AP_REQ_TXRPT_SET_SEQ(__c2h, __value) \ 168 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value) 169 #define C2H_AP_REQ_TXRPT_GET_STA1_MACID(__c2h) \ 170 LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 8) 171 #define C2H_AP_REQ_TXRPT_SET_STA1_MACID(__c2h, __value) \ 172 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 8, __value) 173 #define C2H_AP_REQ_TXRPT_GET_TX_OK1_0(__c2h) \ 174 LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8) 175 #define C2H_AP_REQ_TXRPT_SET_TX_OK1_0(__c2h, __value) \ 176 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value) 177 #define C2H_AP_REQ_TXRPT_GET_TX_OK1_1(__c2h) \ 178 LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 8) 179 #define C2H_AP_REQ_TXRPT_SET_TX_OK1_1(__c2h, __value) \ 180 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 8, __value) 181 #define C2H_AP_REQ_TXRPT_GET_TX_FAIL1_0(__c2h) \ 182 LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8) 183 #define C2H_AP_REQ_TXRPT_SET_TX_FAIL1_0(__c2h, __value) \ 184 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value) 185 #define C2H_AP_REQ_TXRPT_GET_TX_FAIL1_1(__c2h) \ 186 LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 8) 187 #define C2H_AP_REQ_TXRPT_SET_TX_FAIL1_1(__c2h, __value) \ 188 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 8, __value) 189 #define C2H_AP_REQ_TXRPT_GET_INITIAL_RATE1(__c2h) \ 190 LE_BITS_TO_4BYTE(__c2h + 0X04, 24, 8) 191 #define C2H_AP_REQ_TXRPT_SET_INITIAL_RATE1(__c2h, __value) \ 192 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 24, 8, __value) 193 #define C2H_AP_REQ_TXRPT_GET_STA2_MACID(__c2h) \ 194 LE_BITS_TO_4BYTE(__c2h + 0X08, 0, 8) 195 #define C2H_AP_REQ_TXRPT_SET_STA2_MACID(__c2h, __value) \ 196 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 0, 8, __value) 197 #define C2H_AP_REQ_TXRPT_GET_TX_OK2_0(__c2h) \ 198 LE_BITS_TO_4BYTE(__c2h + 0X08, 8, 8) 199 #define C2H_AP_REQ_TXRPT_SET_TX_OK2_0(__c2h, __value) \ 200 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 8, 8, __value) 201 #define C2H_AP_REQ_TXRPT_GET_TX_OK2_1(__c2h) \ 202 LE_BITS_TO_4BYTE(__c2h + 0X08, 16, 8) 203 #define C2H_AP_REQ_TXRPT_SET_TX_OK2_1(__c2h, __value) \ 204 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 16, 8, __value) 205 #define C2H_AP_REQ_TXRPT_GET_TX_FAIL2_0(__c2h) \ 206 LE_BITS_TO_4BYTE(__c2h + 0X08, 24, 8) 207 #define C2H_AP_REQ_TXRPT_SET_TX_FAIL2_0(__c2h, __value) \ 208 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 24, 8, __value) 209 #define C2H_AP_REQ_TXRPT_GET_TX_FAIL2_1(__c2h) \ 210 LE_BITS_TO_4BYTE(__c2h + 0X0C, 0, 8) 211 #define C2H_AP_REQ_TXRPT_SET_TX_FAIL2_1(__c2h, __value) \ 212 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 0, 8, __value) 213 #define C2H_AP_REQ_TXRPT_GET_INITIAL_RATE2(__c2h) \ 214 LE_BITS_TO_4BYTE(__c2h + 0X0C, 8, 8) 215 #define C2H_AP_REQ_TXRPT_SET_INITIAL_RATE2(__c2h, __value) \ 216 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 8, 8, __value) 217 #define C2H_AP_REQ_TXRPT_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8) 218 #define C2H_AP_REQ_TXRPT_SET_LEN(__c2h, __value) \ 219 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value) 220 #define C2H_AP_REQ_TXRPT_GET_TRIGGER(__c2h) \ 221 LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8) 222 #define C2H_AP_REQ_TXRPT_SET_TRIGGER(__c2h, __value) \ 223 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value) 224 #define C2H_INITIAL_RATE_COLLECTION_GET_CMD_ID(__c2h) \ 225 LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8) 226 #define C2H_INITIAL_RATE_COLLECTION_SET_CMD_ID(__c2h, __value) \ 227 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value) 228 #define C2H_INITIAL_RATE_COLLECTION_GET_SEQ(__c2h) \ 229 LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8) 230 #define C2H_INITIAL_RATE_COLLECTION_SET_SEQ(__c2h, __value) \ 231 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value) 232 #define C2H_INITIAL_RATE_COLLECTION_GET_TRYING_BITMAP(__c2h) \ 233 LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 7) 234 #define C2H_INITIAL_RATE_COLLECTION_SET_TRYING_BITMAP(__c2h, __value) \ 235 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 7, __value) 236 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE1(__c2h) \ 237 LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8) 238 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE1(__c2h, __value) \ 239 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value) 240 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE2(__c2h) \ 241 LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 8) 242 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE2(__c2h, __value) \ 243 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 8, __value) 244 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE3(__c2h) \ 245 LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8) 246 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE3(__c2h, __value) \ 247 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value) 248 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE4(__c2h) \ 249 LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 8) 250 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE4(__c2h, __value) \ 251 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 8, __value) 252 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE5(__c2h) \ 253 LE_BITS_TO_4BYTE(__c2h + 0X04, 24, 8) 254 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE5(__c2h, __value) \ 255 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 24, 8, __value) 256 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE6(__c2h) \ 257 LE_BITS_TO_4BYTE(__c2h + 0X08, 0, 8) 258 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE6(__c2h, __value) \ 259 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 0, 8, __value) 260 #define C2H_INITIAL_RATE_COLLECTION_GET_INITIAL_RATE7(__c2h) \ 261 LE_BITS_TO_4BYTE(__c2h + 0X08, 8, 8) 262 #define C2H_INITIAL_RATE_COLLECTION_SET_INITIAL_RATE7(__c2h, __value) \ 263 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 8, 8, __value) 264 #define C2H_INITIAL_RATE_COLLECTION_GET_LEN(__c2h) \ 265 LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8) 266 #define C2H_INITIAL_RATE_COLLECTION_SET_LEN(__c2h, __value) \ 267 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value) 268 #define C2H_INITIAL_RATE_COLLECTION_GET_TRIGGER(__c2h) \ 269 LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8) 270 #define C2H_INITIAL_RATE_COLLECTION_SET_TRIGGER(__c2h, __value) \ 271 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value) 272 #define C2H_RA_RPT_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8) 273 #define C2H_RA_RPT_SET_CMD_ID(__c2h, __value) \ 274 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value) 275 #define C2H_RA_RPT_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8) 276 #define C2H_RA_RPT_SET_SEQ(__c2h, __value) \ 277 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value) 278 #define C2H_RA_RPT_GET_RATE(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 8) 279 #define C2H_RA_RPT_SET_RATE(__c2h, __value) \ 280 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 8, __value) 281 #define C2H_RA_RPT_GET_MACID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8) 282 #define C2H_RA_RPT_SET_MACID(__c2h, __value) \ 283 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value) 284 #define C2H_RA_RPT_GET_USE_LDPC(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 1) 285 #define C2H_RA_RPT_SET_USE_LDPC(__c2h, __value) \ 286 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 1, __value) 287 #define C2H_RA_RPT_GET_USE_TXBF(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X04, 1, 1) 288 #define C2H_RA_RPT_SET_USE_TXBF(__c2h, __value) \ 289 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 1, 1, __value) 290 #define C2H_RA_RPT_GET_COLLISION_STATE(__c2h) \ 291 LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8) 292 #define C2H_RA_RPT_SET_COLLISION_STATE(__c2h, __value) \ 293 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value) 294 #define C2H_RA_RPT_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8) 295 #define C2H_RA_RPT_SET_LEN(__c2h, __value) \ 296 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value) 297 #define C2H_RA_RPT_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8) 298 #define C2H_RA_RPT_SET_TRIGGER(__c2h, __value) \ 299 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value) 300 #define C2H_SPECIAL_STATISTICS_GET_CMD_ID(__c2h) \ 301 LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8) 302 #define C2H_SPECIAL_STATISTICS_SET_CMD_ID(__c2h, __value) \ 303 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value) 304 #define C2H_SPECIAL_STATISTICS_GET_SEQ(__c2h) \ 305 LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8) 306 #define C2H_SPECIAL_STATISTICS_SET_SEQ(__c2h, __value) \ 307 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value) 308 #define C2H_SPECIAL_STATISTICS_GET_STATISTICS_IDX(__c2h) \ 309 LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 8) 310 #define C2H_SPECIAL_STATISTICS_SET_STATISTICS_IDX(__c2h, __value) \ 311 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 8, __value) 312 #define C2H_SPECIAL_STATISTICS_GET_DATA0(__c2h) \ 313 LE_BITS_TO_4BYTE(__c2h + 0X00, 24, 8) 314 #define C2H_SPECIAL_STATISTICS_SET_DATA0(__c2h, __value) \ 315 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 24, 8, __value) 316 #define C2H_SPECIAL_STATISTICS_GET_DATA1(__c2h) \ 317 LE_BITS_TO_4BYTE(__c2h + 0X04, 0, 8) 318 #define C2H_SPECIAL_STATISTICS_SET_DATA1(__c2h, __value) \ 319 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 0, 8, __value) 320 #define C2H_SPECIAL_STATISTICS_GET_DATA2(__c2h) \ 321 LE_BITS_TO_4BYTE(__c2h + 0X04, 8, 8) 322 #define C2H_SPECIAL_STATISTICS_SET_DATA2(__c2h, __value) \ 323 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 8, 8, __value) 324 #define C2H_SPECIAL_STATISTICS_GET_DATA3(__c2h) \ 325 LE_BITS_TO_4BYTE(__c2h + 0X04, 16, 8) 326 #define C2H_SPECIAL_STATISTICS_SET_DATA3(__c2h, __value) \ 327 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 16, 8, __value) 328 #define C2H_SPECIAL_STATISTICS_GET_DATA4(__c2h) \ 329 LE_BITS_TO_4BYTE(__c2h + 0X04, 24, 8) 330 #define C2H_SPECIAL_STATISTICS_SET_DATA4(__c2h, __value) \ 331 SET_BITS_TO_LE_4BYTE(__c2h + 0X04, 24, 8, __value) 332 #define C2H_SPECIAL_STATISTICS_GET_DATA5(__c2h) \ 333 LE_BITS_TO_4BYTE(__c2h + 0X08, 0, 8) 334 #define C2H_SPECIAL_STATISTICS_SET_DATA5(__c2h, __value) \ 335 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 0, 8, __value) 336 #define C2H_SPECIAL_STATISTICS_GET_DATA6(__c2h) \ 337 LE_BITS_TO_4BYTE(__c2h + 0X08, 8, 8) 338 #define C2H_SPECIAL_STATISTICS_SET_DATA6(__c2h, __value) \ 339 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 8, 8, __value) 340 #define C2H_SPECIAL_STATISTICS_GET_DATA7(__c2h) \ 341 LE_BITS_TO_4BYTE(__c2h + 0X08, 16, 8) 342 #define C2H_SPECIAL_STATISTICS_SET_DATA7(__c2h, __value) \ 343 SET_BITS_TO_LE_4BYTE(__c2h + 0X08, 16, 8, __value) 344 #define C2H_SPECIAL_STATISTICS_GET_LEN(__c2h) \ 345 LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8) 346 #define C2H_SPECIAL_STATISTICS_SET_LEN(__c2h, __value) \ 347 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value) 348 #define C2H_SPECIAL_STATISTICS_GET_TRIGGER(__c2h) \ 349 LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8) 350 #define C2H_SPECIAL_STATISTICS_SET_TRIGGER(__c2h, __value) \ 351 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value) 352 #define C2H_RA_PARA_RPT_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8) 353 #define C2H_RA_PARA_RPT_SET_CMD_ID(__c2h, __value) \ 354 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value) 355 #define C2H_RA_PARA_RPT_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8) 356 #define C2H_RA_PARA_RPT_SET_SEQ(__c2h, __value) \ 357 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value) 358 #define C2H_RA_PARA_RPT_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8) 359 #define C2H_RA_PARA_RPT_SET_LEN(__c2h, __value) \ 360 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value) 361 #define C2H_RA_PARA_RPT_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8) 362 #define C2H_RA_PARA_RPT_SET_TRIGGER(__c2h, __value) \ 363 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value) 364 #define C2H_CUR_CHANNEL_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8) 365 #define C2H_CUR_CHANNEL_SET_CMD_ID(__c2h, __value) \ 366 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value) 367 #define C2H_CUR_CHANNEL_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8) 368 #define C2H_CUR_CHANNEL_SET_SEQ(__c2h, __value) \ 369 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value) 370 #define C2H_CUR_CHANNEL_GET_CHANNEL_NUM(__c2h) \ 371 LE_BITS_TO_4BYTE(__c2h + 0X00, 16, 8) 372 #define C2H_CUR_CHANNEL_SET_CHANNEL_NUM(__c2h, __value) \ 373 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 16, 8, __value) 374 #define C2H_CUR_CHANNEL_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8) 375 #define C2H_CUR_CHANNEL_SET_LEN(__c2h, __value) \ 376 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value) 377 #define C2H_CUR_CHANNEL_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8) 378 #define C2H_CUR_CHANNEL_SET_TRIGGER(__c2h, __value) \ 379 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value) 380 #define C2H_GPIO_WAKEUP_GET_CMD_ID(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 0, 8) 381 #define C2H_GPIO_WAKEUP_SET_CMD_ID(__c2h, __value) \ 382 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 0, 8, __value) 383 #define C2H_GPIO_WAKEUP_GET_SEQ(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X00, 8, 8) 384 #define C2H_GPIO_WAKEUP_SET_SEQ(__c2h, __value) \ 385 SET_BITS_TO_LE_4BYTE(__c2h + 0X00, 8, 8, __value) 386 #define C2H_GPIO_WAKEUP_GET_LEN(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 16, 8) 387 #define C2H_GPIO_WAKEUP_SET_LEN(__c2h, __value) \ 388 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 16, 8, __value) 389 #define C2H_GPIO_WAKEUP_GET_TRIGGER(__c2h) LE_BITS_TO_4BYTE(__c2h + 0X0C, 24, 8) 390 #define C2H_GPIO_WAKEUP_SET_TRIGGER(__c2h, __value) \ 391 SET_BITS_TO_LE_4BYTE(__c2h + 0X0C, 24, 8, __value) 392 #endif 393