nic_cmd_event.h 52 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689
  1. /*
  2. * This program is free software; you can redistribute it and/or modify
  3. * it under the terms of the GNU General Public License version 2 as
  4. * published by the Free Software Foundation.
  5. *
  6. * This program is distributed in the hope that it will be useful,
  7. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  8. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  9. * See http://www.gnu.org/licenses/gpl-2.0.html for more details.
  10. */
  11. #ifndef _NIC_CMD_EVENT_H
  12. #define _NIC_CMD_EVENT_H
  13. /*******************************************************************************
  14. * C O M P I L E R F L A G S
  15. ********************************************************************************
  16. */
  17. /*******************************************************************************
  18. * E X T E R N A L R E F E R E N C E S
  19. ********************************************************************************
  20. */
  21. /*******************************************************************************
  22. * C O N S T A N T S
  23. ********************************************************************************
  24. */
  25. #define CMD_STATUS_SUCCESS 0
  26. #define CMD_STATUS_REJECTED 1
  27. #define CMD_STATUS_UNKNOWN 2
  28. #define EVENT_HDR_SIZE OFFSET_OF(WIFI_EVENT_T, aucBuffer[0])
  29. #define MAX_IE_LENGTH (600)
  30. #define MAX_WSC_IE_LENGTH (400)
  31. #define MAX_FW_LOG_LENGTH (896)
  32. /* Action field in structure CMD_CH_PRIVILEGE_T */
  33. #define CMD_CH_ACTION_REQ 0
  34. #define CMD_CH_ACTION_ABORT 1
  35. /* Status field in structure EVENT_CH_PRIVILEGE_T */
  36. #define EVENT_CH_STATUS_GRANT 0
  37. #define SCN_PSCAN_SWC_RSSI_WIN_MAX 75
  38. #define SCN_PSCAN_SWC_MAX_NUM 8
  39. #define SCN_PSCAN_HOTLIST_REPORT_MAX_NUM 8
  40. typedef enum _ENUM_CMD_ID_T {
  41. CMD_ID_TEST_MODE = 1, /* 0x01 (Set) */
  42. CMD_ID_RESET_REQUEST, /* 0x02 (Set) */
  43. CMD_ID_BUILD_CONNECTION, /* 0x03 (Set) */
  44. CMD_ID_SCAN_REQ_V2, /* 0x04 (Set) */
  45. CMD_ID_NIC_POWER_CTRL, /* 0x05 (Set) */
  46. CMD_ID_POWER_SAVE_MODE, /* 0x06 (Set) */
  47. CMD_ID_LINK_ATTRIB, /* 0x07 (Set) */
  48. CMD_ID_ADD_REMOVE_KEY, /* 0x08 (Set) */
  49. CMD_ID_DEFAULT_KEY_ID, /* 0x09 (Set) */
  50. CMD_ID_INFRASTRUCTURE, /* 0x0a (Set) */
  51. CMD_ID_SET_RX_FILTER, /* 0x0b (Set) */
  52. CMD_ID_DOWNLOAD_BUF, /* 0x0c (Set) */
  53. CMD_ID_WIFI_START, /* 0x0d (Set) */
  54. CMD_ID_CMD_BT_OVER_WIFI, /* 0x0e (Set) */
  55. CMD_ID_SET_MEDIA_CHANGE_DELAY_TIME, /* 0x0f (Set) */
  56. CMD_ID_SEND_ADDBA_RSP, /* 0x10 (Set) */
  57. CMD_ID_WAPI_MODE, /* 0x11 (Set) (obsolete) */
  58. CMD_ID_WAPI_ASSOC_INFO, /* 0x12 (Set) (obsolete) */
  59. CMD_ID_SET_DOMAIN_INFO, /* 0x13 (Set) */
  60. CMD_ID_SET_IP_ADDRESS, /* 0x14 (Set) */
  61. CMD_ID_BSS_ACTIVATE_CTRL, /* 0x15 (Set) */
  62. CMD_ID_SET_BSS_INFO, /* 0x16 (Set) */
  63. CMD_ID_UPDATE_STA_RECORD, /* 0x17 (Set) */
  64. CMD_ID_REMOVE_STA_RECORD, /* 0x18 (Set) */
  65. CMD_ID_INDICATE_PM_BSS_CREATED, /* 0x19 (Set) */
  66. CMD_ID_INDICATE_PM_BSS_CONNECTED, /* 0x1a (Set) */
  67. CMD_ID_INDICATE_PM_BSS_ABORT, /* 0x1b (Set) */
  68. CMD_ID_UPDATE_BEACON_CONTENT, /* 0x1c (Set) */
  69. CMD_ID_SET_BSS_RLM_PARAM, /* 0x1d (Set) */
  70. CMD_ID_SCAN_REQ, /* 0x1e (Set) */
  71. CMD_ID_SCAN_CANCEL, /* 0x1f (Set) */
  72. CMD_ID_CH_PRIVILEGE, /* 0x20 (Set) */
  73. CMD_ID_UPDATE_WMM_PARMS, /* 0x21 (Set) */
  74. CMD_ID_SET_WMM_PS_TEST_PARMS, /* 0x22 (Set) */
  75. CMD_ID_TX_AMPDU, /* 0x23 (Set) */
  76. CMD_ID_ADDBA_REJECT, /* 0x24 (Set) */
  77. CMD_ID_SET_PS_PROFILE_ADV, /* 0x25 (Set) */
  78. CMD_ID_SET_RAW_PATTERN, /* 0x26 (Set) */
  79. CMD_ID_CONFIG_PATTERN_FUNC, /* 0x27 (Set) */
  80. CMD_ID_SET_TX_PWR, /* 0x28 (Set) */
  81. CMD_ID_SET_5G_PWR_OFFSET, /* 0x29 (Set) */
  82. CMD_ID_SET_PWR_PARAM, /* 0x2A (Set) */
  83. CMD_ID_P2P_ABORT, /* 0x2B (Set) */
  84. #if CFG_STRESS_TEST_SUPPORT
  85. CMD_ID_RANDOM_RX_RESET_EN = 0x2C, /* 0x2C (Set ) */
  86. CMD_ID_RANDOM_RX_RESET_DE = 0x2D, /* 0x2D (Set ) */
  87. CMD_ID_SAPP_EN = 0x2E, /* 0x2E (Set ) */
  88. CMD_ID_SAPP_DE = 0x2F, /* 0x2F (Set ) */
  89. #endif
  90. CMD_ID_ROAMING_TRANSIT = 0x30, /* 0x30 (Set) */
  91. CMD_ID_SET_PHY_PARAM, /* 0x31 (Set) */
  92. CMD_ID_SET_NOA_PARAM, /* 0x32 (Set) */
  93. CMD_ID_SET_OPPPS_PARAM, /* 0x33 (Set) */
  94. CMD_ID_SET_UAPSD_PARAM, /* 0x34 (Set) */
  95. CMD_ID_SET_SIGMA_STA_SLEEP, /* 0x35 (Set) */
  96. CMD_ID_SET_EDGE_TXPWR_LIMIT, /* 0x36 (Set) */
  97. CMD_ID_SET_DEVICE_MODE, /* 0x37 (Set) */
  98. CMD_ID_SET_TXPWR_CTRL, /* 0x38 (Set) */
  99. CMD_ID_SET_AUTOPWR_CTRL, /* 0x39 (Set) */
  100. CMD_ID_SET_WFD_CTRL, /* 0x3A (Set) */
  101. CMD_ID_SET_5G_EDGE_TXPWR_LIMIT, /* 0x3B (Set) */
  102. CMD_ID_SET_RSSI_COMPENSATE, /* 0x3C (Set) */
  103. CMD_ID_SET_BAND_SUPPORT = 0x3D, /* 0x3D (Set) */
  104. CMD_ID_SET_NLO_REQ, /* 0x3E (Set) */
  105. CMD_ID_SET_NLO_CANCEL, /* 0x3F (Set) */
  106. CMD_ID_SET_BATCH_REQ, /* 0x40 (Set) */
  107. CMD_ID_SET_WOWLAN, /* 0x41 (Set) */ /*CFG_SUPPORT_WOWLAN */
  108. CMD_ID_GET_PSCAN_CAPABILITY = 0x42, /* 0x42 (Set) */
  109. CMD_ID_SET_PSCN_ENABLE = 0x43, /* 0x43 (Set) */
  110. CMD_ID_SET_PSCAN_PARAM = 0x44, /* 0x44 (Set) */
  111. CMD_ID_SET_PSCN_ADD_HOTLIST_BSSID = 0x45, /* 0x45 (Set) */
  112. CMD_ID_SET_PSCN_ADD_SW_BSSID = 0x46, /* 0x46 (Set) */
  113. CMD_ID_SET_PSCN_MAC_ADDR = 0x47, /* 0x47 (Set) */
  114. CMD_ID_GET_GSCN_SCN_RESULT = 0x48, /* 0x48 (Get) */
  115. CMD_ID_SET_COUNTRY_POWER_LIMIT = 0x4A, /* 0x4A (Set) */
  116. CMD_ID_SET_SYSTEM_SUSPEND = 0x60, /* 0x60 (Set) */
  117. #if CFG_SUPPORT_FCC_DYNAMIC_TX_PWR_ADJUST
  118. CMD_ID_SET_FCC_TX_PWR_CERT = 0x6F, /* 0x6F (Set) */
  119. #endif
  120. #ifdef FW_CFG_SUPPORT
  121. CMD_ID_GET_SET_CUSTOMER_CFG = 0x70,
  122. #endif
  123. CMD_ID_GET_NIC_CAPABILITY = 0x80, /* 0x80 (Query) */
  124. CMD_ID_GET_LINK_QUALITY, /* 0x81 (Query) */
  125. CMD_ID_GET_STATISTICS, /* 0x82 (Query) */
  126. CMD_ID_GET_CONNECTION_STATUS, /* 0x83 (Query) */
  127. CMD_ID_GET_ASSOC_INFO, /* 0x84 (Query) (obsolete) */
  128. CMD_ID_GET_STA_STATISTICS = 0x85, /* 0x85 (Query) */
  129. CMD_ID_GET_DEBUG_CODE = 0x86, /* 0x86 (Query) */
  130. CMD_ID_GET_LTE_CHN = 0x87, /* 0x87 (Query) */
  131. CMD_ID_GET_CHN_LOADING = 0x88, /* 0x88 (Query) */
  132. CMD_ID_GET_STATISTICS_PL = 0x89, /* 0x87 (Query) */
  133. CMD_ID_BASIC_CONFIG = 0xc1, /* 0xc1 (Set / Query) */
  134. CMD_ID_ACCESS_REG, /* 0xc2 (Set / Query) */
  135. CMD_ID_MAC_MCAST_ADDR, /* 0xc3 (Set / Query) */
  136. CMD_ID_802_11_PMKID, /* 0xc4 (Set / Query) */
  137. CMD_ID_ACCESS_EEPROM, /* 0xc5 (Set / Query) */
  138. CMD_ID_SW_DBG_CTRL, /* 0xc6 (Set / Query) */
  139. #if 1 /* CFG_SUPPORT_ANTI_PIRACY */
  140. CMD_ID_SEC_CHECK, /* 0xc7 (Set / Query) */
  141. #endif
  142. CMD_ID_DUMP_MEM, /* 0xc8 (Query) */
  143. CMD_ID_CHIP_CONFIG = 0xCA, /* 0xca (Set / Query) */
  144. #if CFG_SUPPORT_RDD_TEST_MODE
  145. CMD_ID_SET_RDD_CH = 0xE1,
  146. #endif
  147. CMD_ID_SET_NVRAM_SETTINGS = 0xEF,
  148. CMD_ID_SET_BWCS = 0xF1,
  149. CMD_ID_SET_ROAMING_INFO = 0xF3,
  150. #if CFG_SUPPORT_BUILD_DATE_CODE
  151. CMD_ID_GET_BUILD_DATE_CODE = 0xF8,
  152. #endif
  153. CMD_ID_GET_BSS_INFO = 0xF9,
  154. #if 1 /* CFG_SUPPORT_HOTSPOT_OPTIMIZATION */
  155. CMD_ID_SET_HOTSPOT_OPTIMIZATION = 0xFA, /* 0xFA (Set) */
  156. #endif
  157. CMD_ID_TDLS_CORE = 0xFC,
  158. CMD_ID_STATS = 0xFD,
  159. CMD_ID_TX_AR_ERR_CONFIG = 0xFF
  160. } ENUM_CMD_ID_T, *P_ENUM_CMD_ID_T;
  161. typedef enum _ENUM_EVENT_ID_T {
  162. EVENT_ID_CMD_RESULT = 1, /* 0x01 (Query) */
  163. EVENT_ID_NIC_CAPABILITY, /* 0x02 (Query) */
  164. EVENT_ID_CONNECTION_STATUS, /* 0x03 (Query / Unsolicited) (obsolete) */
  165. EVENT_ID_SCAN_RESULT, /* 0x04 (Query / Unsolicited) (obselete) */
  166. EVENT_ID_LINK_QUALITY, /* 0x05 (Query / Unsolicited) */
  167. EVENT_ID_STATISTICS, /* 0x06 (Query) */
  168. EVENT_ID_MIC_ERR_INFO, /* 0x07 (Unsolicited) */
  169. EVENT_ID_ASSOC_INFO, /* 0x08 (Query - CMD_ID_GET_ASSOC_INFO) */
  170. EVENT_ID_BASIC_CONFIG, /* 0x09 (Query - CMD_ID_BASIC_CONFIG) */
  171. EVENT_ID_ACCESS_REG, /* 0x0a (Query - CMD_ID_ACCESS_REG) */
  172. EVENT_ID_MAC_MCAST_ADDR, /* 0x0b (Query - CMD_ID_MAC_MCAST_ADDR) */
  173. EVENT_ID_802_11_PMKID, /* 0x0c (Query - CMD_ID_802_11_PMKID) */
  174. EVENT_ID_ACCESS_EEPROM, /* 0x0d (Query - CMD_ID_ACCESS_EEPROM) */
  175. EVENT_ID_SLEEPY_NOTIFY, /* 0x0e (Query) */
  176. EVENT_ID_BT_OVER_WIFI, /* 0x0f (Unsolicited) */
  177. EVENT_ID_TEST_STATUS, /* 0x10 (Query - CMD_ID_TEST_MODE) */
  178. EVENT_ID_RX_ADDBA, /* 0x11 (Unsolicited) (obsolete) */
  179. EVENT_ID_RX_DELBA, /* 0x12 (Unsolicited) (obsolete) */
  180. EVENT_ID_ACTIVATE_STA_REC_T, /* 0x13 (Unsolicited) */
  181. EVENT_ID_DEACTIVATE_STA_REC_T, /* 0x14 (Unsolicited) */
  182. EVENT_ID_SCAN_DONE, /* 0x15 (Unsoiicited) */
  183. EVENT_ID_RX_FLUSH, /* 0x16 (Unsolicited) */
  184. EVENT_ID_TX_DONE, /* 0x17 (Unsolicited) */
  185. EVENT_ID_CH_PRIVILEGE, /* 0x18 (Unsolicited) */
  186. EVENT_ID_BSS_ABSENCE_PRESENCE = 0x19, /* 0x19 (Unsolicited) */
  187. EVENT_ID_STA_CHANGE_PS_MODE, /* 0x1A (Unsolicited) */
  188. EVENT_ID_BSS_BEACON_TIMEOUT, /* 0x1B (Unsolicited) */
  189. EVENT_ID_UPDATE_NOA_PARAMS, /* 0x1C (Unsolicited) */
  190. EVENT_ID_AP_OBSS_STATUS, /* 0x1D (Unsolicited) */
  191. EVENT_ID_STA_UPDATE_FREE_QUOTA, /* 0x1E (Unsolicited) */
  192. EVENT_ID_SW_DBG_CTRL, /* 0x1F (Query - CMD_ID_SW_DBG_CTRL) */
  193. EVENT_ID_ROAMING_STATUS, /* 0x20 (Unsolicited) */
  194. EVENT_ID_STA_AGING_TIMEOUT, /* 0x21 (Unsolicited) */
  195. #if 1 /* CFG_SUPPORT_ANTI_PIRACY */
  196. EVENT_ID_SEC_CHECK_RSP, /* 0x22 (Unsolicited) */
  197. #endif
  198. EVENT_ID_SEND_DEAUTH, /* 0x23 (Unsolicited) */
  199. #if CFG_SUPPORT_RDD_TEST_MODE
  200. EVENT_ID_UPDATE_RDD_STATUS, /* 0x24 (Unsolicited) */
  201. #endif
  202. #if CFG_SUPPORT_BCM && CFG_SUPPORT_BCM_BWCS
  203. EVENT_ID_UPDATE_BWCS_STATUS = 0x25, /* 0x25 (Unsolicited) */
  204. EVENT_ID_UPDATE_BCM_DEBUG, /* 0x26 (Unsolicited) */
  205. #endif
  206. EVENT_ID_RX_ERR,
  207. EVENT_ID_DUMP_MEM,
  208. EVENT_ID_STA_STATISTICS = 0x29, /* 0x29 (Query ) */
  209. EVENT_ID_STA_STATISTICS_UPDATE, /* 0x2A (Unsolicited) */
  210. EVENT_ID_NLO_DONE = 0x2b,
  211. EVENT_ID_GSCAN_CAPABILITY = 0x30,
  212. EVENT_ID_GSCAN_SCAN_COMPLETE = 0x31,
  213. EVENT_ID_GSCAN_FULL_RESULT = 0x32,
  214. EVENT_ID_GSCAN_SIGNIFICANT_CHANGE = 0x33,
  215. EVENT_ID_GSCAN_GEOFENCE_FOUND = 0x34,
  216. EVENT_ID_GSCAN_SCAN_AVAILABLE = 0x35,
  217. EVENT_ID_GSCAN_RESULT = 0x36,
  218. EVENT_ID_BATCH_RESULT = 0x37,
  219. EVENT_ID_CHECK_REORDER_BUBBLE = 0x39,
  220. EVENT_ID_TDLS = 0x80,
  221. EVENT_ID_STATS_ENV = 0x81,
  222. #if CFG_SUPPORT_BUILD_DATE_CODE
  223. EVENT_ID_BUILD_DATE_CODE = 0xF8,
  224. #endif
  225. EVENT_ID_GET_AIS_BSS_INFO = 0xF9,
  226. EVENT_ID_DEBUG_CODE = 0xFB,
  227. EVENT_ID_RFTEST_READY = 0xFC, /* 0xFC */
  228. EVENT_ID_TX_DONE_STATUS = 0xFD,
  229. EVENT_ID_FW_LOG_ENV = 0xFE, /* 0xFE, FW real time debug log */
  230. } ENUM_EVENT_ID_T, *P_ENUM_EVENT_ID_T;
  231. /*******************************************************************************
  232. * D A T A T Y P E S
  233. ********************************************************************************
  234. */
  235. #ifndef LINUX
  236. typedef UINT_8 CMD_STATUS;
  237. #endif
  238. #if CFG_SUPPORT_FCC_DYNAMIC_TX_PWR_ADJUST
  239. /* TX Power Adjust For FCC/CE Certification */
  240. typedef struct _CMD_FCC_TX_PWR_ADJUST_T {
  241. UINT_8 fgFccTxPwrAdjust;
  242. UINT_8 Offset_CCK; /* Offset for CH 11~14 */
  243. UINT_8 Offset_HT20; /* Offset for CH 11~14 */
  244. UINT_8 Offset_HT40; /* Offset for CH 11~14 */
  245. UINT_8 Channel_CCK[2]; /* [0] for start channel, [1] for ending channel */
  246. UINT_8 Channel_HT20[2]; /* [0] for start channel, [1] for ending channel */
  247. UINT_8 Channel_HT40[2]; /* [0] for start channel, [1] for ending channel */
  248. UINT_8 cReserved[2];
  249. } CMD_FCC_TX_PWR_ADJUST, *P_CMD_FCC_TX_PWR_ADJUST;
  250. #endif
  251. typedef struct _EVENT_TX_DONE_STATUS_T {
  252. UINT_8 ucPacketSeq;
  253. UINT_8 ucStatus;
  254. UINT_16 u2SequenceNumber;
  255. UINT_32 au4Reserved1;
  256. UINT_32 au4Reserved2;
  257. UINT_32 au4Reserved3;
  258. UINT_32 u4PktBufInfo;
  259. UINT_8 aucPktBuf[200];
  260. } EVENT_TX_DONE_STATUS_T, *P_EVENT_TX_DONE_STATUS_T;
  261. /* for Event Packet (via HIF-RX) */
  262. /* following CM's documentation v0.7 */
  263. typedef struct _WIFI_CMD_T {
  264. UINT_16 u2TxByteCount_UserPriority;
  265. UINT_8 ucEtherTypeOffset;
  266. UINT_8 ucResource_PktType_CSflags;
  267. UINT_8 ucCID;
  268. UINT_8 ucSetQuery;
  269. UINT_8 ucSeqNum;
  270. UINT_8 aucReserved2;
  271. UINT_8 aucBuffer[0];
  272. } WIFI_CMD_T, *P_WIFI_CMD_T;
  273. /* for Command Packet (via HIF-TX) */
  274. /* following CM's documentation v0.7 */
  275. typedef struct _WIFI_EVENT_T {
  276. UINT_16 u2PacketLen;
  277. UINT_16 u2PacketType;
  278. UINT_8 ucEID;
  279. UINT_8 ucSeqNum;
  280. UINT_8 aucReserved2[2];
  281. UINT_8 aucBuffer[0];
  282. } WIFI_EVENT_T, *P_WIFI_EVENT_T;
  283. /* CMD_ID_TEST_MODE */
  284. typedef struct _CMD_TEST_CTRL_T {
  285. UINT_8 ucAction;
  286. UINT_8 aucReserved[3];
  287. union {
  288. UINT_32 u4OpMode;
  289. UINT_32 u4ChannelFreq;
  290. PARAM_MTK_WIFI_TEST_STRUCT_T rRfATInfo;
  291. } u;
  292. } CMD_TEST_CTRL_T, *P_CMD_TEST_CTRL_T;
  293. /* EVENT_TEST_STATUS */
  294. typedef struct _PARAM_CUSTOM_RFTEST_TX_STATUS_STRUCT_T {
  295. UINT_32 u4PktSentStatus;
  296. UINT_32 u4PktSentCount;
  297. UINT_16 u2AvgAlc;
  298. UINT_8 ucCckGainControl;
  299. UINT_8 ucOfdmGainControl;
  300. } PARAM_CUSTOM_RFTEST_TX_STATUS_STRUCT_T, *P_PARAM_CUSTOM_RFTEST_TX_STATUS_STRUCT_T;
  301. typedef struct _PARAM_CUSTOM_RFTEST_RX_STATUS_STRUCT_T {
  302. UINT_32 u4IntRxOk; /*!< number of packets that Rx ok from interrupt */
  303. UINT_32 u4IntCrcErr; /*!< number of packets that CRC error from interrupt */
  304. UINT_32 u4IntShort; /*!< number of packets that is short preamble from interrupt */
  305. UINT_32 u4IntLong; /*!< number of packets that is long preamble from interrupt */
  306. UINT_32 u4PauRxPktCount; /*!< number of packets that Rx ok from PAU */
  307. UINT_32 u4PauCrcErrCount; /*!< number of packets that CRC error from PAU */
  308. UINT_32 u4PauRxFifoFullCount; /*!< number of packets that is short preamble from PAU */
  309. UINT_32 u4PauCCACount; /*!< CCA rising edge count */
  310. } PARAM_CUSTOM_RFTEST_RX_STATUS_STRUCT_T, *P_PARAM_CUSTOM_RFTEST_RX_STATUS_STRUCT_T;
  311. typedef union _EVENT_TEST_STATUS {
  312. PARAM_MTK_WIFI_TEST_STRUCT_T rATInfo;
  313. /* PARAM_CUSTOM_RFTEST_TX_STATUS_STRUCT_T rTxStatus; */
  314. /* PARAM_CUSTOM_RFTEST_RX_STATUS_STRUCT_T rRxStatus; */
  315. } EVENT_TEST_STATUS, *P_EVENT_TEST_STATUS;
  316. /* CMD_BUILD_CONNECTION */
  317. typedef struct _CMD_BUILD_CONNECTION {
  318. UINT_8 ucInfraMode;
  319. UINT_8 ucAuthMode;
  320. UINT_8 ucEncryptStatus;
  321. UINT_8 ucSsidLen;
  322. UINT_8 aucSsid[PARAM_MAX_LEN_SSID];
  323. UINT_8 aucBssid[PARAM_MAC_ADDR_LEN];
  324. /* Ad-hoc mode */
  325. UINT_16 u2BeaconPeriod;
  326. UINT_16 u2ATIMWindow;
  327. UINT_8 ucJoinOnly;
  328. UINT_8 ucReserved;
  329. UINT_32 u4FreqInKHz;
  330. /* for faster connection */
  331. UINT_8 aucScanResult[0];
  332. } CMD_BUILD_CONNECTION, *P_CMD_BUILD_CONNECTION;
  333. /* CMD_ADD_REMOVE_KEY */
  334. typedef struct _CMD_802_11_KEY {
  335. UINT_8 ucAddRemove;
  336. UINT_8 ucTxKey;
  337. UINT_8 ucKeyType;
  338. UINT_8 ucIsAuthenticator;
  339. UINT_8 aucPeerAddr[6];
  340. UINT_8 ucNetType;
  341. UINT_8 ucAlgorithmId;
  342. UINT_8 ucKeyId;
  343. UINT_8 ucKeyLen;
  344. UINT_8 aucReverved[2];
  345. UINT_8 aucKeyMaterial[32];
  346. UINT_8 aucKeyRsc[16];
  347. } CMD_802_11_KEY, *P_CMD_802_11_KEY;
  348. /* WPA2 PMKID cache structure */
  349. typedef struct _PMKID_ENTRY_T {
  350. PARAM_BSSID_INFO_T rBssidInfo;
  351. BOOLEAN fgPmkidExist;
  352. } PMKID_ENTRY_T, *P_PMKID_ENTRY_T;
  353. typedef struct _CMD_802_11_PMKID {
  354. ULONG u4BSSIDInfoCount;
  355. P_PMKID_ENTRY_T arPMKIDInfo[1];
  356. } CMD_802_11_PMKID, *P_CMD_802_11_PMKID;
  357. /* CMD_BASIC_CONFIG */
  358. typedef struct _CMD_CSUM_OFFLOAD {
  359. UINT_16 u2RxChecksum; /* bit0: IP, bit1: UDP, bit2: TCP */
  360. UINT_16 u2TxChecksum; /* bit0: IP, bit1: UDP, bit2: TCP */
  361. } CMD_CSUM_OFFLOAD, *P_CMD_CSUM_OFFLOAD;
  362. typedef struct _CMD_BASIC_CONFIG {
  363. PARAM_MAC_ADDRESS rMyMacAddr;
  364. UINT_8 ucNative80211;
  365. UINT_8 aucReserved[1];
  366. CMD_CSUM_OFFLOAD rCsumOffload;
  367. } CMD_BASIC_CONFIG, *P_CMD_BASIC_CONFIG, EVENT_BASIC_CONFIG, *P_EVENT_BASIC_CONFIG;
  368. /* CMD_MAC_MCAST_ADDR */
  369. typedef struct _CMD_MAC_MCAST_ADDR {
  370. UINT_32 u4NumOfGroupAddr;
  371. UINT_8 ucNetTypeIndex;
  372. UINT_8 aucReserved[3];
  373. PARAM_MAC_ADDRESS arAddress[MAX_NUM_GROUP_ADDR];
  374. } CMD_MAC_MCAST_ADDR, *P_CMD_MAC_MCAST_ADDR, EVENT_MAC_MCAST_ADDR, *P_EVENT_MAC_MCAST_ADDR;
  375. /* CMD_ACCESS_EEPROM */
  376. typedef struct _CMD_ACCESS_EEPROM {
  377. UINT_16 u2Offset;
  378. UINT_16 u2Data;
  379. } CMD_ACCESS_EEPROM, *P_CMD_ACCESS_EEPROM, EVENT_ACCESS_EEPROM, *P_EVENT_ACCESS_EEPROM;
  380. typedef struct _CMD_CUSTOM_NOA_PARAM_STRUCT_T {
  381. UINT_32 u4NoaDurationMs;
  382. UINT_32 u4NoaIntervalMs;
  383. UINT_32 u4NoaCount;
  384. } CMD_CUSTOM_NOA_PARAM_STRUCT_T, *P_CMD_CUSTOM_NOA_PARAM_STRUCT_T;
  385. typedef struct _CMD_CUSTOM_OPPPS_PARAM_STRUCT_T {
  386. UINT_32 u4CTwindowMs;
  387. } CMD_CUSTOM_OPPPS_PARAM_STRUCT_T, *P_CMD_CUSTOM_OPPPS_PARAM_STRUCT_T;
  388. typedef struct _CMD_CUSTOM_UAPSD_PARAM_STRUCT_T {
  389. UINT_8 fgEnAPSD;
  390. UINT_8 fgEnAPSD_AcBe;
  391. UINT_8 fgEnAPSD_AcBk;
  392. UINT_8 fgEnAPSD_AcVo;
  393. UINT_8 fgEnAPSD_AcVi;
  394. UINT_8 ucMaxSpLen;
  395. UINT_8 aucResv[2];
  396. } CMD_CUSTOM_UAPSD_PARAM_STRUCT_T, *P_CMD_CUSTOM_UAPSD_PARAM_STRUCT_T;
  397. /* EVENT_CONNECTION_STATUS */
  398. typedef struct _EVENT_CONNECTION_STATUS {
  399. UINT_8 ucMediaStatus;
  400. UINT_8 ucReasonOfDisconnect;
  401. UINT_8 ucInfraMode;
  402. UINT_8 ucSsidLen;
  403. UINT_8 aucSsid[PARAM_MAX_LEN_SSID];
  404. UINT_8 aucBssid[PARAM_MAC_ADDR_LEN];
  405. UINT_8 ucAuthenMode;
  406. UINT_8 ucEncryptStatus;
  407. UINT_16 u2BeaconPeriod;
  408. UINT_16 u2AID;
  409. UINT_16 u2ATIMWindow;
  410. UINT_8 ucNetworkType;
  411. UINT_8 aucReserved[1];
  412. UINT_32 u4FreqInKHz;
  413. #if CFG_ENABLE_WIFI_DIRECT
  414. UINT_8 aucInterfaceAddr[PARAM_MAC_ADDR_LEN];
  415. #endif
  416. } EVENT_CONNECTION_STATUS, *P_EVENT_CONNECTION_STATUS;
  417. /* EVENT_NIC_CAPABILITY */
  418. typedef struct _EVENT_NIC_CAPABILITY {
  419. UINT_16 u2ProductID;
  420. UINT_16 u2FwVersion;
  421. UINT_16 u2DriverVersion;
  422. UINT_8 ucHw5GBandDisabled;
  423. UINT_8 ucEepromUsed;
  424. UINT_8 ucEfuseValid;
  425. UINT_8 ucMacAddrValid;
  426. #if CFG_REPORT_RFBB_VERSION
  427. UINT_8 ucRfVersion;
  428. UINT_8 ucPhyVersion;
  429. #endif
  430. #if CFG_ENABLE_CAL_LOG
  431. UINT_8 ucRfCalFail;
  432. UINT_8 ucBbCalFail;
  433. #endif
  434. #define FEATURE_SET_OFFSET_TDLS 0
  435. #define FEATURE_SET_OFFSET_5G_SUPPORT 1
  436. UINT_8 ucFeatureSet; /* bit0: TDLS */
  437. UINT_8 aucReserved[1];
  438. #if CFG_EMBED_FIRMWARE_BUILD_DATE_CODE
  439. UINT_8 aucDateCode[16];
  440. #endif
  441. } EVENT_NIC_CAPABILITY, *P_EVENT_NIC_CAPABILITY;
  442. /* modified version of WLAN_BEACON_FRAME_BODY_T for simplier buffering */
  443. typedef struct _WLAN_BEACON_FRAME_BODY_T_LOCAL {
  444. /* Beacon frame body */
  445. UINT_32 au4Timestamp[2]; /* Timestamp */
  446. UINT_16 u2BeaconInterval; /* Beacon Interval */
  447. UINT_16 u2CapInfo; /* Capability */
  448. UINT_8 aucInfoElem[MAX_IE_LENGTH]; /* Various IEs, start from SSID */
  449. UINT_16 u2IELength; /* This field is *NOT* carried by F/W but caculated by nic_rx */
  450. } WLAN_BEACON_FRAME_BODY_T_LOCAL, *P_WLAN_BEACON_FRAME_BODY_T_LOCAL;
  451. /* EVENT_SCAN_RESULT */
  452. typedef struct _EVENT_SCAN_RESULT_T {
  453. INT_32 i4RSSI;
  454. UINT_32 u4LinkQuality;
  455. UINT_32 u4DSConfig; /* Center frequency */
  456. UINT_32 u4DomainInfo; /* Require CM opinion */
  457. UINT_32 u4Reserved;
  458. UINT_8 ucNetworkType;
  459. UINT_8 ucOpMode;
  460. UINT_8 aucBssid[MAC_ADDR_LEN];
  461. UINT_8 aucRatesEx[PARAM_MAX_LEN_RATES_EX];
  462. WLAN_BEACON_FRAME_BODY_T_LOCAL rBeaconFrameBody;
  463. } EVENT_SCAN_RESULT_T, *P_EVENT_SCAN_RESULT_T;
  464. /* event of tkip mic error */
  465. typedef struct _EVENT_MIC_ERR_INFO {
  466. UINT_32 u4Flags;
  467. } EVENT_MIC_ERR_INFO, *P_EVENT_MIC_ERR_INFO;
  468. typedef struct _EVENT_PMKID_CANDIDATE_LIST_T {
  469. UINT_32 u4Version; /*!< Version */
  470. UINT_32 u4NumCandidates; /*!< How many candidates follow */
  471. PARAM_PMKID_CANDIDATE_T arCandidateList[1];
  472. } EVENT_PMKID_CANDIDATE_LIST_T, *P_EVENT_PMKID_CANDIDATE_LIST_T;
  473. typedef struct _EVENT_CMD_RESULT {
  474. UINT_8 ucCmdID;
  475. UINT_8 ucStatus;
  476. UINT_8 aucReserved[2];
  477. } EVENT_CMD_RESULT, *P_EVENT_CMD_RESULT;
  478. /* CMD_ID_ACCESS_REG & EVENT_ID_ACCESS_REG */
  479. typedef struct _CMD_ACCESS_REG {
  480. UINT_32 u4Address;
  481. UINT_32 u4Data;
  482. } CMD_ACCESS_REG, *P_CMD_ACCESS_REG;
  483. /* CMD_ID_ACCESS_REG & EVENT_ID_ACCESS_REG */
  484. #if CFG_AUTO_CHANNEL_SEL_SUPPORT
  485. typedef struct _CMD_ACCESS_CHN_LOAD {
  486. UINT_32 u4Address;
  487. UINT_32 u4Data;
  488. UINT_16 u2Channel;
  489. UINT_8 aucReserved[2];
  490. } CMD_ACCESS_CHN_LOAD, *P_ACCESS_CHN_LOAD;
  491. #endif
  492. /* CMD_DUMP_MEMORY */
  493. typedef struct _CMD_DUMP_MEM {
  494. UINT_32 u4Address;
  495. UINT_32 u4Length;
  496. UINT_32 u4RemainLength;
  497. UINT_8 ucFragNum;
  498. } CMD_DUMP_MEM, *P_CMD_DUMP_MEM;
  499. typedef struct _EVENT_DUMP_MEM_T {
  500. UINT_32 u4Address;
  501. UINT_32 u4Length;
  502. UINT_32 u4RemainLength;
  503. UINT_8 ucFragNum;
  504. UINT_8 aucBuffer[1];
  505. } EVENT_DUMP_MEM_T, *P_EVENT_DUMP_MEM_T;
  506. typedef struct _CMD_SW_DBG_CTRL_T {
  507. UINT_32 u4Id;
  508. UINT_32 u4Data;
  509. /* Debug Support */
  510. UINT_32 u4DebugCnt[64];
  511. } CMD_SW_DBG_CTRL_T, *P_CMD_SW_DBG_CTRL_T;
  512. /* CMD_ID_LINK_ATTRIB */
  513. typedef struct _CMD_LINK_ATTRIB {
  514. INT_8 cRssiTrigger;
  515. UINT_8 ucDesiredRateLen;
  516. UINT_16 u2DesiredRate[32];
  517. UINT_8 ucMediaStreamMode;
  518. UINT_8 aucReserved[1];
  519. } CMD_LINK_ATTRIB, *P_CMD_LINK_ATTRIB;
  520. /* CMD_ID_NIC_POWER_CTRL */
  521. typedef struct _CMD_NIC_POWER_CTRL {
  522. UINT_8 ucPowerMode;
  523. UINT_8 aucReserved[3];
  524. } CMD_NIC_POWER_CTRL, *P_CMD_NIC_POWER_CTRL;
  525. /* CMD_ID_POWER_SAVE_MODE */
  526. typedef struct _CMD_PS_PROFILE_T {
  527. UINT_8 ucNetTypeIndex;
  528. UINT_8 ucPsProfile;
  529. UINT_8 aucReserved[2];
  530. } CMD_PS_PROFILE_T, *P_CMD_PS_PROFILE_T;
  531. /* EVENT_LINK_QUALITY */
  532. typedef struct _EVENT_LINK_QUALITY {
  533. INT_8 cRssi;
  534. INT_8 cLinkQuality;
  535. UINT_16 u2LinkSpeed;
  536. UINT_8 ucMediumBusyPercentage;
  537. } EVENT_LINK_QUALITY, *P_EVENT_LINK_QUALITY;
  538. #if CFG_SUPPORT_P2P_RSSI_QUERY
  539. /* EVENT_LINK_QUALITY */
  540. typedef struct _EVENT_LINK_QUALITY_EX {
  541. INT_8 cRssi;
  542. INT_8 cLinkQuality;
  543. UINT_16 u2LinkSpeed;
  544. UINT_8 ucMediumBusyPercentage;
  545. UINT_8 ucIsLQ0Rdy;
  546. INT_8 cRssiP2P; /* For P2P Network. */
  547. INT_8 cLinkQualityP2P;
  548. UINT_16 u2LinkSpeedP2P;
  549. UINT_8 ucMediumBusyPercentageP2P;
  550. UINT_8 ucIsLQ1Rdy;
  551. } EVENT_LINK_QUALITY_EX, *P_EVENT_LINK_QUALITY_EX;
  552. #endif
  553. /* EVENT_ID_STATISTICS */
  554. typedef struct _EVENT_STATISTICS {
  555. LARGE_INTEGER rTransmittedFragmentCount;
  556. LARGE_INTEGER rMulticastTransmittedFrameCount;
  557. LARGE_INTEGER rFailedCount;
  558. LARGE_INTEGER rRetryCount;
  559. LARGE_INTEGER rMultipleRetryCount;
  560. LARGE_INTEGER rRTSSuccessCount;
  561. LARGE_INTEGER rRTSFailureCount;
  562. LARGE_INTEGER rACKFailureCount;
  563. LARGE_INTEGER rFrameDuplicateCount;
  564. LARGE_INTEGER rReceivedFragmentCount;
  565. LARGE_INTEGER rMulticastReceivedFrameCount;
  566. LARGE_INTEGER rFCSErrorCount;
  567. } EVENT_STATISTICS, *P_EVENT_STATISTICS;
  568. /* EVENT_ID_FW_SLEEPY_NOTIFY */
  569. typedef struct _EVENT_SLEEPY_NOTIFY {
  570. UINT_8 ucSleepyState;
  571. UINT_8 aucReserved[3];
  572. } EVENT_SLEEPY_NOTIFY, *P_EVENT_SLEEPY_NOTIFY;
  573. typedef struct _EVENT_ACTIVATE_STA_REC_T {
  574. UINT_8 aucMacAddr[6];
  575. UINT_8 ucStaRecIdx;
  576. UINT_8 ucNetworkTypeIndex;
  577. BOOLEAN fgIsQoS;
  578. BOOLEAN fgIsAP;
  579. UINT_8 aucReserved[2];
  580. } EVENT_ACTIVATE_STA_REC_T, *P_EVENT_ACTIVATE_STA_REC_T;
  581. typedef struct _EVENT_DEACTIVATE_STA_REC_T {
  582. UINT_8 ucStaRecIdx;
  583. UINT_8 aucReserved[3];
  584. } EVENT_DEACTIVATE_STA_REC_T, *P_EVENT_DEACTIVATE_STA_REC_T;
  585. /* CMD_BT_OVER_WIFI */
  586. typedef struct _CMD_BT_OVER_WIFI {
  587. UINT_8 ucAction; /* 0: query, 1: setup, 2: destroy */
  588. UINT_8 ucChannelNum;
  589. PARAM_MAC_ADDRESS rPeerAddr;
  590. UINT_16 u2BeaconInterval;
  591. UINT_8 ucTimeoutDiscovery;
  592. UINT_8 ucTimeoutInactivity;
  593. UINT_8 ucRole;
  594. UINT_8 PAL_Capabilities;
  595. UINT_8 cMaxTxPower;
  596. UINT_8 ucChannelBand;
  597. UINT_8 ucReserved[1];
  598. } CMD_BT_OVER_WIFI, *P_CMD_BT_OVER_WIFI;
  599. /* EVENT_BT_OVER_WIFI */
  600. typedef struct _EVENT_BT_OVER_WIFI {
  601. UINT_8 ucLinkStatus;
  602. UINT_8 ucSelectedChannel;
  603. INT_8 cRSSI;
  604. UINT_8 ucReserved[1];
  605. } EVENT_BT_OVER_WIFI, *P_EVENT_BT_OVER_WIFI;
  606. /* Same with DOMAIN_SUBBAND_INFO */
  607. typedef struct _CMD_SUBBAND_INFO {
  608. UINT_8 ucRegClass;
  609. UINT_8 ucBand;
  610. UINT_8 ucChannelSpan;
  611. UINT_8 ucFirstChannelNum;
  612. UINT_8 ucNumChannels;
  613. UINT_8 aucReserved[3];
  614. } CMD_SUBBAND_INFO, *P_CMD_SUBBAND_INFO;
  615. /* CMD_SET_DOMAIN_INFO */
  616. typedef struct _CMD_SET_DOMAIN_INFO_T {
  617. UINT_16 u2CountryCode;
  618. UINT_16 u2IsSetPassiveScan; /* 0: set channel domain; 1: set passive scan channel domain */
  619. CMD_SUBBAND_INFO rSubBand[6];
  620. UINT_8 uc2G4Bandwidth; /* CONFIG_BW_20_40M or CONFIG_BW_20M */
  621. UINT_8 uc5GBandwidth; /* CONFIG_BW_20_40M or CONFIG_BW_20M */
  622. UINT_8 aucReserved[2];
  623. } CMD_SET_DOMAIN_INFO_T, *P_CMD_SET_DOMAIN_INFO_T;
  624. #if CFG_SUPPORT_PWR_LIMIT_COUNTRY
  625. /* CMD_SET_PWR_LIMIT_TABLE */
  626. typedef struct _CMD_CHANNEL_POWER_LIMIT {
  627. UINT_8 ucCentralCh;
  628. INT_8 cPwrLimitCCK;
  629. INT_8 cPwrLimit20;
  630. INT_8 cPwrLimit40;
  631. INT_8 cPwrLimit80;
  632. INT_8 cPwrLimit160;
  633. UINT_8 ucFlag;
  634. UINT_8 aucReserved[1];
  635. } CMD_CHANNEL_POWER_LIMIT, *P_CMD_CHANNEL_POWER_LIMIT;
  636. typedef struct _CMD_SET_COUNTRY_CHANNEL_POWER_LIMIT_T {
  637. UINT_16 u2CountryCode;
  638. UINT_8 ucCountryFlag;
  639. UINT_8 ucNum;
  640. UINT_8 aucReserved[4];
  641. CMD_CHANNEL_POWER_LIMIT rChannelPowerLimit[1];
  642. } CMD_SET_COUNTRY_CHANNEL_POWER_LIMIT_T, *P_CMD_SET_COUNTRY_CHANNEL_POWER_LIMIT_T;
  643. #endif
  644. /* CMD_SET_IP_ADDRESS */
  645. typedef struct _IPV4_NETWORK_ADDRESS {
  646. UINT_8 aucIpAddr[4];
  647. } IPV4_NETWORK_ADDRESS, *P_IPV4_NETWORK_ADDRESS;
  648. typedef struct _CMD_SET_NETWORK_ADDRESS_LIST {
  649. UINT_8 ucNetTypeIndex;
  650. UINT_8 ucAddressCount;
  651. UINT_8 ucReserved[2];
  652. IPV4_NETWORK_ADDRESS arNetAddress[1];
  653. } CMD_SET_NETWORK_ADDRESS_LIST, *P_CMD_SET_NETWORK_ADDRESS_LIST;
  654. typedef struct _PATTERN_DESCRIPTION {
  655. UINT_8 fgCheckBcA1;
  656. UINT_8 fgCheckMcA1;
  657. UINT_8 ePatternHeader;
  658. UINT_8 fgAndOp;
  659. UINT_8 fgNotOp;
  660. UINT_8 ucPatternMask;
  661. UINT_16 ucPatternOffset;
  662. UINT_8 aucPattern[8];
  663. } PATTERN_DESCRIPTION, *P_PATTERN_DESCRIPTION;
  664. typedef struct _CMD_RAW_PATTERN_CONFIGURATION_T {
  665. PATTERN_DESCRIPTION arPatternDesc[4];
  666. } CMD_RAW_PATTERN_CONFIGURATION_T, *P_CMD_RAW_PATTERN_CONFIGURATION_T;
  667. typedef struct _CMD_PATTERN_FUNC_CONFIG {
  668. BOOLEAN fgBcA1En;
  669. BOOLEAN fgMcA1En;
  670. BOOLEAN fgBcA1MatchDrop;
  671. BOOLEAN fgMcA1MatchDrop;
  672. } CMD_PATTERN_FUNC_CONFIG, *P_CMD_PATTERN_FUNC_CONFIG;
  673. typedef struct _EVENT_TX_DONE_T {
  674. UINT_8 ucPacketSeq;
  675. UINT_8 ucStatus;
  676. UINT_16 u2SequenceNumber;
  677. UINT_32 au4Reserved1;
  678. UINT_32 au4Reserved2;
  679. UINT_32 au4Reserved3;
  680. } EVENT_TX_DONE_T, *P_EVENT_TX_DONE_T;
  681. typedef struct _CMD_BSS_ACTIVATE_CTRL {
  682. UINT_8 ucNetTypeIndex;
  683. UINT_8 ucActive;
  684. UINT_8 aucReserved[2];
  685. } CMD_BSS_ACTIVATE_CTRL, *P_CMD_BSS_ACTIVATE_CTRL;
  686. typedef struct _CMD_SET_BSS_RLM_PARAM_T {
  687. UINT_8 ucNetTypeIndex;
  688. UINT_8 ucRfBand;
  689. UINT_8 ucPrimaryChannel;
  690. UINT_8 ucRfSco;
  691. UINT_8 ucErpProtectMode;
  692. UINT_8 ucHtProtectMode;
  693. UINT_8 ucGfOperationMode;
  694. UINT_8 ucTxRifsMode;
  695. UINT_16 u2HtOpInfo3;
  696. UINT_16 u2HtOpInfo2;
  697. UINT_8 ucHtOpInfo1;
  698. UINT_8 ucUseShortPreamble;
  699. UINT_8 ucUseShortSlotTime;
  700. UINT_8 ucCheckId; /* Fixed value: 0x72 */
  701. } CMD_SET_BSS_RLM_PARAM_T, *P_CMD_SET_BSS_RLM_PARAM_T;
  702. typedef struct _CMD_SET_BSS_INFO {
  703. UINT_8 ucNetTypeIndex;
  704. UINT_8 ucConnectionState;
  705. UINT_8 ucCurrentOPMode;
  706. UINT_8 ucSSIDLen;
  707. UINT_8 aucSSID[32];
  708. UINT_8 aucBSSID[6];
  709. UINT_8 ucIsQBSS;
  710. UINT_8 ucReserved1;
  711. UINT_16 u2OperationalRateSet;
  712. UINT_16 u2BSSBasicRateSet;
  713. UINT_8 ucStaRecIdxOfAP;
  714. UINT_8 ucReserved2;
  715. UINT_8 ucReserved3;
  716. UINT_8 ucNonHTBasicPhyType; /* For Slot Time and CWmin */
  717. UINT_8 ucAuthMode;
  718. UINT_8 ucEncStatus;
  719. UINT_8 ucPhyTypeSet;
  720. UINT_8 aucOwnMac[6];
  721. UINT_8 fgWapiMode;
  722. UINT_8 fgIsApMode;
  723. UINT_8 fgHiddenSsidMode;
  724. CMD_SET_BSS_RLM_PARAM_T rBssRlmParam;
  725. } CMD_SET_BSS_INFO, *P_CMD_SET_BSS_INFO;
  726. typedef struct _CMD_UPDATE_STA_RECORD_T {
  727. UINT_8 ucIndex;
  728. UINT_8 ucStaType;
  729. UINT_8 aucMacAddr[MAC_ADDR_LEN];
  730. UINT_16 u2AssocId;
  731. UINT_16 u2ListenInterval;
  732. UINT_8 ucNetTypeIndex;
  733. UINT_8 ucDesiredPhyTypeSet;
  734. UINT_16 u2DesiredNonHTRateSet;
  735. UINT_16 u2BSSBasicRateSet;
  736. UINT_8 ucIsQoS;
  737. UINT_8 ucIsUapsdSupported;
  738. UINT_8 ucStaState;
  739. UINT_8 ucMcsSet;
  740. UINT_8 ucSupMcs32;
  741. UINT_8 ucAmpduParam;
  742. UINT_16 u2HtCapInfo;
  743. UINT_16 u2HtExtendedCap;
  744. UINT_32 u4TxBeamformingCap;
  745. UINT_8 ucAselCap;
  746. UINT_8 ucRCPI;
  747. UINT_8 ucNeedResp;
  748. UINT_8 ucUapsdAc; /* b0~3: Trigger enabled, b4~7: Delivery enabled */
  749. UINT_8 ucUapsdSp; /* 0: all, 1: max 2, 2: max 4, 3: max 6 */
  750. UINT_8 aucReserved[3];
  751. /* TBD */
  752. } CMD_UPDATE_STA_RECORD_T, *P_CMD_UPDATE_STA_RECORD_T;
  753. typedef struct _CMD_REMOVE_STA_RECORD_T {
  754. UINT_8 ucIndex;
  755. UINT_8 ucReserved;
  756. UINT_8 aucMacAddr[MAC_ADDR_LEN];
  757. } CMD_REMOVE_STA_RECORD_T, *P_CMD_REMOVE_STA_RECORD_T;
  758. typedef struct _CMD_INDICATE_PM_BSS_CREATED_T {
  759. UINT_8 ucNetTypeIndex;
  760. UINT_8 ucDtimPeriod;
  761. UINT_16 u2BeaconInterval;
  762. UINT_16 u2AtimWindow;
  763. UINT_8 aucReserved[2];
  764. } CMD_INDICATE_PM_BSS_CREATED, *P_CMD_INDICATE_PM_BSS_CREATED;
  765. typedef struct _CMD_INDICATE_PM_BSS_CONNECTED_T {
  766. UINT_8 ucNetTypeIndex;
  767. UINT_8 ucDtimPeriod;
  768. UINT_16 u2AssocId;
  769. UINT_16 u2BeaconInterval;
  770. UINT_16 u2AtimWindow;
  771. UINT_8 fgIsUapsdConnection;
  772. UINT_8 ucBmpDeliveryAC;
  773. UINT_8 ucBmpTriggerAC;
  774. UINT_8 aucReserved[1];
  775. } CMD_INDICATE_PM_BSS_CONNECTED, *P_CMD_INDICATE_PM_BSS_CONNECTED;
  776. typedef struct _CMD_INDICATE_PM_BSS_ABORT {
  777. UINT_8 ucNetTypeIndex;
  778. UINT_8 aucReserved[3];
  779. } CMD_INDICATE_PM_BSS_ABORT, *P_CMD_INDICATE_PM_BSS_ABORT;
  780. typedef struct _CMD_BEACON_TEMPLATE_UPDATE {
  781. UINT_8 ucUpdateMethod; /* 0: update randomly,
  782. * 1: update all,
  783. * 2: delete all (1 and 2 will update directly without search)
  784. */
  785. UINT_8 ucNetTypeIndex;
  786. UINT_8 aucReserved[2];
  787. UINT_16 u2Capability;
  788. UINT_16 u2IELen;
  789. UINT_8 aucIE[MAX_IE_LENGTH];
  790. } CMD_BEACON_TEMPLATE_UPDATE, *P_CMD_BEACON_TEMPLATE_UPDATE;
  791. typedef struct _CMD_SET_WMM_PS_TEST_STRUCT_T {
  792. UINT_8 ucNetTypeIndex;
  793. UINT_8 bmfgApsdEnAc; /* b0~3: trigger-en AC0~3. b4~7: delivery-en AC0~3 */
  794. UINT_8 ucIsEnterPsAtOnce; /* enter PS immediately without 5 second guard after connected */
  795. UINT_8 ucIsDisableUcTrigger; /* not to trigger UC on beacon TIM is matched (under U-APSD) */
  796. } CMD_SET_WMM_PS_TEST_STRUCT_T, *P_CMD_SET_WMM_PS_TEST_STRUCT_T;
  797. /* Definition for CHANNEL_INFO.ucBand:
  798. * 0: Reserved
  799. * 1: BAND_2G4
  800. * 2: BAND_5G
  801. * Others: Reserved
  802. */
  803. typedef struct _CHANNEL_INFO_T {
  804. UINT_8 ucBand;
  805. UINT_8 ucChannelNum;
  806. } CHANNEL_INFO_T, *P_CHANNEL_INFO_T;
  807. typedef struct _CMD_SCAN_REQ_EXT_CH_T {
  808. UINT_8 ucSeqNum;
  809. UINT_8 ucNetworkType;
  810. UINT_8 ucScanType;
  811. UINT_8 ucSSIDType; /* BIT(0) wildcard / BIT(1) P2P-wildcard / BIT(2) specific */
  812. UINT_8 ucSSIDLength;
  813. UINT_8 aucReserved[1];
  814. UINT_16 u2ChannelMinDwellTime;
  815. UINT_8 aucSSID[32];
  816. UINT_16 u2ChannelDwellTime; /* For P2P */
  817. UINT_8 ucChannelType;
  818. UINT_8 ucChannelListNum;
  819. CHANNEL_INFO_T arChannelList[MAXIMUM_OPERATION_CHANNEL_LIST];
  820. UINT_16 u2IELen;
  821. UINT_8 aucIE[MAX_IE_LENGTH];
  822. } CMD_SCAN_REQ_EXT_CH, *P_CMD_SCAN_REQ_EXT_CH;
  823. typedef struct _CMD_SCAN_REQ_T {
  824. UINT_8 ucSeqNum;
  825. UINT_8 ucNetworkType;
  826. UINT_8 ucScanType;
  827. UINT_8 ucSSIDType; /* BIT(0) wildcard / BIT(1) P2P-wildcard / BIT(2) specific */
  828. UINT_8 ucSSIDLength;
  829. UINT_8 aucReserved[1];
  830. UINT_16 u2ChannelMinDwellTime;
  831. UINT_8 aucSSID[32];
  832. UINT_16 u2ChannelDwellTime; /* For P2P */
  833. UINT_8 ucChannelType;
  834. UINT_8 ucChannelListNum;
  835. CHANNEL_INFO_T arChannelList[32];
  836. UINT_16 u2IELen;
  837. UINT_8 aucIE[MAX_IE_LENGTH];
  838. } CMD_SCAN_REQ, *P_CMD_SCAN_REQ;
  839. typedef struct _CMD_SCAN_REQ_V2_EXT_CH_T {
  840. UINT_8 ucSeqNum;
  841. UINT_8 ucNetworkType;
  842. UINT_8 ucScanType;
  843. UINT_8 ucSSIDType;
  844. PARAM_SSID_T arSSID[4];
  845. UINT_16 u2ProbeDelayTime;
  846. UINT_16 u2ChannelDwellTime; /* For P2P */
  847. UINT_8 ucChannelType;
  848. UINT_8 ucChannelListNum;
  849. CHANNEL_INFO_T arChannelList[MAXIMUM_OPERATION_CHANNEL_LIST];
  850. UINT_16 u2IELen;
  851. UINT_8 aucIE[MAX_IE_LENGTH];
  852. } CMD_SCAN_REQ_V2_EXT_CH, *P_CMD_SCAN_REQ_V2_EXT_CH;
  853. typedef struct _CMD_SCAN_REQ_V2_T {
  854. UINT_8 ucSeqNum;
  855. UINT_8 ucNetworkType;
  856. UINT_8 ucScanType;
  857. UINT_8 ucSSIDType;
  858. PARAM_SSID_T arSSID[4];
  859. UINT_16 u2ProbeDelayTime;
  860. UINT_16 u2ChannelDwellTime; /* For P2P */
  861. UINT_8 ucChannelType;
  862. UINT_8 ucChannelListNum;
  863. CHANNEL_INFO_T arChannelList[32];
  864. UINT_16 u2IELen;
  865. UINT_8 aucIE[MAX_IE_LENGTH];
  866. } CMD_SCAN_REQ_V2, *P_CMD_SCAN_REQ_V2;
  867. typedef struct _CMD_SCAN_CANCEL_T {
  868. UINT_8 ucSeqNum;
  869. UINT_8 ucIsExtChannel; /* For P2P channel extension. */
  870. UINT_8 aucReserved[2];
  871. } CMD_SCAN_CANCEL, *P_CMD_SCAN_CANCEL;
  872. typedef struct _EVENT_SCAN_DONE_T {
  873. UINT_8 ucSeqNum;
  874. UINT_8 ucSparseChannelValid;
  875. CHANNEL_INFO_T rSparseChannel;
  876. } EVENT_SCAN_DONE, *P_EVENT_SCAN_DONE;
  877. #if CFG_SUPPORT_GET_CH_ENV
  878. typedef struct _CH_ENV_T {
  879. UINT_8 ucChNum;
  880. UINT_8 ucApNum;
  881. } CH_ENV_T, *P_CH_ENV_T;
  882. #endif
  883. #if 0 /* CFG_SUPPORT_BATCH_SCAN */
  884. typedef struct _CMD_BATCH_REQ_T {
  885. UINT_8 ucSeqNum;
  886. UINT_8 ucNetTypeIndex;
  887. UINT_8 ucCmd; /* Start/ Stop */
  888. UINT_8 ucMScan; /* an integer number of scans per batch */
  889. UINT_8 ucBestn; /* an integer number of the max AP to remember per scan */
  890. UINT_8 ucRtt; /* an integer number of highest-strength AP for which we'd
  891. like approximate distance reported */
  892. UINT_8 ucChannel; /* channels */
  893. UINT_8 ucChannelType;
  894. UINT_8 ucChannelListNum;
  895. UINT_8 aucReserved[3];
  896. UINT_32 u4Scanfreq; /* an integer number of seconds between scans */
  897. CHANNEL_INFO_T arChannelList[32]; /* channels */
  898. } CMD_BATCH_REQ_T, *P_CMD_BATCH_REQ_T;
  899. typedef struct _EVENT_BATCH_RESULT_ENTRY_T {
  900. UINT_8 aucBssid[MAC_ADDR_LEN];
  901. UINT_8 aucSSID[ELEM_MAX_LEN_SSID];
  902. UINT_8 ucSSIDLen;
  903. INT_8 cRssi;
  904. UINT_32 ucFreq;
  905. UINT_32 u4Age;
  906. UINT_32 u4Dist;
  907. UINT_32 u4Distsd;
  908. } EVENT_BATCH_RESULT_ENTRY_T, *P_EVENT_BATCH_RESULT_ENTRY_T;
  909. typedef struct _EVENT_BATCH_RESULT_T {
  910. UINT_8 ucScanCount;
  911. UINT_8 aucReserved[3];
  912. EVENT_BATCH_RESULT_ENTRY_T arBatchResult[12]; /* Must be the same with SCN_BATCH_STORE_MAX_NUM */
  913. } EVENT_BATCH_RESULT_T, *P_EVENT_BATCH_RESULT_T;
  914. #endif
  915. typedef struct _CMD_CH_PRIVILEGE_T {
  916. UINT_8 ucNetTypeIndex;
  917. UINT_8 ucTokenID;
  918. UINT_8 ucAction;
  919. UINT_8 ucPrimaryChannel;
  920. UINT_8 ucRfSco;
  921. UINT_8 ucRfBand;
  922. UINT_8 ucReqType;
  923. UINT_8 ucReserved;
  924. UINT_32 u4MaxInterval; /* In unit of ms */
  925. UINT_8 aucBSSID[6];
  926. UINT_8 aucReserved[2];
  927. } CMD_CH_PRIVILEGE_T, *P_CMD_CH_PRIVILEGE_T;
  928. typedef struct _CMD_TX_PWR_T {
  929. INT_8 cTxPwr2G4Cck; /* signed, in unit of 0.5dBm */
  930. #if defined(MT6620)
  931. INT_8 acReserved[3];
  932. #elif defined(MT6628)
  933. INT_8 cTxPwr2G4Dsss; /* signed, in unit of 0.5dBm */
  934. INT_8 acReserved[2];
  935. #else
  936. #error "No valid definition!"
  937. #endif
  938. INT_8 cTxPwr2G4OFDM_BPSK;
  939. INT_8 cTxPwr2G4OFDM_QPSK;
  940. INT_8 cTxPwr2G4OFDM_16QAM;
  941. INT_8 cTxPwr2G4OFDM_Reserved;
  942. INT_8 cTxPwr2G4OFDM_48Mbps;
  943. INT_8 cTxPwr2G4OFDM_54Mbps;
  944. INT_8 cTxPwr2G4HT20_BPSK;
  945. INT_8 cTxPwr2G4HT20_QPSK;
  946. INT_8 cTxPwr2G4HT20_16QAM;
  947. INT_8 cTxPwr2G4HT20_MCS5;
  948. INT_8 cTxPwr2G4HT20_MCS6;
  949. INT_8 cTxPwr2G4HT20_MCS7;
  950. INT_8 cTxPwr2G4HT40_BPSK;
  951. INT_8 cTxPwr2G4HT40_QPSK;
  952. INT_8 cTxPwr2G4HT40_16QAM;
  953. INT_8 cTxPwr2G4HT40_MCS5;
  954. INT_8 cTxPwr2G4HT40_MCS6;
  955. INT_8 cTxPwr2G4HT40_MCS7;
  956. INT_8 cTxPwr5GOFDM_BPSK;
  957. INT_8 cTxPwr5GOFDM_QPSK;
  958. INT_8 cTxPwr5GOFDM_16QAM;
  959. INT_8 cTxPwr5GOFDM_Reserved;
  960. INT_8 cTxPwr5GOFDM_48Mbps;
  961. INT_8 cTxPwr5GOFDM_54Mbps;
  962. INT_8 cTxPwr5GHT20_BPSK;
  963. INT_8 cTxPwr5GHT20_QPSK;
  964. INT_8 cTxPwr5GHT20_16QAM;
  965. INT_8 cTxPwr5GHT20_MCS5;
  966. INT_8 cTxPwr5GHT20_MCS6;
  967. INT_8 cTxPwr5GHT20_MCS7;
  968. INT_8 cTxPwr5GHT40_BPSK;
  969. INT_8 cTxPwr5GHT40_QPSK;
  970. INT_8 cTxPwr5GHT40_16QAM;
  971. INT_8 cTxPwr5GHT40_MCS5;
  972. INT_8 cTxPwr5GHT40_MCS6;
  973. INT_8 cTxPwr5GHT40_MCS7;
  974. } CMD_TX_PWR_T, *P_CMD_TX_PWR_T;
  975. typedef struct _CMD_5G_PWR_OFFSET_T {
  976. INT_8 cOffsetBand0; /* 4.915-4.980G */
  977. INT_8 cOffsetBand1; /* 5.000-5.080G */
  978. INT_8 cOffsetBand2; /* 5.160-5.180G */
  979. INT_8 cOffsetBand3; /* 5.200-5.280G */
  980. INT_8 cOffsetBand4; /* 5.300-5.340G */
  981. INT_8 cOffsetBand5; /* 5.500-5.580G */
  982. INT_8 cOffsetBand6; /* 5.600-5.680G */
  983. INT_8 cOffsetBand7; /* 5.700-5.825G */
  984. } CMD_5G_PWR_OFFSET_T, *P_CMD_5G_PWR_OFFSET_T;
  985. typedef struct _CMD_PWR_PARAM_T {
  986. UINT_32 au4Data[28];
  987. UINT_32 u4RefValue1;
  988. UINT_32 u4RefValue2;
  989. } CMD_PWR_PARAM_T, *P_CMD_PWR_PARAM_T;
  990. typedef struct _CMD_PHY_PARAM_T {
  991. UINT_8 aucData[144]; /* eFuse content */
  992. } CMD_PHY_PARAM_T, *P_CMD_PHY_PARAM_T;
  993. typedef struct _CMD_AUTO_POWER_PARAM_T {
  994. UINT_8 ucType; /* 0: Disable 1: Enalbe 0x10: Change parameters */
  995. UINT_8 ucNetTypeIndex;
  996. UINT_8 aucReserved[2];
  997. UINT_8 aucLevelRcpiTh[3];
  998. UINT_8 aucReserved2[1];
  999. INT_8 aicLevelPowerOffset[3]; /* signed, in unit of 0.5dBm */
  1000. UINT_8 aucReserved3[1];
  1001. UINT_8 aucReserved4[8];
  1002. } CMD_AUTO_POWER_PARAM_T, *P_CMD_AUTO_POWER_PARAM_T;
  1003. typedef struct _EVENT_CH_PRIVILEGE_T {
  1004. UINT_8 ucNetTypeIndex;
  1005. UINT_8 ucTokenID;
  1006. UINT_8 ucStatus;
  1007. UINT_8 ucPrimaryChannel;
  1008. UINT_8 ucRfSco;
  1009. UINT_8 ucRfBand;
  1010. UINT_8 ucReqType;
  1011. UINT_8 ucReserved;
  1012. UINT_32 u4GrantInterval; /* In unit of ms */
  1013. } EVENT_CH_PRIVILEGE_T, *P_EVENT_CH_PRIVILEGE_T;
  1014. typedef enum _ENUM_BEACON_TIMEOUT_TYPE_T {
  1015. BEACON_TIMEOUT_LOST_BEACON = 0,
  1016. BEACON_TIMEOUT_AGE,
  1017. BEACON_TIMEOUT_CONNECT,
  1018. BEACON_TIMEOUT_BEACON_INTERVAL,
  1019. BEACON_TIMEOUT_ABORT,
  1020. BEACON_TIMEOUT_TX_ERROR,
  1021. BEACON_TIMEOUT_TYPE_NUM
  1022. } ENUM_BEACON_TIMEOUT_TYPE_T, *P_ENUM_BEACON_TIMEOUT_TYPE_T;
  1023. typedef struct _EVENT_BSS_BEACON_TIMEOUT_T {
  1024. UINT_8 ucNetTypeIndex;
  1025. UINT_8 ucReason; /* ENUM_BEACON_TIMEOUT_TYPE_T */
  1026. UINT_8 aucReserved[2];
  1027. } EVENT_BSS_BEACON_TIMEOUT_T, *P_EVENT_BSS_BEACON_TIMEOUT_T;
  1028. typedef struct _EVENT_STA_AGING_TIMEOUT_T {
  1029. UINT_8 ucStaRecIdx;
  1030. UINT_8 aucReserved[3];
  1031. } EVENT_STA_AGING_TIMEOUT_T, *P_EVENT_STA_AGING_TIMEOUT_T;
  1032. typedef struct _EVENT_NOA_TIMING_T {
  1033. UINT_8 fgIsInUse; /* Indicate if this entry is in use or not */
  1034. UINT_8 ucCount; /* Count */
  1035. UINT_8 aucReserved[2];
  1036. UINT_32 u4Duration; /* Duration */
  1037. UINT_32 u4Interval; /* Interval */
  1038. UINT_32 u4StartTime; /* Start Time */
  1039. } EVENT_NOA_TIMING_T, *P_EVENT_NOA_TIMING_T;
  1040. typedef struct _EVENT_UPDATE_NOA_PARAMS_T {
  1041. UINT_8 ucNetTypeIndex;
  1042. UINT_8 aucReserved[2];
  1043. UINT_8 fgEnableOppPS;
  1044. UINT_16 u2CTWindow;
  1045. UINT_8 ucNoAIndex;
  1046. UINT_8 ucNoATimingCount; /* Number of NoA Timing */
  1047. EVENT_NOA_TIMING_T arEventNoaTiming[8 /*P2P_MAXIMUM_NOA_COUNT */];
  1048. } EVENT_UPDATE_NOA_PARAMS_T, *P_EVENT_UPDATE_NOA_PARAMS_T;
  1049. typedef struct _EVENT_AP_OBSS_STATUS_T {
  1050. UINT_8 ucNetTypeIndex;
  1051. UINT_8 ucObssErpProtectMode;
  1052. UINT_8 ucObssHtProtectMode;
  1053. UINT_8 ucObssGfOperationMode;
  1054. UINT_8 ucObssRifsOperationMode;
  1055. UINT_8 ucObssBeaconForcedTo20M;
  1056. UINT_8 aucReserved[2];
  1057. } EVENT_AP_OBSS_STATUS_T, *P_EVENT_AP_OBSS_STATUS_T;
  1058. typedef struct _CMD_EDGE_TXPWR_LIMIT_T {
  1059. INT_8 cBandEdgeMaxPwrCCK;
  1060. INT_8 cBandEdgeMaxPwrOFDM20;
  1061. INT_8 cBandEdgeMaxPwrOFDM40;
  1062. INT_8 cBandEdgeCert;
  1063. } CMD_EDGE_TXPWR_LIMIT_T, *P_CMD_EDGE_TXPWR_LIMIT_T;
  1064. typedef struct _CMD_RSSI_COMPENSATE_T {
  1065. UINT_8 uc2GRssiCompensation;
  1066. UINT_8 uc5GRssiCompensation;
  1067. UINT_8 ucRssiCompensationValidbit;
  1068. UINT_8 cReserved;
  1069. } CMD_RSSI_COMPENSATE_T, *P_CMD_RSSI_COMPENSATE_T;
  1070. typedef struct _CMD_BAND_SUPPORT_T {
  1071. UINT_8 uc5GBandSupport;
  1072. UINT_8 cReserved[3];
  1073. } CMD_BAND_SUPPORT_T, *P_CMD_BAND_SUPPORT_T;
  1074. typedef struct _CMD_TX_PWR_CE_T {
  1075. INT_8 cTxPwrCckLmt; /* signed, in unit of 0.5dBm */
  1076. INT_8 cTxPwrOfdmLmt; /* signed, in unit of 0.5dBm */
  1077. INT_8 cTxPwrHt20Lmt;
  1078. INT_8 cTxPwrHt40Lmt;
  1079. } CMD_TX_PWR_CE_T, *P_CMD_TX_PWR_CE_T;
  1080. typedef struct _CMD_SET_DEVICE_MODE_T {
  1081. UINT_16 u2ChipID;
  1082. UINT_16 u2Mode;
  1083. } CMD_SET_DEVICE_MODE_T, *P_CMD_SET_DEVICE_MODE_T;
  1084. #if CFG_SUPPORT_RDD_TEST_MODE
  1085. typedef struct _CMD_RDD_CH_T {
  1086. UINT_8 ucRddTestMode;
  1087. UINT_8 ucRddShutCh;
  1088. UINT_8 ucRddStartCh;
  1089. UINT_8 ucRddStopCh;
  1090. UINT_8 ucRddDfs;
  1091. UINT_8 ucReserved;
  1092. UINT_8 ucReserved1;
  1093. UINT_8 ucReserved2;
  1094. } CMD_RDD_CH_T, *P_CMD_RDD_CH_T;
  1095. typedef struct _EVENT_RDD_STATUS_T {
  1096. UINT_8 ucRddStatus;
  1097. UINT_8 aucReserved[3];
  1098. } EVENT_RDD_STATUS_T, *P_EVENT_RDD_STATUS_T;
  1099. #endif
  1100. typedef struct _EVENT_AIS_BSS_INFO_T {
  1101. ENUM_PARAM_MEDIA_STATE_T eConnectionState; /* Connected Flag used in AIS_NORMAL_TR */
  1102. ENUM_OP_MODE_T eCurrentOPMode; /* Current Operation Mode - Infra/IBSS */
  1103. BOOLEAN fgIsNetActive; /* TRUE if this network has been actived */
  1104. UINT_8 ucReserved[3];
  1105. } EVENT_AIS_BSS_INFO_T, *P_EVENT_AIS_BSS_INFO_T;
  1106. typedef struct _CMD_SET_TXPWR_CTRL_T {
  1107. INT_8 c2GLegacyStaPwrOffset; /* Unit: 0.5dBm, default: 0 */
  1108. INT_8 c2GHotspotPwrOffset;
  1109. INT_8 c2GP2pPwrOffset;
  1110. INT_8 c2GBowPwrOffset;
  1111. INT_8 c5GLegacyStaPwrOffset; /* Unit: 0.5dBm, default: 0 */
  1112. INT_8 c5GHotspotPwrOffset;
  1113. INT_8 c5GP2pPwrOffset;
  1114. INT_8 c5GBowPwrOffset;
  1115. UINT_8 ucConcurrencePolicy; /* TX power policy when concurrence
  1116. in the same channel
  1117. 0: Highest power has priority
  1118. 1: Lowest power has priority */
  1119. INT_8 acReserved1[3]; /* Must be zero */
  1120. /* Power limit by channel for all data rates */
  1121. INT_8 acTxPwrLimit2G[14]; /* Channel 1~14, Unit: 0.5dBm */
  1122. INT_8 acTxPwrLimit5G[4]; /* UNII 1~4 */
  1123. INT_8 acReserved2[2]; /* Must be zero */
  1124. } CMD_SET_TXPWR_CTRL_T, *P_CMD_SET_TXPWR_CTRL_T;
  1125. #if CFG_SUPPORT_BUILD_DATE_CODE
  1126. typedef struct _CMD_GET_BUILD_DATE_CODE {
  1127. UINT_8 aucReserved[4];
  1128. } CMD_GET_BUILD_DATE_CODE, *P_CMD_GET_BUILD_DATE_CODE;
  1129. typedef struct _EVENT_BUILD_DATE_CODE {
  1130. UINT_8 aucDateCode[16];
  1131. } EVENT_BUILD_DATE_CODE, *P_EVENT_BUILD_DATE_CODE;
  1132. #endif
  1133. typedef struct _CMD_GET_STA_STATISTICS_T {
  1134. UINT_8 ucIndex;
  1135. UINT_8 ucFlags;
  1136. UINT_8 ucReadClear;
  1137. UINT_8 aucReserved0[1];
  1138. UINT_8 aucMacAddr[MAC_ADDR_LEN];
  1139. UINT_8 aucReserved1[2];
  1140. UINT_8 aucReserved2[16];
  1141. } CMD_GET_STA_STATISTICS_T, *P_CMD_GET_STA_STATISTICS_T;
  1142. /* CFG_SUPPORT_WFD */
  1143. typedef struct _EVENT_STA_STATISTICS_T {
  1144. /* Event header */
  1145. /* UINT_16 u2Length; */
  1146. /* UINT_16 u2Reserved1; *//* Must be filled with 0x0001 (EVENT Packet) */
  1147. /* UINT_8 ucEID; */
  1148. /* UINT_8 ucSeqNum; */
  1149. /* UINT_8 aucReserved2[2]; */
  1150. /* Event Body */
  1151. UINT_8 ucVersion;
  1152. UINT_8 aucReserved1[3];
  1153. UINT_32 u4Flags; /* Bit0: valid */
  1154. UINT_8 ucStaRecIdx;
  1155. UINT_8 ucNetworkTypeIndex;
  1156. UINT_8 ucWTEntry;
  1157. UINT_8 aucReserved4[1];
  1158. UINT_8 ucMacAddr[MAC_ADDR_LEN];
  1159. UINT_8 ucPer; /* base: 128 */
  1160. UINT_8 ucRcpi;
  1161. UINT_32 u4PhyMode; /* SGI BW */
  1162. UINT_16 u2LinkSpeed; /* unit is 0.5 Mbits */
  1163. UINT_8 ucLinkQuality;
  1164. UINT_8 ucLinkReserved;
  1165. UINT_32 u4TxCount;
  1166. UINT_32 u4TxFailCount;
  1167. UINT_32 u4TxLifeTimeoutCount;
  1168. UINT_32 u4TxDoneAirTime;
  1169. UINT_8 aucReserved[64];
  1170. } EVENT_STA_STATISTICS_T, *P_EVENT_STA_STATISTICS_T;
  1171. #if CFG_SUPPORT_HOTSPOT_OPTIMIZATION
  1172. typedef struct _CMD_HOTSPOT_OPTIMIZATION_CONFIG {
  1173. UINT_32 fgHotspotOptimizationEn;
  1174. UINT_32 u4Level;
  1175. } CMD_HOTSPOT_OPTIMIZATION_CONFIG, *P_HOTSPOT_OPTIMIZATION_CONFIG;
  1176. #endif
  1177. #if CFG_AUTO_CHANNEL_SEL_SUPPORT
  1178. /* 4 Auto Channel Selection */
  1179. typedef struct _CMD_GET_CHN_LOAD_T {
  1180. UINT_8 ucIndex;
  1181. UINT_8 ucFlags;
  1182. UINT_8 ucReadClear;
  1183. UINT_8 aucReserved0[1];
  1184. UINT_8 ucChannel;
  1185. UINT_16 u2ChannelLoad;
  1186. UINT_8 aucReserved1[1];
  1187. UINT_8 aucReserved2[16];
  1188. } CMD_GET_CHN_LOAD_T, *P_CMD_GET_CHN_LOAD_T;
  1189. /* 4 Auto Channel Selection */
  1190. typedef struct _EVENT_CHN_LOAD_T {
  1191. /* Event Body */
  1192. UINT_8 ucVersion;
  1193. UINT_8 aucReserved1[3];
  1194. UINT_32 u4Flags; /* Bit0: valid */
  1195. UINT_8 ucChannel;
  1196. UINT_16 u2ChannelLoad;
  1197. UINT_8 aucReserved4[1];
  1198. UINT_8 aucReserved[64];
  1199. } EVENT_CHN_LOAD_T, *P_EVENT_CHN_LOAD_T;
  1200. typedef struct _CMD_GET_LTE_SAFE_CHN_T {
  1201. UINT_8 ucIndex;
  1202. UINT_8 ucFlags;
  1203. UINT_8 aucReserved0[2];
  1204. UINT_8 aucReserved2[16];
  1205. } CMD_GET_LTE_SAFE_CHN_T, *P_CMD_GET_LTE_SAFE_CHN_T;
  1206. typedef struct _EVENT_LTE_MODE_T {
  1207. /* Event Body */
  1208. UINT_8 ucVersion;
  1209. UINT_8 aucReserved1[3];
  1210. UINT_32 u4Flags; /* Bit0: valid */
  1211. LTE_SAFE_CH_INFO_T rLteSafeChn;
  1212. UINT_8 aucReserved4[3];
  1213. UINT_8 aucReserved[4];
  1214. } EVENT_LTE_MODE_T, *P_EVENT_LTE_MODE_T;
  1215. #endif
  1216. typedef struct _CMD_ROAMING_INFO_T {
  1217. UINT_32 fgIsFastRoamingApplied;
  1218. UINT_32 Reserved[9];
  1219. } CMD_ROAMING_INFO_T;
  1220. typedef struct _CMD_WFD_DEBUG_MODE_INFO_T {
  1221. UINT_8 ucDebugMode;
  1222. UINT_16 u2PeriodInteval;
  1223. UINT_8 Reserved;
  1224. } CMD_WFD_DEBUG_MODE_INFO_T, *P_CMD_WFD_DEBUG_MODE_INFO_T;
  1225. typedef struct _EVENT_FW_LOG_T {
  1226. UINT_8 fileName[64];
  1227. UINT_32 lineNo;
  1228. UINT_32 WifiUpTime;
  1229. UINT_8 log[MAX_FW_LOG_LENGTH]; /* total size is aucBuffer in WIFI_EVENT_T */
  1230. } EVENT_FW_LOG_T, *P_EVENT_FW_LOG_T;
  1231. typedef enum _ENUM_NLO_CIPHER_ALGORITHM {
  1232. NLO_CIPHER_ALGO_NONE = 0x00,
  1233. NLO_CIPHER_ALGO_WEP40 = 0x01,
  1234. NLO_CIPHER_ALGO_TKIP = 0x02,
  1235. NLO_CIPHER_ALGO_CCMP = 0x04,
  1236. NLO_CIPHER_ALGO_WEP104 = 0x05,
  1237. NLO_CIPHER_ALGO_WPA_USE_GROUP = 0x100,
  1238. NLO_CIPHER_ALGO_RSN_USE_GROUP = 0x100,
  1239. NLO_CIPHER_ALGO_WEP = 0x101,
  1240. } ENUM_NLO_CIPHER_ALGORITHM, *P_ENUM_NLO_CIPHER_ALGORITHM;
  1241. typedef enum _ENUM_NLO_AUTH_ALGORITHM {
  1242. NLO_AUTH_ALGO_80211_OPEN = 1,
  1243. NLO_AUTH_ALGO_80211_SHARED_KEY = 2,
  1244. NLO_AUTH_ALGO_WPA = 3,
  1245. NLO_AUTH_ALGO_WPA_PSK = 4,
  1246. NLO_AUTH_ALGO_WPA_NONE = 5,
  1247. NLO_AUTH_ALGO_RSNA = 6,
  1248. NLO_AUTH_ALGO_RSNA_PSK = 7,
  1249. } ENUM_NLO_AUTH_ALGORITHM, *P_ENUM_NLO_AUTH_ALGORITHM;
  1250. typedef struct _NLO_NETWORK {
  1251. UINT_8 ucNumChannelHint[4];
  1252. UINT_8 ucSSIDLength;
  1253. UINT_8 ucCipherAlgo;
  1254. UINT_16 u2AuthAlgo;
  1255. UINT_8 aucSSID[32];
  1256. } NLO_NETWORK, *P_NLO_NETWORK;
  1257. typedef struct _CMD_NLO_REQ {
  1258. UINT_8 ucSeqNum;
  1259. UINT_8 ucBssIndex;
  1260. UINT_8 ucNetworkType;
  1261. UINT_8 fgStopAfterIndication;
  1262. UINT_8 ucFastScanIteration;
  1263. UINT_16 u2FastScanPeriod;
  1264. UINT_16 u2SlowScanPeriod;
  1265. UINT_8 ucEntryNum;
  1266. UINT_8 ucReserved;
  1267. UINT_16 u2IELen;
  1268. NLO_NETWORK arNetworkList[16];
  1269. UINT_8 aucIE[0];
  1270. UINT_8 ucScanType;
  1271. } CMD_NLO_REQ, *P_CMD_NLO_REQ;
  1272. typedef struct _CMD_NLO_CANCEL_T {
  1273. UINT_8 ucSeqNum;
  1274. UINT_8 aucReserved[3];
  1275. } CMD_NLO_CANCEL, *P_CMD_NLO_CANCEL;
  1276. typedef struct _EVENT_NLO_DONE_T {
  1277. UINT_8 ucSeqNum;
  1278. UINT_8 ucStatus;
  1279. UINT_8 aucReserved[2];
  1280. } EVENT_NLO_DONE_T, *P_EVENT_NLO_DONE_T;
  1281. typedef struct _EVENT_GSCAN_CAPABILITY_T {
  1282. UINT_8 ucVersion;
  1283. UINT_8 aucReserved1[3];
  1284. UINT_32 u4MaxScanCacheSize;
  1285. UINT_32 u4MaxScanBuckets;
  1286. UINT_32 u4MaxApCachePerScan;
  1287. UINT_32 u4MaxRssiSampleSize;
  1288. UINT_32 u4MaxScanReportingThreshold;
  1289. UINT_32 u4MaxHotlistAps;
  1290. UINT_32 u4MaxSignificantWifiChangeAps;
  1291. UINT_32 au4Reserved[4];
  1292. } EVENT_GSCAN_CAPABILITY_T, *P_EVENT_GSCAN_CAPABILITY_T;
  1293. typedef struct _EVENT_GSCAN_SCAN_AVAILABLE_T {
  1294. UINT_16 u2Num;
  1295. UINT_8 aucReserved[2];
  1296. } EVENT_GSCAN_SCAN_AVAILABLE_T, *P_EVENT_GSCAN_SCAN_AVAILABLE_T;
  1297. typedef struct _EVENT_GSCAN_SCAN_COMPLETE_T {
  1298. UINT_8 ucScanState;
  1299. UINT_8 aucReserved[3];
  1300. } EVENT_GSCAN_SCAN_COMPLETE_T, *P_EVENT_GSCAN_SCAN_COMPLETE_T;
  1301. typedef struct WIFI_GSCAN_RESULT {
  1302. UINT_64 u8Ts; /* Time of discovery */
  1303. UINT_8 arSsid[ELEM_MAX_LEN_SSID + 1]; /* null terminated */
  1304. UINT_8 arMacAddr[6]; /* BSSID */
  1305. UINT_32 u4Channel; /* channel frequency in MHz */
  1306. INT_32 i4Rssi; /* in db */
  1307. UINT_64 u8Rtt; /* in nanoseconds */
  1308. UINT_64 u8RttSd; /* standard deviation in rtt */
  1309. UINT_16 u2BeaconPeriod; /* units are Kusec */
  1310. UINT_16 u2Capability; /* Capability information */
  1311. UINT_32 u4IeLength; /* byte length of Information Elements */
  1312. UINT_8 ucIeData[1]; /* IE data to follow */
  1313. } WIFI_GSCAN_RESULT_T, *P_WIFI_GSCAN_RESULT_T;
  1314. typedef struct _EVENT_GSCAN_RESULT_T {
  1315. UINT_8 ucVersion;
  1316. UINT_8 aucReserved[3];
  1317. UINT_16 u2ScanId;
  1318. UINT_16 u2ScanFlags;
  1319. UINT_16 u2NumOfResults;
  1320. WIFI_GSCAN_RESULT_T rResult[1];
  1321. } EVENT_GSCAN_RESULT_T, *P_EVENT_GSCAN_RESULT_T;
  1322. typedef struct _EVENT_GSCAN_FULL_RESULT_T {
  1323. UINT_8 ucVersion;
  1324. UINT_8 aucReserved[3];
  1325. WIFI_GSCAN_RESULT_T rResult;
  1326. } EVENT_GSCAN_FULL_RESULT_T, *P_EVENT_GSCAN_FULL_RESULT_T;
  1327. typedef struct GSCAN_SWC_NET {
  1328. UINT_16 u2Flags;
  1329. UINT_16 u2Channel;
  1330. UINT_8 arBssid[6];
  1331. INT_8 aicRssi[SCN_PSCAN_SWC_RSSI_WIN_MAX];
  1332. } GSCAN_SWC_NET_T, P_GSCAN_SWC_NET_T;
  1333. typedef struct _EVENT_GSCAN_SIGNIFICANT_CHANGE_T {
  1334. UINT_8 ucVersion;
  1335. UINT_8 aucReserved[3];
  1336. GSCAN_SWC_NET_T arNet[SCN_PSCAN_SWC_MAX_NUM];
  1337. } EVENT_GSCAN_SIGNIFICANT_CHANGE_T, *P_EVENT_GSCAN_SIGNIFICANT_CHANGE_T;
  1338. typedef struct _EVENT_GSCAN_GEOFENCE_FOUND_T {
  1339. UINT_8 ucVersion;
  1340. UINT_8 aucReserved[3];
  1341. WIFI_GSCAN_RESULT_T rResult[SCN_PSCAN_HOTLIST_REPORT_MAX_NUM];
  1342. } EVENT_GSCAN_GEOFENCE_FOUND_T, *P_EVENT_GSCAN_GEOFENCE_FOUND_T;
  1343. #if CFG_SUPPORT_BATCH_SCAN
  1344. #if 0 /* !CFG_SUPPORT_GSCN */
  1345. typedef struct _CMD_BATCH_REQ_T {
  1346. UINT_8 ucSeqNum;
  1347. UINT_8 ucNetTypeIndex;
  1348. UINT_8 ucCmd; /* Start/ Stop */
  1349. UINT_8 ucMScan; /* an integer number of scans per batch */
  1350. UINT_8 ucBestn; /* an integer number of the max AP to remember per scan */
  1351. UINT_8 ucRtt; /* an integer number of highest-strength AP for which
  1352. we'd like approximate distance reported */
  1353. UINT_8 ucChannel; /* channels */
  1354. UINT_8 ucChannelType;
  1355. UINT_8 ucChannelListNum;
  1356. UINT_8 aucReserved[3];
  1357. UINT_32 u4Scanfreq; /* an integer number of seconds between scans */
  1358. CHANNEL_INFO_T arChannelList[32]; /* channels */
  1359. } CMD_BATCH_REQ_T, *P_CMD_BATCH_REQ_T;
  1360. #endif
  1361. typedef struct _EVENT_BATCH_RESULT_ENTRY_T {
  1362. UINT_8 aucBssid[MAC_ADDR_LEN];
  1363. UINT_8 aucSSID[ELEM_MAX_LEN_SSID];
  1364. UINT_8 ucSSIDLen;
  1365. INT_8 cRssi;
  1366. UINT_32 ucFreq;
  1367. UINT_32 u4Age;
  1368. UINT_32 u4Dist;
  1369. UINT_32 u4Distsd;
  1370. } EVENT_BATCH_RESULT_ENTRY_T, *P_EVENT_BATCH_RESULT_ENTRY_T;
  1371. typedef struct _EVENT_BATCH_RESULT_T {
  1372. UINT_8 ucScanCount;
  1373. UINT_8 aucReserved[3];
  1374. EVENT_BATCH_RESULT_ENTRY_T arBatchResult[12]; /* Must be the same with SCN_BATCH_STORE_MAX_NUM */
  1375. } EVENT_BATCH_RESULT_T, *P_EVENT_BATCH_RESULT_T;
  1376. #endif
  1377. typedef struct _CMD_RLM_INFO_T {
  1378. UINT_32 u4Version;
  1379. UINT_32 fgIsErrRatioEnhanceApplied;
  1380. UINT_8 ucErrRatio2LimitMinRate;
  1381. /*
  1382. 0:1M, 1:2M, 2:5.5M, 3:11M, 6:6M, 7:9M, 8:12M, 9:18M, 10:24M, 11:36M, 12:48M, 13:54M
  1383. */
  1384. UINT_8 ucMinLegacyRateIdx;
  1385. INT_8 cMinRssiThreshold;
  1386. BOOLEAN fgIsRtsApplied;
  1387. UINT_8 ucRecoverTime;
  1388. UINT_32 u4Reserved[0];
  1389. } CMD_RLM_INFO_T;
  1390. typedef struct _WIFI_SYSTEM_SUSPEND_CMD_T {
  1391. BOOLEAN fgIsSystemSuspend;
  1392. UINT_8 reserved[3];
  1393. } WIFI_SYSTEM_SUSPEND_CMD_T, *P_WIFI_SYSTEM_SUSPEND_CMD_T;
  1394. /*******************************************************************************
  1395. * P U B L I C D A T A
  1396. ********************************************************************************
  1397. */
  1398. /*******************************************************************************
  1399. * P R I V A T E D A T A
  1400. ********************************************************************************
  1401. */
  1402. /*******************************************************************************
  1403. * M A C R O S
  1404. ********************************************************************************
  1405. */
  1406. /*******************************************************************************
  1407. * F U N C T I O N D E C L A R A T I O N S
  1408. ********************************************************************************
  1409. */
  1410. VOID nicCmdEventQueryMcrRead(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1411. VOID nicCmdEventQueryMemDump(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1412. VOID nicCmdEventQuerySwCtrlRead(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1413. VOID nicCmdEventQueryRfTestATInfo(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1414. VOID nicCmdEventSetCommon(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1415. VOID nicCmdEventSetDisassociate(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1416. VOID nicCmdEventSetIpAddress(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1417. VOID nicCmdEventQueryLinkQuality(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1418. VOID nicCmdEventQueryLinkSpeed(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1419. VOID nicCmdEventQueryStatistics(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1420. VOID nicCmdEventEnterRfTest(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1421. VOID nicCmdEventLeaveRfTest(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1422. VOID nicCmdEventQueryAddress(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1423. VOID nicCmdEventQueryMcastAddr(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1424. VOID nicCmdEventQueryEepromRead(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1425. VOID nicCmdEventSetMediaStreamMode(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1426. /* Statistics responder */
  1427. VOID nicCmdEventQueryXmitOk(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1428. VOID nicCmdEventQueryRecvOk(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1429. VOID nicCmdEventQueryXmitError(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1430. VOID nicCmdEventQueryRecvError(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1431. VOID nicCmdEventQueryRecvNoBuffer(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1432. VOID nicCmdEventQueryRecvCrcError(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1433. VOID nicCmdEventQueryRecvErrorAlignment(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1434. VOID nicCmdEventQueryXmitOneCollision(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1435. VOID nicCmdEventQueryXmitMoreCollisions(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1436. VOID nicCmdEventQueryXmitMaxCollisions(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1437. /* for timeout check */
  1438. VOID nicOidCmdTimeoutCommon(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo);
  1439. VOID nicCmdTimeoutCommon(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo);
  1440. VOID nicOidCmdEnterRFTestTimeout(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo);
  1441. #if CFG_SUPPORT_BUILD_DATE_CODE
  1442. VOID nicCmdEventBuildDateCode(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1443. #endif
  1444. VOID nicCmdEventQueryStaStatistics(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1445. #if CFG_AUTO_CHANNEL_SEL_SUPPORT
  1446. /* 4 Auto Channel Selection */
  1447. VOID nicCmdEventQueryChannelLoad(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1448. VOID nicCmdEventQueryLTESafeChn(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1449. #endif
  1450. #if CFG_SUPPORT_BATCH_SCAN
  1451. VOID nicCmdEventBatchScanResult(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1452. #endif
  1453. VOID nicCmdEventGetBSSInfo(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1454. #ifdef FW_CFG_SUPPORT
  1455. VOID nicCmdEventQueryCfgRead(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1456. #endif
  1457. /*******************************************************************************
  1458. * F U N C T I O N S
  1459. ********************************************************************************
  1460. */
  1461. #endif /* _NIC_CMD_EVENT_H */