halmac_original_c2h_nic.h 27 KB

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