nic_cmd_event.h 55 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772
  1. /*
  2. ** Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/nic_cmd_event.h#1
  3. */
  4. /*! \file "nic_cmd_event.h"
  5. \brief This file contains the declairation file of the WLAN OID processing routines
  6. of Windows driver for MediaTek Inc. 802.11 Wireless LAN Adapters.
  7. */
  8. #ifndef _NIC_CMD_EVENT_H
  9. #define _NIC_CMD_EVENT_H
  10. /*******************************************************************************
  11. * C O M P I L E R F L A G S
  12. ********************************************************************************
  13. */
  14. /*******************************************************************************
  15. * E X T E R N A L R E F E R E N C E S
  16. ********************************************************************************
  17. */
  18. #include "gl_vendor.h"
  19. /*******************************************************************************
  20. * C O N S T A N T S
  21. ********************************************************************************
  22. */
  23. #define CMD_PQ_ID (0x8000)
  24. #define CMD_PACKET_TYPE_ID (0xA0)
  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. /* Action field in structure CMD_CH_PRIVILEGE_T */
  32. #define CMD_CH_ACTION_REQ 0
  33. #define CMD_CH_ACTION_ABORT 1
  34. /* Status field in structure EVENT_CH_PRIVILEGE_T */
  35. #define EVENT_CH_STATUS_GRANT 0
  36. /*CMD_POWER_OFFSET_T , follow 5G sub-band*/
  37. /* #define MAX_SUBBAND_NUM 8 */
  38. /* */
  39. /* */
  40. /* */
  41. /* */
  42. #define SCN_PSCAN_SWC_RSSI_WIN_MAX 75
  43. #define SCN_PSCAN_SWC_MAX_NUM 8
  44. #define SCN_PSCAN_HOTLIST_REPORT_MAX_NUM 8
  45. typedef enum _ENUM_CMD_ID_T {
  46. CMD_ID_TEST_CTRL = 0x01, /* 0x01 (Set) */
  47. CMD_ID_BASIC_CONFIG, /* 0x02 (Set) */
  48. CMD_ID_SCAN_REQ_V2, /* 0x03 (Set) */
  49. CMD_ID_NIC_POWER_CTRL, /* 0x04 (Set) */
  50. CMD_ID_POWER_SAVE_MODE, /* 0x05 (Set) */
  51. CMD_ID_LINK_ATTRIB, /* 0x06 (Set) */
  52. CMD_ID_ADD_REMOVE_KEY, /* 0x07 (Set) */
  53. CMD_ID_DEFAULT_KEY_ID, /* 0x08 (Set) */
  54. CMD_ID_INFRASTRUCTURE, /* 0x09 (Set) */
  55. CMD_ID_SET_RX_FILTER, /* 0x0a (Set) */
  56. CMD_ID_DOWNLOAD_BUF, /* 0x0b (Set) */
  57. CMD_ID_WIFI_START, /* 0x0c (Set) */
  58. CMD_ID_CMD_BT_OVER_WIFI, /* 0x0d (Set) */
  59. CMD_ID_SET_MEDIA_CHANGE_DELAY_TIME, /* 0x0e (Set) */
  60. CMD_ID_SET_DOMAIN_INFO, /* 0x0f (Set) */
  61. CMD_ID_SET_IP_ADDRESS, /* 0x10 (Set) */
  62. CMD_ID_BSS_ACTIVATE_CTRL, /* 0x11 (Set) */
  63. CMD_ID_SET_BSS_INFO, /* 0x12 (Set) */
  64. CMD_ID_UPDATE_STA_RECORD, /* 0x13 (Set) */
  65. CMD_ID_REMOVE_STA_RECORD, /* 0x14 (Set) */
  66. CMD_ID_INDICATE_PM_BSS_CREATED, /* 0x15 (Set) */
  67. CMD_ID_INDICATE_PM_BSS_CONNECTED, /* 0x16 (Set) */
  68. CMD_ID_INDICATE_PM_BSS_ABORT, /* 0x17 (Set) */
  69. CMD_ID_UPDATE_BEACON_CONTENT, /* 0x18 (Set) */
  70. CMD_ID_SET_BSS_RLM_PARAM, /* 0x19 (Set) */
  71. CMD_ID_SCAN_REQ, /* 0x1a (Set) */
  72. CMD_ID_SCAN_CANCEL, /* 0x1b (Set) */
  73. CMD_ID_CH_PRIVILEGE, /* 0x1c (Set) */
  74. CMD_ID_UPDATE_WMM_PARMS, /* 0x1d (Set) */
  75. CMD_ID_SET_WMM_PS_TEST_PARMS, /* 0x1e (Set) */
  76. CMD_ID_TX_AMPDU, /* 0x1f (Set) */
  77. CMD_ID_ADDBA_REJECT, /* 0x20 (Set) */
  78. CMD_ID_SET_PS_PROFILE_ADV, /* 0x21 (Set) */
  79. CMD_ID_SET_RAW_PATTERN, /* 0x22 (Set) */
  80. CMD_ID_CONFIG_PATTERN_FUNC, /* 0x23 (Set) */
  81. CMD_ID_SET_TX_PWR, /* 0x24 (Set) */
  82. CMD_ID_SET_PWR_PARAM, /* 0x25 (Set) */
  83. CMD_ID_P2P_ABORT, /* 0x26 (Set) */
  84. /* SLT commands */
  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. CMD_ID_ROAMING_TRANSIT = 0x30, /* 0x30 (Set) */
  90. CMD_ID_SET_PHY_PARAM, /* 0x31 (Set) */
  91. CMD_ID_SET_NOA_PARAM, /* 0x32 (Set) */
  92. CMD_ID_SET_OPPPS_PARAM, /* 0x33 (Set) */
  93. CMD_ID_SET_UAPSD_PARAM, /* 0x34 (Set) */
  94. CMD_ID_SET_SIGMA_STA_SLEEP, /* 0x35 (Set) */
  95. CMD_ID_SET_EDGE_TXPWR_LIMIT, /* 0x36 (Set) */
  96. CMD_ID_SET_DEVICE_MODE, /* 0x37 (Set) */
  97. CMD_ID_SET_TXPWR_CTRL, /* 0x38 (Set) */
  98. CMD_ID_SET_AUTOPWR_CTRL, /* 0x39 (Set) */
  99. CMD_ID_SET_WFD_CTRL, /* 0x3a (Set) */
  100. CMD_ID_SET_NLO_REQ, /* 0x3b (Set) */
  101. CMD_ID_SET_NLO_CANCEL, /* 0x3c (Set) */
  102. CMD_ID_SET_GTK_REKEY_DATA, /* 0x3d (Set) */
  103. CMD_ID_ROAMING_CONTROL, /* 0x3e (Set) */
  104. /* CFG_M0VE_BA_TO_DRIVER */
  105. CMD_ID_RESET_BA_SCOREBOARD = 0x3f, /* 0x3f (Set) */
  106. CMD_ID_SET_EDGE_TXPWR_LIMIT_5G = 0x40, /* 0x40 (Set) */
  107. CMD_ID_SET_CHANNEL_PWR_OFFSET, /* 0x41 (Set) */
  108. CMD_ID_SET_80211AC_TX_PWR, /* 0x42 (Set) */
  109. CMD_ID_SET_PATH_COMPASATION, /* 0x43 (Set) */
  110. CMD_ID_SET_BATCH_REQ = 0x47, /* 0x47 (Set) */
  111. CMD_ID_SET_NVRAM_SETTINGS, /* 0x48 (Set) */
  112. CMD_ID_SET_COUNTRY_POWER_LIMIT, /* 0x49 (Set) */
  113. /* CFG_SUPPORT_GSCN */
  114. CMD_ID_GET_PSCAN_CAPABILITY = 0x60, /* 0x60 (Set) */
  115. CMD_ID_SET_PSCAN_ENABLE, /* 0x61 (Set) */
  116. CMD_ID_SET_PSCAN_PARAM, /* 0x62 (Set) */
  117. CMD_ID_SET_GSCAN_ADD_HOTLIST_BSSID, /* 0x63 (Set) */
  118. CMD_ID_SET_GSCAN_ADD_SWC_BSSID, /* 0x64 (Set) */
  119. CMD_ID_SET_GSCAN_MAC_ADDR, /* 0x65 (Set) */
  120. CMD_ID_GET_GSCAN_RESULT, /* 0x66 (Get) */
  121. CMD_ID_GET_NIC_CAPABILITY = 0x80, /* 0x80 (Query) */
  122. CMD_ID_GET_LINK_QUALITY, /* 0x81 (Query) */
  123. CMD_ID_GET_STATISTICS, /* 0x82 (Query) */
  124. CMD_ID_GET_CONNECTION_STATUS, /* 0x83 (Query) */
  125. CMD_ID_GET_STA_STATISTICS = 0x85, /* 0x85 (Query) */
  126. CMD_ID_GET_LTE_CHN = 0x87, /* 0x87 (Query) */
  127. CMD_ID_GET_CHN_LOADING = 0x88, /* 0x88 (Query) */
  128. CMD_ID_ACCESS_REG = 0xc0, /* 0xc0 (Set / Query) */
  129. CMD_ID_MAC_MCAST_ADDR, /* 0xc1 (Set / Query) */
  130. CMD_ID_802_11_PMKID, /* 0xc2 (Set / Query) */
  131. CMD_ID_ACCESS_EEPROM, /* 0xc3 (Set / Query) */
  132. CMD_ID_SW_DBG_CTRL, /* 0xc4 (Set / Query) */
  133. CMD_ID_SEC_CHECK, /* 0xc5 (Set / Query) */
  134. CMD_ID_DUMP_MEM, /* 0xc6 (Query) */
  135. CMD_ID_RESOURCE_CONFIG, /* 0xc7 (Set / Query) */
  136. CMD_ID_CHIP_CONFIG = 0xCA, /* 0xca (Set / Query) */
  137. CMD_ID_STATS_LOG = 0xCB, /* 0xcb (Set) */
  138. CMD_ID_SET_RDD_CH = 0xE1,
  139. CMD_ID_SET_BWCS = 0xF1,
  140. CMD_ID_SET_OSC = 0xF2,
  141. CMD_ID_GET_BUILD_DATE_CODE = 0xF8, /* 0xf8 (Query) */
  142. CMD_ID_GET_BSS_INFO = 0xF9, /* 0xF9 (Query) */
  143. CMD_ID_SET_HOTSPOT_OPTIMIZATION = 0xFA, /* 0xFA (Set) */
  144. CMD_ID_SET_TDLS_CH_SW = 0xFB,
  145. CMD_ID_SET_MONITOR = 0xFC, /* 0xFC (Set) */
  146. CMD_ID_END
  147. } ENUM_CMD_ID_T, *P_ENUM_CMD_ID_T;
  148. typedef enum _ENUM_EVENT_ID_T {
  149. EVENT_ID_NIC_CAPABILITY = 0x01, /* 0x01 (Query) */
  150. EVENT_ID_LINK_QUALITY, /* 0x02 (Query / Unsolicited) */
  151. EVENT_ID_STATISTICS, /* 0x03 (Query) */
  152. EVENT_ID_MIC_ERR_INFO, /* 0x04 (Unsolicited) */
  153. EVENT_ID_ACCESS_REG, /* 0x05 (Query - CMD_ID_ACCESS_REG) */
  154. EVENT_ID_ACCESS_EEPROM, /* 0x06 (Query - CMD_ID_ACCESS_EEPROM) */
  155. EVENT_ID_SLEEPY_INFO, /* 0x07 (Unsolicited) */
  156. EVENT_ID_BT_OVER_WIFI, /* 0x08 (Unsolicited) */
  157. EVENT_ID_TEST_STATUS, /* 0x09 (Query - CMD_ID_TEST_CTRL) */
  158. EVENT_ID_RX_ADDBA, /* 0x0a (Unsolicited) */
  159. EVENT_ID_RX_DELBA, /* 0x0b (Unsolicited) */
  160. EVENT_ID_ACTIVATE_STA_REC, /* 0x0c (Response) */
  161. EVENT_ID_SCAN_DONE, /* 0x0d (Unsoiicited) */
  162. EVENT_ID_RX_FLUSH, /* 0x0e (Unsolicited) */
  163. EVENT_ID_TX_DONE, /* 0x0f (Unsolicited) */
  164. EVENT_ID_CH_PRIVILEGE, /* 0x10 (Unsolicited) */
  165. EVENT_ID_BSS_ABSENCE_PRESENCE, /* 0x11 (Unsolicited) */
  166. EVENT_ID_STA_CHANGE_PS_MODE, /* 0x12 (Unsolicited) */
  167. EVENT_ID_BSS_BEACON_TIMEOUT, /* 0x13 (Unsolicited) */
  168. EVENT_ID_UPDATE_NOA_PARAMS, /* 0x14 (Unsolicited) */
  169. EVENT_ID_AP_OBSS_STATUS, /* 0x15 (Unsolicited) */
  170. EVENT_ID_STA_UPDATE_FREE_QUOTA, /* 0x16 (Unsolicited) */
  171. EVENT_ID_SW_DBG_CTRL, /* 0x17 (Query - CMD_ID_SW_DBG_CTRL) */
  172. EVENT_ID_ROAMING_STATUS, /* 0x18 (Unsolicited) */
  173. EVENT_ID_STA_AGING_TIMEOUT, /* 0x19 (Unsolicited) */
  174. EVENT_ID_SEC_CHECK_RSP, /* 0x1a (Query - CMD_ID_SEC_CHECK) */
  175. EVENT_ID_SEND_DEAUTH, /* 0x1b (Unsolicited) */
  176. EVENT_ID_UPDATE_RDD_STATUS, /* 0x1c (Unsolicited) */
  177. EVENT_ID_UPDATE_BWCS_STATUS, /* 0x1d (Unsolicited) */
  178. EVENT_ID_UPDATE_BCM_DEBUG, /* 0x1e (Unsolicited) */
  179. EVENT_ID_RX_ERR, /* 0x1f (Unsolicited) */
  180. EVENT_ID_DUMP_MEM = 0x20, /* 0x20 (Query - CMD_ID_DUMP_MEM) */
  181. EVENT_ID_STA_STATISTICS, /* 0x21 (Query ) */
  182. EVENT_ID_STA_STATISTICS_UPDATE, /* 0x22 (Unsolicited) */
  183. EVENT_ID_NLO_DONE, /* 0x23 (Unsoiicited) */
  184. EVENT_ID_ADD_PKEY_DONE, /* 0x24 (Unsoiicited) */
  185. EVENT_ID_ICAP_DONE, /* 0x25 (Unsoiicited) */
  186. EVENT_ID_RESOURCE_CONFIG = 0x26, /* 0x26 (Query - CMD_ID_RESOURCE_CONFIG) */
  187. EVENT_ID_DEBUG_MSG = 0x27, /* 0x27 (Unsoiicited) */
  188. EVENT_ID_RTT_CALIBR_DONE = 0x28, /* 0x28 (Unsoiicited) */
  189. EVENT_ID_RTT_UPDATE_RANGE = 0x29, /* 0x29 (Unsoiicited) */
  190. EVENT_ID_CHECK_REORDER_BUBBLE = 0x2a, /* 0x2a (Unsoiicited) */
  191. EVENT_ID_BATCH_RESULT = 0x2b, /* 0x2b (Query) */
  192. /* CFG_SUPPORT_GSCN */
  193. EVENT_ID_GSCAN_CAPABILITY = 0x30,
  194. EVENT_ID_GSCAN_SCAN_COMPLETE = 0x31,
  195. EVENT_ID_GSCAN_FULL_RESULT = 0x32,
  196. EVENT_ID_GSCAN_SIGNIFICANT_CHANGE = 0x33,
  197. EVENT_ID_GSCAN_GEOFENCE_FOUND = 0x34,
  198. EVENT_ID_GSCAN_SCAN_AVAILABLE = 0x35,
  199. EVENT_ID_GSCAN_RESULT = 0x36,
  200. EVENT_ID_UART_ACK = 0x40, /* 0x40 (Unsolicited) */
  201. EVENT_ID_UART_NAK, /* 0x41 (Unsolicited) */
  202. EVENT_ID_GET_CHIPID, /* 0x42 (Query - CMD_ID_GET_CHIPID) */
  203. EVENT_ID_SLT_STATUS, /* 0x43 (Query - CMD_ID_SET_SLTINFO) */
  204. EVENT_ID_CHIP_CONFIG, /* 0x44 (Query - CMD_ID_CHIP_CONFIG) */
  205. EVENT_ID_TDLS = 0x80, /* TDLS event_id */
  206. EVENT_ID_BUILD_DATE_CODE = 0xF8,
  207. EVENT_ID_GET_AIS_BSS_INFO = 0xF9,
  208. EVENT_ID_DEBUG_CODE = 0xFB,
  209. EVENT_ID_RFTEST_READY = 0xFC, /* 0xFC */
  210. EVENT_ID_END
  211. } ENUM_EVENT_ID_T, *P_ENUM_EVENT_ID_T;
  212. #define CMD_ID_SET_PSCN_ADD_HOTLIST_BSSID CMD_ID_SET_GSCAN_ADD_HOTLIST_BSSID /* 0x45 (Set) */
  213. #define CMD_ID_SET_PSCN_ADD_SW_BSSID CMD_ID_SET_GSCAN_ADD_SWC_BSSID /* 0x46 (Set) */
  214. #define CMD_ID_SET_PSCN_MAC_ADDR CMD_ID_SET_GSCAN_MAC_ADDR /* 0x65 (Set) */ /* 0x47 (Set) */
  215. #define CMD_ID_SET_PSCN_ENABLE CMD_ID_SET_PSCAN_ENABLE
  216. /*******************************************************************************
  217. * D A T A T Y P E S
  218. ********************************************************************************
  219. */
  220. #ifndef LINUX
  221. typedef UINT_8 CMD_STATUS;
  222. #endif
  223. /* for Event Packet (via HIF-RX) */
  224. /* following CM's documentation v0.7 */
  225. typedef struct _WIFI_CMD_T {
  226. UINT_16 u2TxByteCount; /* Max value is over 2048 */
  227. UINT_16 u2PQ_ID; /* Must be 0x8000 (Port1, Queue 0) */
  228. UINT_8 ucCID;
  229. UINT_8 ucPktTypeID; /* Must be 0x20 (CMD Packet) */
  230. UINT_8 ucSetQuery;
  231. UINT_8 ucSeqNum;
  232. UINT_8 aucBuffer[0];
  233. } WIFI_CMD_T, *P_WIFI_CMD_T;
  234. /* for Command Packet (via HIF-TX) */
  235. /* following CM's documentation v0.7 */
  236. typedef struct _WIFI_EVENT_T {
  237. UINT_16 u2PacketLength;
  238. UINT_16 u2PacketType; /* Must be filled with 0xE000 (EVENT Packet) */
  239. UINT_8 ucEID;
  240. UINT_8 ucSeqNum;
  241. UINT_8 aucReserved[2];
  242. UINT_8 aucBuffer[0];
  243. } WIFI_EVENT_T, *P_WIFI_EVENT_T;
  244. /* CMD_ID_TEST_CTRL */
  245. typedef struct _CMD_TEST_CTRL_T {
  246. UINT_8 ucAction;
  247. UINT_8 aucReserved[3];
  248. union {
  249. UINT_32 u4OpMode;
  250. UINT_32 u4ChannelFreq;
  251. PARAM_MTK_WIFI_TEST_STRUCT_T rRfATInfo;
  252. } u;
  253. } CMD_TEST_CTRL_T, *P_CMD_TEST_CTRL_T;
  254. /* EVENT_TEST_STATUS */
  255. typedef struct _PARAM_CUSTOM_RFTEST_TX_STATUS_STRUCT_T {
  256. UINT_32 u4PktSentStatus;
  257. UINT_32 u4PktSentCount;
  258. UINT_16 u2AvgAlc;
  259. UINT_8 ucCckGainControl;
  260. UINT_8 ucOfdmGainControl;
  261. } PARAM_CUSTOM_RFTEST_TX_STATUS_STRUCT_T, *P_PARAM_CUSTOM_RFTEST_TX_STATUS_STRUCT_T;
  262. typedef struct _PARAM_CUSTOM_RFTEST_RX_STATUS_STRUCT_T {
  263. UINT_32 u4IntRxOk; /*!< number of packets that Rx ok from interrupt */
  264. UINT_32 u4IntCrcErr; /*!< number of packets that CRC error from interrupt */
  265. UINT_32 u4IntShort; /*!< number of packets that is short preamble from interrupt */
  266. UINT_32 u4IntLong; /*!< number of packets that is long preamble from interrupt */
  267. UINT_32 u4PauRxPktCount; /*!< number of packets that Rx ok from PAU */
  268. UINT_32 u4PauCrcErrCount; /*!< number of packets that CRC error from PAU */
  269. UINT_32 u4PauRxFifoFullCount; /*!< number of packets that is short preamble from PAU */
  270. UINT_32 u4PauCCACount; /*!< CCA rising edge count */
  271. } PARAM_CUSTOM_RFTEST_RX_STATUS_STRUCT_T, *P_PARAM_CUSTOM_RFTEST_RX_STATUS_STRUCT_T;
  272. typedef union _EVENT_TEST_STATUS {
  273. PARAM_MTK_WIFI_TEST_STRUCT_T rATInfo;
  274. /* PARAM_CUSTOM_RFTEST_TX_STATUS_STRUCT_T rTxStatus; */
  275. /* PARAM_CUSTOM_RFTEST_RX_STATUS_STRUCT_T rRxStatus; */
  276. } EVENT_TEST_STATUS, *P_EVENT_TEST_STATUS;
  277. /* CMD_BUILD_CONNECTION */
  278. typedef struct _CMD_BUILD_CONNECTION {
  279. UINT_8 ucInfraMode;
  280. UINT_8 ucAuthMode;
  281. UINT_8 ucEncryptStatus;
  282. UINT_8 ucSsidLen;
  283. UINT_8 aucSsid[PARAM_MAX_LEN_SSID];
  284. UINT_8 aucBssid[PARAM_MAC_ADDR_LEN];
  285. /* Ad-hoc mode */
  286. UINT_16 u2BeaconPeriod;
  287. UINT_16 u2ATIMWindow;
  288. UINT_8 ucJoinOnly;
  289. UINT_8 ucReserved;
  290. UINT_32 u4FreqInKHz;
  291. /* for faster connection */
  292. UINT_8 aucScanResult[0];
  293. } CMD_BUILD_CONNECTION, *P_CMD_BUILD_CONNECTION;
  294. /* CMD_ADD_REMOVE_KEY */
  295. typedef struct _CMD_802_11_KEY {
  296. UINT_8 ucAddRemove;
  297. UINT_8 ucTxKey;
  298. UINT_8 ucKeyType;
  299. UINT_8 ucIsAuthenticator;
  300. UINT_8 aucPeerAddr[6];
  301. UINT_8 ucBssIdx;
  302. UINT_8 ucAlgorithmId;
  303. UINT_8 ucKeyId;
  304. UINT_8 ucKeyLen;
  305. UINT_8 ucWlanIndex;
  306. UINT_8 ucReverved;
  307. UINT_8 aucKeyMaterial[32];
  308. UINT_8 aucKeyRsc[16];
  309. } CMD_802_11_KEY, *P_CMD_802_11_KEY;
  310. /* CMD_ID_DEFAULT_KEY_ID */
  311. typedef struct _CMD_DEFAULT_KEY {
  312. UINT_8 ucBssIdx;
  313. UINT_8 ucKeyId;
  314. UINT_8 ucUnicast;
  315. UINT_8 ucMulticast;
  316. } CMD_DEFAULT_KEY, *P_CMD_DEFAULT_KEY;
  317. /* WPA2 PMKID cache structure */
  318. typedef struct _PMKID_ENTRY_T {
  319. PARAM_BSSID_INFO_T rBssidInfo;
  320. BOOLEAN fgPmkidExist;
  321. } PMKID_ENTRY_T, *P_PMKID_ENTRY_T;
  322. typedef struct _CMD_802_11_PMKID {
  323. UINT_32 u4BSSIDInfoCount;
  324. P_PMKID_ENTRY_T arPMKIDInfo[1];
  325. } CMD_802_11_PMKID, *P_CMD_802_11_PMKID;
  326. typedef struct _CMD_GTK_REKEY_DATA_T {
  327. UINT_8 aucKek[16];
  328. UINT_8 aucKck[16];
  329. UINT_8 aucReplayCtr[8];
  330. } CMD_GTK_REKEY_DATA_T, *P_CMD_GTK_REKEY_DATA_T;
  331. /* CMD_BASIC_CONFIG */
  332. typedef struct _CMD_CSUM_OFFLOAD_T {
  333. UINT_16 u2RxChecksum; /* bit0: IP, bit1: UDP, bit2: TCP */
  334. UINT_16 u2TxChecksum; /* bit0: IP, bit1: UDP, bit2: TCP */
  335. } CMD_CSUM_OFFLOAD_T, *P_CMD_CSUM_OFFLOAD_T;
  336. typedef struct _CMD_BASIC_CONFIG_T {
  337. UINT_8 ucNative80211;
  338. UINT_8 aucReserved[3];
  339. CMD_CSUM_OFFLOAD_T rCsumOffload;
  340. } CMD_BASIC_CONFIG_T, *P_CMD_BASIC_CONFIG_T;
  341. /* CMD_MAC_MCAST_ADDR */
  342. typedef struct _CMD_MAC_MCAST_ADDR {
  343. UINT_32 u4NumOfGroupAddr;
  344. UINT_8 ucBssIndex;
  345. UINT_8 aucReserved[3];
  346. PARAM_MAC_ADDRESS arAddress[MAX_NUM_GROUP_ADDR];
  347. } CMD_MAC_MCAST_ADDR, *P_CMD_MAC_MCAST_ADDR, EVENT_MAC_MCAST_ADDR, *P_EVENT_MAC_MCAST_ADDR;
  348. /* CMD_ACCESS_EEPROM */
  349. typedef struct _CMD_ACCESS_EEPROM {
  350. UINT_16 u2Offset;
  351. UINT_16 u2Data;
  352. } CMD_ACCESS_EEPROM, *P_CMD_ACCESS_EEPROM, EVENT_ACCESS_EEPROM, *P_EVENT_ACCESS_EEPROM;
  353. typedef struct _CMD_CUSTOM_NOA_PARAM_STRUCT_T {
  354. UINT_32 u4NoaDurationMs;
  355. UINT_32 u4NoaIntervalMs;
  356. UINT_32 u4NoaCount;
  357. } CMD_CUSTOM_NOA_PARAM_STRUCT_T, *P_CMD_CUSTOM_NOA_PARAM_STRUCT_T;
  358. typedef struct _CMD_CUSTOM_OPPPS_PARAM_STRUCT_T {
  359. UINT_32 u4CTwindowMs;
  360. } CMD_CUSTOM_OPPPS_PARAM_STRUCT_T, *P_CMD_CUSTOM_OPPPS_PARAM_STRUCT_T;
  361. typedef struct _CMD_CUSTOM_UAPSD_PARAM_STRUCT_T {
  362. UINT_8 fgEnAPSD;
  363. UINT_8 fgEnAPSD_AcBe;
  364. UINT_8 fgEnAPSD_AcBk;
  365. UINT_8 fgEnAPSD_AcVo;
  366. UINT_8 fgEnAPSD_AcVi;
  367. UINT_8 ucMaxSpLen;
  368. UINT_8 aucResv[2];
  369. } CMD_CUSTOM_UAPSD_PARAM_STRUCT_T, *P_CMD_CUSTOM_UAPSD_PARAM_STRUCT_T;
  370. #if CFG_M0VE_BA_TO_DRIVER
  371. typedef struct _CMD_RESET_BA_SCOREBOARD_T {
  372. UINT_8 ucflag;
  373. UINT_8 ucTID;
  374. UINT_8 aucMacAddr[PARAM_MAC_ADDR_LEN];
  375. } CMD_RESET_BA_SCOREBOARD_T, *P_CMD_RESET_BA_SCOREBOARD_T;
  376. #endif
  377. /* EVENT_CONNECTION_STATUS */
  378. typedef struct _EVENT_CONNECTION_STATUS {
  379. UINT_8 ucMediaStatus;
  380. UINT_8 ucReasonOfDisconnect;
  381. UINT_8 ucInfraMode;
  382. UINT_8 ucSsidLen;
  383. UINT_8 aucSsid[PARAM_MAX_LEN_SSID];
  384. UINT_8 aucBssid[PARAM_MAC_ADDR_LEN];
  385. UINT_8 ucAuthenMode;
  386. UINT_8 ucEncryptStatus;
  387. UINT_16 u2BeaconPeriod;
  388. UINT_16 u2AID;
  389. UINT_16 u2ATIMWindow;
  390. UINT_8 ucNetworkType;
  391. UINT_8 aucReserved[1];
  392. UINT_32 u4FreqInKHz;
  393. #if CFG_ENABLE_WIFI_DIRECT
  394. UINT_8 aucInterfaceAddr[PARAM_MAC_ADDR_LEN];
  395. #endif
  396. } EVENT_CONNECTION_STATUS, *P_EVENT_CONNECTION_STATUS;
  397. /* EVENT_NIC_CAPABILITY */
  398. typedef struct _EVENT_NIC_CAPABILITY_T {
  399. UINT_16 u2ProductID;
  400. UINT_16 u2FwVersion;
  401. UINT_16 u2DriverVersion;
  402. UINT_8 ucHw5GBandDisabled;
  403. UINT_8 ucEepromUsed;
  404. UINT_8 aucMacAddr[6];
  405. UINT_8 ucEndianOfMacAddrNumber;
  406. UINT_8 ucReserved;
  407. UINT_8 ucRfVersion;
  408. UINT_8 ucPhyVersion;
  409. UINT_8 ucRfCalFail;
  410. UINT_8 ucBbCalFail;
  411. UINT_8 aucDateCode[16];
  412. UINT_32 u4FeatureFlag0;
  413. UINT_32 u4FeatureFlag1;
  414. UINT_32 u4CompileFlag0;
  415. UINT_32 u4CompileFlag1;
  416. UINT_8 aucReserved0[64];
  417. } EVENT_NIC_CAPABILITY_T, *P_EVENT_NIC_CAPABILITY_T;
  418. /* modified version of WLAN_BEACON_FRAME_BODY_T for simplier buffering */
  419. typedef struct _WLAN_BEACON_FRAME_BODY_T_LOCAL {
  420. /* Beacon frame body */
  421. UINT_32 au4Timestamp[2]; /* Timestamp */
  422. UINT_16 u2BeaconInterval; /* Beacon Interval */
  423. UINT_16 u2CapInfo; /* Capability */
  424. UINT_8 aucInfoElem[MAX_IE_LENGTH]; /* Various IEs, start from SSID */
  425. UINT_16 u2IELength; /* This field is *NOT* carried by F/W but caculated by nic_rx */
  426. } WLAN_BEACON_FRAME_BODY_T_LOCAL, *P_WLAN_BEACON_FRAME_BODY_T_LOCAL;
  427. /* EVENT_SCAN_RESULT */
  428. typedef struct _EVENT_SCAN_RESULT_T {
  429. INT_32 i4RSSI;
  430. UINT_32 u4LinkQuality;
  431. UINT_32 u4DSConfig; /* Center frequency */
  432. UINT_32 u4DomainInfo; /* Require CM opinion */
  433. UINT_32 u4Reserved;
  434. UINT_8 ucNetworkType;
  435. UINT_8 ucOpMode;
  436. UINT_8 aucBssid[MAC_ADDR_LEN];
  437. UINT_8 aucRatesEx[PARAM_MAX_LEN_RATES_EX];
  438. WLAN_BEACON_FRAME_BODY_T_LOCAL rBeaconFrameBody;
  439. } EVENT_SCAN_RESULT_T, *P_EVENT_SCAN_RESULT_T;
  440. /* event of tkip mic error */
  441. typedef struct _EVENT_MIC_ERR_INFO {
  442. UINT_32 u4Flags;
  443. } EVENT_MIC_ERR_INFO, *P_EVENT_MIC_ERR_INFO;
  444. /* event of add key done for port control */
  445. typedef struct _EVENT_ADD_KEY_DONE_INFO {
  446. UINT_8 ucBSSIndex;
  447. UINT_8 ucReserved;
  448. UINT_8 aucStaAddr[6];
  449. } EVENT_ADD_KEY_DONE_INFO, *P_EVENT_ADD_KEY_DONE_INFO;
  450. typedef struct _EVENT_PMKID_CANDIDATE_LIST_T {
  451. UINT_32 u4Version; /*!< Version */
  452. UINT_32 u4NumCandidates; /*!< How many candidates follow */
  453. PARAM_PMKID_CANDIDATE_T arCandidateList[1];
  454. } EVENT_PMKID_CANDIDATE_LIST_T, *P_EVENT_PMKID_CANDIDATE_LIST_T;
  455. typedef struct _EVENT_CMD_RESULT {
  456. UINT_8 ucCmdID;
  457. UINT_8 ucStatus;
  458. UINT_8 aucReserved[2];
  459. } EVENT_CMD_RESULT, *P_EVENT_CMD_RESULT;
  460. /* CMD_ID_ACCESS_REG & EVENT_ID_ACCESS_REG */
  461. typedef struct _CMD_ACCESS_REG {
  462. UINT_32 u4Address;
  463. UINT_32 u4Data;
  464. } CMD_ACCESS_REG, *P_CMD_ACCESS_REG;
  465. #if CFG_AUTO_CHANNEL_SEL_SUPPORT
  466. typedef struct _CMD_ACCESS_CHN_LOAD {
  467. UINT_32 u4Address;
  468. UINT_32 u4Data;
  469. UINT_16 u2Channel;
  470. UINT_8 aucReserved[2];
  471. } CMD_ACCESS_CHN_LOAD, *P_ACCESS_CHN_LOAD;
  472. #endif
  473. /* CMD_DUMP_MEMORY */
  474. typedef struct _CMD_DUMP_MEM {
  475. UINT_32 u4Address;
  476. UINT_32 u4Length;
  477. UINT_32 u4RemainLength;
  478. UINT_8 ucFragNum;
  479. } CMD_DUMP_MEM, *P_CMD_DUMP_MEM;
  480. typedef struct _EVENT_DUMP_MEM_T {
  481. UINT_32 u4Address;
  482. UINT_32 u4Length;
  483. UINT_32 u4RemainLength;
  484. UINT_8 ucFragNum;
  485. UINT_8 aucBuffer[1];
  486. } EVENT_DUMP_MEM_T, *P_EVENT_DUMP_MEM_T;
  487. typedef struct _CMD_SW_DBG_CTRL_T {
  488. UINT_32 u4Id;
  489. UINT_32 u4Data;
  490. /* Debug Support */
  491. UINT_32 u4DebugCnt[64];
  492. } CMD_SW_DBG_CTRL_T, *P_CMD_SW_DBG_CTRL_T;
  493. typedef struct _CMD_CHIP_CONFIG_T {
  494. UINT_16 u2Id;
  495. UINT_8 ucType;
  496. UINT_8 ucRespType;
  497. UINT_16 u2MsgSize;
  498. UINT_8 aucReserved0[2];
  499. UINT_8 aucCmd[CHIP_CONFIG_RESP_SIZE];
  500. } CMD_CHIP_CONFIG_T, *P_CMD_CHIP_CONFIG_T;
  501. /* CMD_ID_LINK_ATTRIB */
  502. typedef struct _CMD_LINK_ATTRIB {
  503. INT_8 cRssiTrigger;
  504. UINT_8 ucDesiredRateLen;
  505. UINT_16 u2DesiredRate[32];
  506. UINT_8 ucMediaStreamMode;
  507. UINT_8 aucReserved[1];
  508. } CMD_LINK_ATTRIB, *P_CMD_LINK_ATTRIB;
  509. /* CMD_ID_NIC_POWER_CTRL */
  510. typedef struct _CMD_NIC_POWER_CTRL {
  511. UINT_8 ucPowerMode;
  512. UINT_8 aucReserved[3];
  513. } CMD_NIC_POWER_CTRL, *P_CMD_NIC_POWER_CTRL;
  514. /* CMD_ID_POWER_SAVE_MODE */
  515. typedef struct _CMD_PS_PROFILE_T {
  516. UINT_8 ucBssIndex;
  517. UINT_8 ucPsProfile;
  518. UINT_8 aucReserved[2];
  519. } CMD_PS_PROFILE_T, *P_CMD_PS_PROFILE_T;
  520. /* EVENT_LINK_QUALITY */
  521. #if 1
  522. typedef struct _LINK_QUALITY_ {
  523. INT_8 cRssi; /* AIS Network. */
  524. INT_8 cLinkQuality;
  525. UINT_16 u2LinkSpeed; /* TX rate1 */
  526. UINT_8 ucMediumBusyPercentage; /* Read clear */
  527. UINT_8 ucIsLQ0Rdy; /* Link Quality BSS0 Ready. */
  528. } LINK_QUALITY, *P_LINK_QUALITY;
  529. typedef struct _EVENT_LINK_QUALITY_V2 {
  530. LINK_QUALITY rLq[BSSID_NUM];
  531. } EVENT_LINK_QUALITY_V2, *P_EVENT_LINK_QUALITY_V2;
  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. #endif
  539. #if CFG_SUPPORT_P2P_RSSI_QUERY
  540. /* EVENT_LINK_QUALITY */
  541. typedef struct _EVENT_LINK_QUALITY_EX {
  542. INT_8 cRssi;
  543. INT_8 cLinkQuality;
  544. UINT_16 u2LinkSpeed;
  545. UINT_8 ucMediumBusyPercentage;
  546. UINT_8 ucIsLQ0Rdy;
  547. INT_8 cRssiP2P; /* For P2P Network. */
  548. INT_8 cLinkQualityP2P;
  549. UINT_16 u2LinkSpeedP2P;
  550. UINT_8 ucMediumBusyPercentageP2P;
  551. UINT_8 ucIsLQ1Rdy;
  552. } EVENT_LINK_QUALITY_EX, *P_EVENT_LINK_QUALITY_EX;
  553. #endif
  554. /* EVENT_ID_STATISTICS */
  555. typedef struct _EVENT_STATISTICS {
  556. LARGE_INTEGER rTransmittedFragmentCount;
  557. LARGE_INTEGER rMulticastTransmittedFrameCount;
  558. LARGE_INTEGER rFailedCount;
  559. LARGE_INTEGER rRetryCount;
  560. LARGE_INTEGER rMultipleRetryCount;
  561. LARGE_INTEGER rRTSSuccessCount;
  562. LARGE_INTEGER rRTSFailureCount;
  563. LARGE_INTEGER rACKFailureCount;
  564. LARGE_INTEGER rFrameDuplicateCount;
  565. LARGE_INTEGER rReceivedFragmentCount;
  566. LARGE_INTEGER rMulticastReceivedFrameCount;
  567. LARGE_INTEGER rFCSErrorCount;
  568. } EVENT_STATISTICS, *P_EVENT_STATISTICS;
  569. /* EVENT_ID_FW_SLEEPY_NOTIFY */
  570. typedef struct _EVENT_SLEEPY_INFO_T {
  571. UINT_8 ucSleepyState;
  572. UINT_8 aucReserved[3];
  573. } EVENT_SLEEPY_INFO_T, *P_EVENT_SLEEPY_INFO_T;
  574. typedef struct _EVENT_ACTIVATE_STA_REC_T {
  575. UINT_8 aucMacAddr[6];
  576. UINT_8 ucStaRecIdx;
  577. UINT_8 ucBssIndex;
  578. } EVENT_ACTIVATE_STA_REC_T, *P_EVENT_ACTIVATE_STA_REC_T;
  579. typedef struct _EVENT_DEACTIVATE_STA_REC_T {
  580. UINT_8 ucStaRecIdx;
  581. UINT_8 aucReserved[3];
  582. } EVENT_DEACTIVATE_STA_REC_T, *P_EVENT_DEACTIVATE_STA_REC_T;
  583. /* CMD_BT_OVER_WIFI */
  584. typedef struct _CMD_BT_OVER_WIFI {
  585. UINT_8 ucAction; /* 0: query, 1: setup, 2: destroy */
  586. UINT_8 ucChannelNum;
  587. PARAM_MAC_ADDRESS rPeerAddr;
  588. UINT_16 u2BeaconInterval;
  589. UINT_8 ucTimeoutDiscovery;
  590. UINT_8 ucTimeoutInactivity;
  591. UINT_8 ucRole;
  592. UINT_8 PAL_Capabilities;
  593. UINT_8 cMaxTxPower;
  594. UINT_8 ucChannelBand;
  595. UINT_8 ucReserved[1];
  596. } CMD_BT_OVER_WIFI, *P_CMD_BT_OVER_WIFI;
  597. /* EVENT_BT_OVER_WIFI */
  598. typedef struct _EVENT_BT_OVER_WIFI {
  599. UINT_8 ucLinkStatus;
  600. UINT_8 ucSelectedChannel;
  601. INT_8 cRSSI;
  602. UINT_8 ucReserved[1];
  603. } EVENT_BT_OVER_WIFI, *P_EVENT_BT_OVER_WIFI;
  604. /* Same with DOMAIN_SUBBAND_INFO */
  605. typedef struct _CMD_SUBBAND_INFO {
  606. UINT_8 ucRegClass;
  607. UINT_8 ucBand;
  608. UINT_8 ucChannelSpan;
  609. UINT_8 ucFirstChannelNum;
  610. UINT_8 ucNumChannels;
  611. UINT_8 aucReserved[3];
  612. } CMD_SUBBAND_INFO, *P_CMD_SUBBAND_INFO;
  613. /* CMD_SET_DOMAIN_INFO */
  614. typedef struct _CMD_SET_DOMAIN_INFO_T {
  615. UINT_16 u2CountryCode;
  616. UINT_16 u2IsSetPassiveScan;
  617. CMD_SUBBAND_INFO rSubBand[6];
  618. UINT_8 uc2G4Bandwidth; /* CONFIG_BW_20_40M or CONFIG_BW_20M */
  619. UINT_8 uc5GBandwidth; /* CONFIG_BW_20_40M or CONFIG_BW_20M */
  620. UINT_8 aucReserved[2];
  621. } CMD_SET_DOMAIN_INFO_T, *P_CMD_SET_DOMAIN_INFO_T;
  622. #if CFG_SUPPORT_PWR_LIMIT_COUNTRY
  623. /* CMD_SET_PWR_LIMIT_TABLE */
  624. typedef struct _CMD_CHANNEL_POWER_LIMIT {
  625. UINT_8 ucCentralCh;
  626. INT_8 cPwrLimitCCK;
  627. INT_8 cPwrLimit20;
  628. INT_8 cPwrLimit40;
  629. INT_8 cPwrLimit80;
  630. INT_8 cPwrLimit160;
  631. UINT_8 ucFlag;
  632. UINT_8 aucReserved[1];
  633. } CMD_CHANNEL_POWER_LIMIT, *P_CMD_CHANNEL_POWER_LIMIT;
  634. typedef struct _CMD_SET_COUNTRY_CHANNEL_POWER_LIMIT_T {
  635. UINT_16 u2CountryCode;
  636. UINT_8 ucCountryFlag;
  637. UINT_8 ucNum;
  638. UINT_8 aucReserved[4];
  639. CMD_CHANNEL_POWER_LIMIT rChannelPowerLimit[1];
  640. } CMD_SET_COUNTRY_CHANNEL_POWER_LIMIT_T, *P_CMD_SET_COUNTRY_CHANNEL_POWER_LIMIT_T;
  641. #endif
  642. /* CMD_SET_IP_ADDRESS */
  643. typedef struct _IPV4_NETWORK_ADDRESS {
  644. UINT_8 aucIpAddr[4];
  645. } IPV4_NETWORK_ADDRESS, *P_IPV4_NETWORK_ADDRESS;
  646. typedef struct _CMD_SET_NETWORK_ADDRESS_LIST {
  647. UINT_8 ucBssIndex;
  648. UINT_8 ucAddressCount;
  649. UINT_8 ucReserved[2];
  650. IPV4_NETWORK_ADDRESS arNetAddress[1];
  651. } CMD_SET_NETWORK_ADDRESS_LIST, *P_CMD_SET_NETWORK_ADDRESS_LIST;
  652. typedef struct _PATTERN_DESCRIPTION {
  653. UINT_8 fgCheckBcA1;
  654. UINT_8 fgCheckMcA1;
  655. UINT_8 ePatternHeader;
  656. UINT_8 fgAndOp;
  657. UINT_8 fgNotOp;
  658. UINT_8 ucPatternMask;
  659. UINT_16 u2PatternOffset;
  660. UINT_8 aucPattern[8];
  661. } PATTERN_DESCRIPTION, *P_PATTERN_DESCRIPTION;
  662. typedef struct _CMD_RAW_PATTERN_CONFIGURATION_T {
  663. PATTERN_DESCRIPTION arPatternDesc[4];
  664. } CMD_RAW_PATTERN_CONFIGURATION_T, *P_CMD_RAW_PATTERN_CONFIGURATION_T;
  665. typedef struct _CMD_PATTERN_FUNC_CONFIG {
  666. BOOLEAN fgBcA1En;
  667. BOOLEAN fgMcA1En;
  668. BOOLEAN fgBcA1MatchDrop;
  669. BOOLEAN fgMcA1MatchDrop;
  670. } CMD_PATTERN_FUNC_CONFIG, *P_CMD_PATTERN_FUNC_CONFIG;
  671. typedef struct _EVENT_TX_DONE_T {
  672. UINT_8 ucPacketSeq;
  673. UINT_8 ucStatus;
  674. UINT_16 u2SequenceNumber;
  675. UINT_8 ucWlanIndex;
  676. UINT_8 ucTxCount;
  677. UINT_16 u2TxRate;
  678. UINT_8 ucFlag;
  679. UINT_8 au4Reserved2[3];
  680. UINT_32 au4Reserved3;
  681. } EVENT_TX_DONE_T, *P_EVENT_TX_DONE_T;
  682. typedef struct _CMD_BSS_ACTIVATE_CTRL {
  683. UINT_8 ucBssIndex;
  684. UINT_8 ucActive;
  685. UINT_8 ucNetworkType;
  686. UINT_8 ucOwnMacAddrIndex;
  687. UINT_8 aucBssMacAddr[6];
  688. UINT_8 ucBMCWlanIndex;
  689. UINT_8 ucReserved;
  690. } CMD_BSS_ACTIVATE_CTRL, *P_CMD_BSS_ACTIVATE_CTRL;
  691. typedef struct _CMD_SET_BSS_RLM_PARAM_T {
  692. UINT_8 ucBssIndex;
  693. UINT_8 ucRfBand;
  694. UINT_8 ucPrimaryChannel;
  695. UINT_8 ucRfSco;
  696. UINT_8 ucErpProtectMode;
  697. UINT_8 ucHtProtectMode;
  698. UINT_8 ucGfOperationMode;
  699. UINT_8 ucTxRifsMode;
  700. UINT_16 u2HtOpInfo3;
  701. UINT_16 u2HtOpInfo2;
  702. UINT_8 ucHtOpInfo1;
  703. UINT_8 ucUseShortPreamble;
  704. UINT_8 ucUseShortSlotTime;
  705. UINT_8 ucVhtChannelWidth;
  706. UINT_8 ucVhtChannelFrequencyS1;
  707. UINT_8 ucVhtChannelFrequencyS2;
  708. UINT_16 u2VhtBasicMcsSet;
  709. } CMD_SET_BSS_RLM_PARAM_T, *P_CMD_SET_BSS_RLM_PARAM_T;
  710. typedef struct _CMD_SET_BSS_INFO {
  711. UINT_8 ucBssIndex;
  712. UINT_8 ucConnectionState;
  713. UINT_8 ucCurrentOPMode;
  714. UINT_8 ucSSIDLen;
  715. UINT_8 aucSSID[32];
  716. UINT_8 aucBSSID[6];
  717. UINT_8 ucIsQBSS;
  718. UINT_8 ucReserved1;
  719. UINT_16 u2OperationalRateSet;
  720. UINT_16 u2BSSBasicRateSet;
  721. UINT_8 ucStaRecIdxOfAP;
  722. UINT_16 u2HwDefaultFixedRateCode;
  723. UINT_8 ucNonHTBasicPhyType; /* For Slot Time and CWmin */
  724. UINT_8 ucAuthMode;
  725. UINT_8 ucEncStatus;
  726. UINT_8 ucPhyTypeSet;
  727. UINT_8 ucWapiMode;
  728. UINT_8 ucIsApMode;
  729. UINT_8 ucBMCWlanIndex;
  730. UINT_8 ucHiddenSsidMode;
  731. UINT_8 ucDisconnectDetectTh;
  732. UINT_32 u4PrivateData;
  733. CMD_SET_BSS_RLM_PARAM_T rBssRlmParam;
  734. } CMD_SET_BSS_INFO, *P_CMD_SET_BSS_INFO;
  735. typedef enum _ENUM_RTS_POLICY_T {
  736. RTS_POLICY_AUTO,
  737. RTS_POLICY_STATIC_BW,
  738. RTS_POLICY_DYNAMIC_BW,
  739. RTS_POLICY_LEGACY,
  740. RTS_POLICY_NO_RTS
  741. } ENUM_RTS_POLICY;
  742. typedef struct _CMD_UPDATE_STA_RECORD_T {
  743. UINT_8 ucStaIndex;
  744. UINT_8 ucStaType;
  745. /* This field should assign at create and keep consistency for update usage */
  746. UINT_8 aucMacAddr[MAC_ADDR_LEN];
  747. UINT_16 u2AssocId;
  748. UINT_16 u2ListenInterval;
  749. UINT_8 ucBssIndex; /* This field should assign at create and keep consistency for update usage */
  750. UINT_8 ucDesiredPhyTypeSet;
  751. UINT_16 u2DesiredNonHTRateSet;
  752. UINT_16 u2BSSBasicRateSet;
  753. UINT_8 ucIsQoS;
  754. UINT_8 ucIsUapsdSupported;
  755. UINT_8 ucStaState;
  756. UINT_8 ucMcsSet;
  757. UINT_8 ucSupMcs32;
  758. UINT_8 aucReserved1[1];
  759. UINT_8 aucRxMcsBitmask[10];
  760. UINT_16 u2RxHighestSupportedRate;
  761. UINT_32 u4TxRateInfo;
  762. UINT_16 u2HtCapInfo;
  763. UINT_16 u2HtExtendedCap;
  764. UINT_32 u4TxBeamformingCap;
  765. UINT_8 ucAmpduParam;
  766. UINT_8 ucAselCap;
  767. UINT_8 ucRCPI;
  768. UINT_8 ucNeedResp;
  769. UINT_8 ucUapsdAc; /* b0~3: Trigger enabled, b4~7: Delivery enabled */
  770. UINT_8 ucUapsdSp; /* 0: all, 1: max 2, 2: max 4, 3: max 6 */
  771. UINT_8 ucWlanIndex; /* This field should assign at create and keep consistency for update usage */
  772. UINT_8 ucBMCWlanIndex; /* This field should assign at create and keep consistency for update usage */
  773. UINT_32 u4VhtCapInfo;
  774. UINT_16 u2VhtRxMcsMap;
  775. UINT_16 u2VhtRxHighestSupportedDataRate;
  776. UINT_16 u2VhtTxMcsMap;
  777. UINT_16 u2VhtTxHighestSupportedDataRate;
  778. UINT_8 ucRtsPolicy; /* 0: auto 1: Static BW 2: Dynamic BW 3: Legacy 7: WoRts */
  779. UINT_8 aucReserved2[1];
  780. UINT_8 ucTrafficDataType; /* 0: auto 1: data 2: video 3: voice */
  781. UINT_8 ucTxGfMode;
  782. UINT_8 ucTxSgiMode;
  783. UINT_8 ucTxStbcMode;
  784. UINT_16 u2HwDefaultFixedRateCode;
  785. UINT_8 ucTxAmpdu;
  786. UINT_8 ucRxAmpdu;
  787. UINT_32 u4FixedPhyRate; /* */
  788. UINT_16 u2MaxLinkSpeed; /* unit is 0.5 Mbps */
  789. UINT_16 u2MinLinkSpeed;
  790. UINT_32 u4Flags;
  791. UINT_8 ucTxBaSize;
  792. UINT_8 ucRxBaSize;
  793. UINT_8 aucReserved4[30];
  794. } CMD_UPDATE_STA_RECORD_T, *P_CMD_UPDATE_STA_RECORD_T;
  795. typedef struct _CMD_REMOVE_STA_RECORD_T {
  796. UINT_8 ucActionType;
  797. UINT_8 ucStaIndex;
  798. UINT_8 ucBssIndex;
  799. UINT_8 ucReserved;
  800. } CMD_REMOVE_STA_RECORD_T, *P_CMD_REMOVE_STA_RECORD_T;
  801. typedef struct _CMD_INDICATE_PM_BSS_CREATED_T {
  802. UINT_8 ucBssIndex;
  803. UINT_8 ucDtimPeriod;
  804. UINT_16 u2BeaconInterval;
  805. UINT_16 u2AtimWindow;
  806. UINT_8 aucReserved[2];
  807. } CMD_INDICATE_PM_BSS_CREATED, *P_CMD_INDICATE_PM_BSS_CREATED;
  808. typedef struct _CMD_INDICATE_PM_BSS_CONNECTED_T {
  809. UINT_8 ucBssIndex;
  810. UINT_8 ucDtimPeriod;
  811. UINT_16 u2AssocId;
  812. UINT_16 u2BeaconInterval;
  813. UINT_16 u2AtimWindow;
  814. UINT_8 fgIsUapsdConnection;
  815. UINT_8 ucBmpDeliveryAC;
  816. UINT_8 ucBmpTriggerAC;
  817. UINT_8 aucReserved[1];
  818. } CMD_INDICATE_PM_BSS_CONNECTED, *P_CMD_INDICATE_PM_BSS_CONNECTED;
  819. typedef struct _CMD_INDICATE_PM_BSS_ABORT {
  820. UINT_8 ucBssIndex;
  821. UINT_8 aucReserved[3];
  822. } CMD_INDICATE_PM_BSS_ABORT, *P_CMD_INDICATE_PM_BSS_ABORT;
  823. typedef struct _CMD_BEACON_TEMPLATE_UPDATE {
  824. /* 0: update randomly, 1: update all, 2: delete all (1 and 2 will update directly without search) */
  825. UINT_8 ucUpdateMethod;
  826. UINT_8 ucBssIndex;
  827. UINT_8 aucReserved[2];
  828. UINT_16 u2Capability;
  829. UINT_16 u2IELen;
  830. UINT_8 aucIE[MAX_IE_LENGTH];
  831. } CMD_BEACON_TEMPLATE_UPDATE, *P_CMD_BEACON_TEMPLATE_UPDATE;
  832. typedef struct _CMD_SET_WMM_PS_TEST_STRUCT_T {
  833. UINT_8 ucBssIndex;
  834. UINT_8 bmfgApsdEnAc; /* b0~3: trigger-en AC0~3. b4~7: delivery-en AC0~3 */
  835. UINT_8 ucIsEnterPsAtOnce; /* enter PS immediately without 5 second guard after connected */
  836. UINT_8 ucIsDisableUcTrigger; /* not to trigger UC on beacon TIM is matched (under U-APSD) */
  837. } CMD_SET_WMM_PS_TEST_STRUCT_T, *P_CMD_SET_WMM_PS_TEST_STRUCT_T;
  838. typedef struct _GSCN_CHANNEL_INFO_T {
  839. UINT_8 ucBand;
  840. UINT_8 ucChannel; /* frequency */
  841. UINT_8 ucPassive; /* 0 => active, 1 => passive scan; ignored for DFS */
  842. UINT_8 aucReserved[1];
  843. UINT_32 u4DwellTimeMs; /* dwell time hint */
  844. /* Add channel class */
  845. } GSCN_CHANNEL_INFO_T, *P_GSCN_CHANNEL_INFO_T;
  846. typedef struct _GSCAN_CHANNEL_BUCKET_T {
  847. UINT_16 u2BucketIndex; /* bucket index, 0 based */
  848. UINT_8 ucBucketFreqMultiple; /* desired period, in millisecond; if this is too low, the firmware
  849. should choose to generate results as fast as it can instead of failing the command */
  850. /* report_events semantics -
  851. * 0 => report only when scan history is % full
  852. * 1 => same as 0 + report a scan completion event after scanning this bucket
  853. * 2 => same as 1 + forward scan results (beacons/probe responses + IEs) in real time to HAL
  854. * 3 => same as 2 + forward scan results (beacons/probe responses + IEs) in real time to
  855. supplicant as well (optional) . */
  856. UINT_8 ucReportFlag;
  857. UINT_8 ucNumChannels;
  858. UINT_8 aucReserved[3];
  859. WIFI_BAND eBand; /* when UNSPECIFIED, use channel list */
  860. GSCN_CHANNEL_INFO_T arChannelList[GSCAN_MAX_CHANNELS]; /* channels to scan; these may include DFS channels */
  861. } GSCAN_CHANNEL_BUCKET_T, *P_GSCAN_CHANNEL_BUCKET_T;
  862. typedef struct _CMD_GSCN_REQ_T {
  863. UINT_8 ucFlags;
  864. UINT_8 ucNumScnToCache;
  865. UINT_8 aucReserved[2];
  866. UINT_32 u4BufferThreshold;
  867. UINT_32 u4BasePeriod; /* base timer period in ms */
  868. UINT_32 u4NumBuckets;
  869. UINT_32 u4MaxApPerScan; /* number of APs to store in each scan in the
  870. history buffer (keep the highest RSSI APs */
  871. GSCAN_CHANNEL_BUCKET_T arChannelBucket[GSCAN_MAX_BUCKETS];
  872. } CMD_GSCN_REQ_T, *P_CMD_GSCN_REQ_T;
  873. typedef struct _CMD_GSCN_SCN_COFIG_T {
  874. UINT_8 ucNumApPerScn; /* GSCAN_ATTRIBUTE_NUM_AP_PER_SCAN */
  875. UINT_32 u4NumScnToCache; /* GSCAN_ATTRIBUTE_NUM_SCANS_TO_CACHE */
  876. UINT_32 u4BufferThreshold; /* GSCAN_ATTRIBUTE_REPORT_THRESHOLD */
  877. } CMD_GSCN_SCN_COFIG_T, *P_CMD_GSCN_SCN_COFIG_T;
  878. typedef struct _CMD_GET_GSCAN_RESULT {
  879. UINT_8 ucVersion;
  880. UINT_8 aucReserved[2];
  881. UINT_8 ucFlush;
  882. UINT_32 u4Num;
  883. } CMD_GET_GSCAN_RESULT_T, *P_CMD_GET_GSCAN_RESULT_T;
  884. /* Definition for CHANNEL_INFO.ucBand:
  885. * 0: Reserved
  886. * 1: BAND_2G4
  887. * 2: BAND_5G
  888. * Others: Reserved
  889. */
  890. typedef struct _CHANNEL_INFO_T {
  891. UINT_8 ucBand;
  892. UINT_8 ucChannelNum;
  893. } CHANNEL_INFO_T, *P_CHANNEL_INFO_T;
  894. typedef struct _CMD_SCAN_REQ_T {
  895. UINT_8 ucSeqNum;
  896. UINT_8 ucBssIndex;
  897. UINT_8 ucScanType;
  898. UINT_8 ucSSIDType; /* BIT(0) wildcard / BIT(1) P2P-wildcard / BIT(2) specific */
  899. UINT_8 ucSSIDLength;
  900. UINT_8 ucNumProbeReq;
  901. UINT_16 u2ChannelMinDwellTime;
  902. UINT_16 u2ChannelDwellTime;
  903. UINT_16 u2TimeoutValue;
  904. UINT_8 aucSSID[32];
  905. UINT_8 ucChannelType;
  906. UINT_8 ucChannelListNum;
  907. UINT_8 aucReserved[2];
  908. CHANNEL_INFO_T arChannelList[32];
  909. UINT_16 u2IELen;
  910. UINT_8 aucIE[MAX_IE_LENGTH];
  911. } CMD_SCAN_REQ, *P_CMD_SCAN_REQ;
  912. typedef struct _CMD_SCAN_REQ_V2_T {
  913. UINT_8 ucSeqNum;
  914. UINT_8 ucBssIndex;
  915. UINT_8 ucScanType;
  916. UINT_8 ucSSIDType;
  917. UINT_8 ucSSIDNum;
  918. UINT_8 ucNumProbeReq;
  919. UINT_8 aucReserved[2];
  920. PARAM_SSID_T arSSID[4];
  921. UINT_16 u2ProbeDelayTime;
  922. UINT_16 u2ChannelDwellTime;
  923. UINT_16 u2TimeoutValue;
  924. UINT_8 ucChannelType;
  925. UINT_8 ucChannelListNum;
  926. CHANNEL_INFO_T arChannelList[32];
  927. UINT_16 u2IELen;
  928. UINT_8 aucIE[MAX_IE_LENGTH];
  929. } CMD_SCAN_REQ_V2, *P_CMD_SCAN_REQ_V2;
  930. typedef struct _CMD_SCAN_CANCEL_T {
  931. UINT_8 ucSeqNum;
  932. UINT_8 ucIsExtChannel; /* For P2P channel extension. */
  933. UINT_8 aucReserved[2];
  934. } CMD_SCAN_CANCEL, *P_CMD_SCAN_CANCEL;
  935. /* 20150107 Daniel Added complete channels number in the scan done event */
  936. /* before*/
  937. /*
  938. typedef struct _EVENT_SCAN_DONE_T {
  939. UINT_8 ucSeqNum;
  940. UINT_8 ucSparseChannelValid;
  941. CHANNEL_INFO_T rSparseChannel;
  942. } EVENT_SCAN_DONE, *P_EVENT_SCAN_DONE;
  943. */
  944. /* after */
  945. typedef struct _EVENT_SCAN_DONE_T {
  946. UINT_8 ucSeqNum;
  947. UINT_8 ucSparseChannelValid;
  948. CHANNEL_INFO_T rSparseChannel;
  949. /*scan done version #2 */
  950. UINT_8 ucCompleteChanCount;
  951. UINT_8 ucCurrentState;
  952. UINT_8 ucScanDoneVersion;
  953. /*scan done version #3 */
  954. UINT_8 ucReserved;
  955. UINT_32 u4ScanDurBcnCnt;
  956. UINT_8 fgIsPNOenabled;
  957. UINT_8 aucReserving[3];
  958. } EVENT_SCAN_DONE, *P_EVENT_SCAN_DONE;
  959. #if CFG_SUPPORT_BATCH_SCAN
  960. typedef struct _CMD_BATCH_REQ_T {
  961. UINT_8 ucSeqNum;
  962. UINT_8 ucNetTypeIndex;
  963. UINT_8 ucCmd; /* Start/ Stop */
  964. UINT_8 ucMScan; /* an integer number of scans per batch */
  965. UINT_8 ucBestn; /* an integer number of the max AP to remember per scan */
  966. UINT_8 ucRtt; /* an integer number of highest-strength AP for which we'd
  967. like approximate distance reported */
  968. UINT_8 ucChannel; /* channels */
  969. UINT_8 ucChannelType;
  970. UINT_8 ucChannelListNum;
  971. UINT_8 aucReserved[3];
  972. UINT_32 u4Scanfreq; /* an integer number of seconds between scans */
  973. CHANNEL_INFO_T arChannelList[32]; /* channels */
  974. } CMD_BATCH_REQ_T, *P_CMD_BATCH_REQ_T;
  975. typedef struct _EVENT_BATCH_RESULT_ENTRY_T {
  976. UINT_8 aucBssid[MAC_ADDR_LEN];
  977. UINT_8 aucSSID[ELEM_MAX_LEN_SSID];
  978. UINT_8 ucSSIDLen;
  979. INT_8 cRssi;
  980. UINT_32 ucFreq;
  981. UINT_32 u4Age;
  982. UINT_32 u4Dist;
  983. UINT_32 u4Distsd;
  984. } EVENT_BATCH_RESULT_ENTRY_T, *P_EVENT_BATCH_RESULT_ENTRY_T;
  985. typedef struct _EVENT_BATCH_RESULT_T {
  986. UINT_8 ucScanCount;
  987. UINT_8 aucReserved[3];
  988. EVENT_BATCH_RESULT_ENTRY_T arBatchResult[12]; /* Must be the same with SCN_BATCH_STORE_MAX_NUM */
  989. } EVENT_BATCH_RESULT_T, *P_EVENT_BATCH_RESULT_T;
  990. #endif
  991. typedef struct _CMD_CH_PRIVILEGE_T {
  992. UINT_8 ucBssIndex;
  993. UINT_8 ucTokenID;
  994. UINT_8 ucAction;
  995. UINT_8 ucPrimaryChannel;
  996. UINT_8 ucRfSco;
  997. UINT_8 ucRfBand;
  998. UINT_8 ucRfChannelWidth; /* To support 80/160MHz bandwidth */
  999. UINT_8 ucRfCenterFreqSeg1; /* To support 80/160MHz bandwidth */
  1000. UINT_8 ucRfCenterFreqSeg2; /* To support 80/160MHz bandwidth */
  1001. UINT_8 ucReqType;
  1002. UINT_8 aucReserved[2];
  1003. UINT_32 u4MaxInterval; /* In unit of ms */
  1004. } CMD_CH_PRIVILEGE_T, *P_CMD_CH_PRIVILEGE_T;
  1005. typedef struct _CMD_TX_PWR_T {
  1006. INT_8 cTxPwr2G4Cck; /* signed, in unit of 0.5dBm */
  1007. INT_8 cTxPwr2G4Dsss; /* signed, in unit of 0.5dBm */
  1008. INT_8 acReserved[2];
  1009. INT_8 cTxPwr2G4OFDM_BPSK;
  1010. INT_8 cTxPwr2G4OFDM_QPSK;
  1011. INT_8 cTxPwr2G4OFDM_16QAM;
  1012. INT_8 cTxPwr2G4OFDM_Reserved;
  1013. INT_8 cTxPwr2G4OFDM_48Mbps;
  1014. INT_8 cTxPwr2G4OFDM_54Mbps;
  1015. INT_8 cTxPwr2G4HT20_BPSK;
  1016. INT_8 cTxPwr2G4HT20_QPSK;
  1017. INT_8 cTxPwr2G4HT20_16QAM;
  1018. INT_8 cTxPwr2G4HT20_MCS5;
  1019. INT_8 cTxPwr2G4HT20_MCS6;
  1020. INT_8 cTxPwr2G4HT20_MCS7;
  1021. INT_8 cTxPwr2G4HT40_BPSK;
  1022. INT_8 cTxPwr2G4HT40_QPSK;
  1023. INT_8 cTxPwr2G4HT40_16QAM;
  1024. INT_8 cTxPwr2G4HT40_MCS5;
  1025. INT_8 cTxPwr2G4HT40_MCS6;
  1026. INT_8 cTxPwr2G4HT40_MCS7;
  1027. INT_8 cTxPwr5GOFDM_BPSK;
  1028. INT_8 cTxPwr5GOFDM_QPSK;
  1029. INT_8 cTxPwr5GOFDM_16QAM;
  1030. INT_8 cTxPwr5GOFDM_Reserved;
  1031. INT_8 cTxPwr5GOFDM_48Mbps;
  1032. INT_8 cTxPwr5GOFDM_54Mbps;
  1033. INT_8 cTxPwr5GHT20_BPSK;
  1034. INT_8 cTxPwr5GHT20_QPSK;
  1035. INT_8 cTxPwr5GHT20_16QAM;
  1036. INT_8 cTxPwr5GHT20_MCS5;
  1037. INT_8 cTxPwr5GHT20_MCS6;
  1038. INT_8 cTxPwr5GHT20_MCS7;
  1039. INT_8 cTxPwr5GHT40_BPSK;
  1040. INT_8 cTxPwr5GHT40_QPSK;
  1041. INT_8 cTxPwr5GHT40_16QAM;
  1042. INT_8 cTxPwr5GHT40_MCS5;
  1043. INT_8 cTxPwr5GHT40_MCS6;
  1044. INT_8 cTxPwr5GHT40_MCS7;
  1045. } CMD_TX_PWR_T, *P_CMD_TX_PWR_T;
  1046. typedef struct _CMD_TX_AC_PWR_T {
  1047. INT_8 ucBand;
  1048. #if 0
  1049. INT_8 c11AcTxPwr_BPSK;
  1050. INT_8 c11AcTxPwr_QPSK;
  1051. INT_8 c11AcTxPwr_16QAM;
  1052. INT_8 c11AcTxPwr_MCS5_MCS6;
  1053. INT_8 c11AcTxPwr_MCS7;
  1054. INT_8 c11AcTxPwr_MCS8;
  1055. INT_8 c11AcTxPwr_MCS9;
  1056. INT_8 c11AcTxPwrVht40_OFFSET;
  1057. INT_8 c11AcTxPwrVht80_OFFSET;
  1058. INT_8 c11AcTxPwrVht160_OFFSET;
  1059. #else
  1060. AC_PWR_SETTING_STRUCT rAcPwr;
  1061. #endif
  1062. } CMD_TX_AC_PWR_T, *P_CMD_TX_AC_PWR_T;
  1063. typedef struct _CMD_RSSI_PATH_COMPASATION_T {
  1064. INT_8 c2GRssiCompensation;
  1065. INT_8 c5GRssiCompensation;
  1066. } CMD_RSSI_PATH_COMPASATION_T, *P_CMD_RSSI_PATH_COMPASATION_T;
  1067. typedef struct _CMD_5G_PWR_OFFSET_T {
  1068. INT_8 cOffsetBand0; /* 4.915-4.980G */
  1069. INT_8 cOffsetBand1; /* 5.000-5.080G */
  1070. INT_8 cOffsetBand2; /* 5.160-5.180G */
  1071. INT_8 cOffsetBand3; /* 5.200-5.280G */
  1072. INT_8 cOffsetBand4; /* 5.300-5.340G */
  1073. INT_8 cOffsetBand5; /* 5.500-5.580G */
  1074. INT_8 cOffsetBand6; /* 5.600-5.680G */
  1075. INT_8 cOffsetBand7; /* 5.700-5.825G */
  1076. } CMD_5G_PWR_OFFSET_T, *P_CMD_5G_PWR_OFFSET_T;
  1077. typedef struct _CMD_PWR_PARAM_T {
  1078. UINT_32 au4Data[28];
  1079. UINT_32 u4RefValue1;
  1080. UINT_32 u4RefValue2;
  1081. } CMD_PWR_PARAM_T, *P_CMD_PWR_PARAM_T;
  1082. typedef struct _CMD_PHY_PARAM_T {
  1083. UINT_8 aucData[144]; /* eFuse content */
  1084. } CMD_PHY_PARAM_T, *P_CMD_PHY_PARAM_T;
  1085. typedef struct _CMD_AUTO_POWER_PARAM_T {
  1086. UINT_8 ucType; /* 0: Disable 1: Enalbe 0x10: Change parameters */
  1087. UINT_8 ucBssIndex;
  1088. UINT_8 aucReserved[2];
  1089. UINT_8 aucLevelRcpiTh[3];
  1090. UINT_8 aucReserved2[1];
  1091. INT_8 aicLevelPowerOffset[3]; /* signed, in unit of 0.5dBm */
  1092. UINT_8 aucReserved3[1];
  1093. UINT_8 aucReserved4[8];
  1094. } CMD_AUTO_POWER_PARAM_T, *P_CMD_AUTO_POWER_PARAM_T;
  1095. typedef struct _EVENT_CH_PRIVILEGE_T {
  1096. UINT_8 ucBssIndex;
  1097. UINT_8 ucTokenID;
  1098. UINT_8 ucStatus;
  1099. UINT_8 ucPrimaryChannel;
  1100. UINT_8 ucRfSco;
  1101. UINT_8 ucRfBand;
  1102. UINT_8 ucRfChannelWidth; /* To support 80/160MHz bandwidth */
  1103. UINT_8 ucRfCenterFreqSeg1; /* To support 80/160MHz bandwidth */
  1104. UINT_8 ucRfCenterFreqSeg2; /* To support 80/160MHz bandwidth */
  1105. UINT_8 ucReqType;
  1106. UINT_8 aucReserved[2];
  1107. UINT_32 u4GrantInterval; /* In unit of ms */
  1108. } EVENT_CH_PRIVILEGE_T, *P_EVENT_CH_PRIVILEGE_T;
  1109. typedef struct _EVENT_BSS_BEACON_TIMEOUT_T {
  1110. UINT_8 ucBssIndex;
  1111. UINT_8 ucReasonCode;
  1112. UINT_8 aucReserved[2];
  1113. } EVENT_BSS_BEACON_TIMEOUT_T, *P_EVENT_BSS_BEACON_TIMEOUT_T;
  1114. typedef struct _EVENT_STA_AGING_TIMEOUT_T {
  1115. UINT_8 ucStaRecIdx;
  1116. UINT_8 aucReserved[3];
  1117. } EVENT_STA_AGING_TIMEOUT_T, *P_EVENT_STA_AGING_TIMEOUT_T;
  1118. typedef struct _EVENT_NOA_TIMING_T {
  1119. UINT_8 ucIsInUse; /* Indicate if this entry is in use or not */
  1120. UINT_8 ucCount; /* Count */
  1121. UINT_8 aucReserved[2];
  1122. UINT_32 u4Duration; /* Duration */
  1123. UINT_32 u4Interval; /* Interval */
  1124. UINT_32 u4StartTime; /* Start Time */
  1125. } EVENT_NOA_TIMING_T, *P_EVENT_NOA_TIMING_T;
  1126. typedef struct _EVENT_UPDATE_NOA_PARAMS_T {
  1127. UINT_8 ucBssIndex;
  1128. UINT_8 aucReserved[2];
  1129. UINT_8 ucEnableOppPS;
  1130. UINT_16 u2CTWindow;
  1131. UINT_8 ucNoAIndex;
  1132. UINT_8 ucNoATimingCount; /* Number of NoA Timing */
  1133. EVENT_NOA_TIMING_T arEventNoaTiming[8 /*P2P_MAXIMUM_NOA_COUNT */];
  1134. } EVENT_UPDATE_NOA_PARAMS_T, *P_EVENT_UPDATE_NOA_PARAMS_T;
  1135. typedef struct _EVENT_AP_OBSS_STATUS_T {
  1136. UINT_8 ucBssIndex;
  1137. UINT_8 ucObssErpProtectMode;
  1138. UINT_8 ucObssHtProtectMode;
  1139. UINT_8 ucObssGfOperationMode;
  1140. UINT_8 ucObssRifsOperationMode;
  1141. UINT_8 ucObssBeaconForcedTo20M;
  1142. UINT_8 aucReserved[2];
  1143. } EVENT_AP_OBSS_STATUS_T, *P_EVENT_AP_OBSS_STATUS_T;
  1144. typedef struct _EVENT_DEBUG_MSG_T {
  1145. UINT_16 u2DebugMsgId;
  1146. UINT_8 ucMsgType;
  1147. UINT_8 ucFlags; /* unused */
  1148. UINT_32 u4Value; /* memory addre or ... */
  1149. UINT_16 u2MsgSize;
  1150. UINT_8 aucReserved0[2];
  1151. UINT_8 aucMsg[1];
  1152. } EVENT_DEBUG_MSG_T, *P_EVENT_DEBUG_MSG_T;
  1153. typedef struct _CMD_EDGE_TXPWR_LIMIT_T {
  1154. INT_8 cBandEdgeMaxPwrCCK;
  1155. INT_8 cBandEdgeMaxPwrOFDM20;
  1156. INT_8 cBandEdgeMaxPwrOFDM40;
  1157. INT_8 cBandEdgeMaxPwrOFDM80;
  1158. } CMD_EDGE_TXPWR_LIMIT_T, *P_CMD_EDGE_TXPWR_LIMIT_T;
  1159. typedef struct _CMD_POWER_OFFSET_T {
  1160. UINT_8 ucBand; /*1:2.4G ; 2:5G */
  1161. UINT_8 ucSubBandOffset[MAX_SUBBAND_NUM_5G]; /*the max num subband is 5G, devide with 8 subband */
  1162. UINT_8 aucReverse[3];
  1163. } CMD_POWER_OFFSET_T, *P_CMD_POWER_OFFSET_T;
  1164. typedef struct _CMD_NVRAM_SETTING_T {
  1165. WIFI_CFG_PARAM_STRUCT rNvramSettings;
  1166. } CMD_NVRAM_SETTING_T, *P_CMD_NVRAM_SETTING_T;
  1167. #if CFG_SUPPORT_TDLS
  1168. typedef struct _CMD_TDLS_CH_SW_T {
  1169. BOOLEAN fgIsTDLSChSwProhibit;
  1170. } CMD_TDLS_CH_SW_T, *P_CMD_TDLS_CH_SW_T;
  1171. #endif
  1172. typedef struct _CMD_SET_DEVICE_MODE_T {
  1173. UINT_16 u2ChipID;
  1174. UINT_16 u2Mode;
  1175. } CMD_SET_DEVICE_MODE_T, *P_CMD_SET_DEVICE_MODE_T;
  1176. #if CFG_SUPPORT_RDD_TEST_MODE
  1177. typedef struct _CMD_RDD_CH_T {
  1178. UINT_8 ucRddTestMode;
  1179. UINT_8 ucRddShutCh;
  1180. UINT_8 ucRddStartCh;
  1181. UINT_8 ucRddStopCh;
  1182. UINT_8 ucRddDfs;
  1183. UINT_8 ucReserved;
  1184. UINT_8 ucReserved1;
  1185. UINT_8 ucReserved2;
  1186. } CMD_RDD_CH_T, *P_CMD_RDD_CH_T;
  1187. typedef struct _EVENT_RDD_STATUS_T {
  1188. UINT_8 ucRddStatus;
  1189. UINT_8 aucReserved[3];
  1190. } EVENT_RDD_STATUS_T, *P_EVENT_RDD_STATUS_T;
  1191. #endif
  1192. typedef struct _EVENT_ICAP_STATUS_T {
  1193. UINT_8 ucRddStatus;
  1194. UINT_8 aucReserved[3];
  1195. UINT_32 u4StartAddress;
  1196. UINT_32 u4IcapSieze;
  1197. } EVENT_ICAP_STATUS_T, *P_EVENT_ICAP_STATUS_T;
  1198. typedef struct _CMD_SET_TXPWR_CTRL_T {
  1199. INT_8 c2GLegacyStaPwrOffset; /* Unit: 0.5dBm, default: 0 */
  1200. INT_8 c2GHotspotPwrOffset;
  1201. INT_8 c2GP2pPwrOffset;
  1202. INT_8 c2GBowPwrOffset;
  1203. INT_8 c5GLegacyStaPwrOffset; /* Unit: 0.5dBm, default: 0 */
  1204. INT_8 c5GHotspotPwrOffset;
  1205. INT_8 c5GP2pPwrOffset;
  1206. INT_8 c5GBowPwrOffset;
  1207. UINT_8 ucConcurrencePolicy; /* TX power policy when concurrence
  1208. in the same channel
  1209. 0: Highest power has priority
  1210. 1: Lowest power has priority */
  1211. INT_8 acReserved1[3]; /* Must be zero */
  1212. /* Power limit by channel for all data rates */
  1213. INT_8 acTxPwrLimit2G[14]; /* Channel 1~14, Unit: 0.5dBm */
  1214. INT_8 acTxPwrLimit5G[4]; /* UNII 1~4 */
  1215. INT_8 acReserved2[2]; /* Must be zero */
  1216. } CMD_SET_TXPWR_CTRL_T, *P_CMD_SET_TXPWR_CTRL_T;
  1217. typedef enum _ENUM_NLO_CIPHER_ALGORITHM {
  1218. NLO_CIPHER_ALGO_NONE = 0x00,
  1219. NLO_CIPHER_ALGO_WEP40 = 0x01,
  1220. NLO_CIPHER_ALGO_TKIP = 0x02,
  1221. NLO_CIPHER_ALGO_CCMP = 0x04,
  1222. NLO_CIPHER_ALGO_WEP104 = 0x05,
  1223. NLO_CIPHER_ALGO_WPA_USE_GROUP = 0x100,
  1224. NLO_CIPHER_ALGO_RSN_USE_GROUP = 0x100,
  1225. NLO_CIPHER_ALGO_WEP = 0x101,
  1226. } ENUM_NLO_CIPHER_ALGORITHM, *P_ENUM_NLO_CIPHER_ALGORITHM;
  1227. typedef enum _ENUM_NLO_AUTH_ALGORITHM {
  1228. NLO_AUTH_ALGO_80211_OPEN = 1,
  1229. NLO_AUTH_ALGO_80211_SHARED_KEY = 2,
  1230. NLO_AUTH_ALGO_WPA = 3,
  1231. NLO_AUTH_ALGO_WPA_PSK = 4,
  1232. NLO_AUTH_ALGO_WPA_NONE = 5,
  1233. NLO_AUTH_ALGO_RSNA = 6,
  1234. NLO_AUTH_ALGO_RSNA_PSK = 7,
  1235. } ENUM_NLO_AUTH_ALGORITHM, *P_ENUM_NLO_AUTH_ALGORITHM;
  1236. typedef struct _NLO_NETWORK {
  1237. UINT_8 ucNumChannelHint[4];
  1238. UINT_8 ucSSIDLength;
  1239. UINT_8 ucCipherAlgo;
  1240. UINT_16 u2AuthAlgo;
  1241. UINT_8 aucSSID[32];
  1242. } NLO_NETWORK, *P_NLO_NETWORK;
  1243. typedef struct _CMD_NLO_REQ {
  1244. UINT_8 ucSeqNum;
  1245. UINT_8 ucBssIndex;
  1246. UINT_8 fgStopAfterIndication;
  1247. UINT_8 ucFastScanIteration;
  1248. UINT_16 u2FastScanPeriod;
  1249. UINT_16 u2SlowScanPeriod;
  1250. UINT_8 ucEntryNum;
  1251. UINT_8 ucFlag; /* BIT(0) Check cipher */
  1252. UINT_16 u2IELen;
  1253. NLO_NETWORK arNetworkList[16];
  1254. UINT_8 aucIE[0];
  1255. } CMD_NLO_REQ, *P_CMD_NLO_REQ;
  1256. typedef struct _CMD_NLO_CANCEL_T {
  1257. UINT_8 ucSeqNum;
  1258. UINT_8 ucBssIndex;
  1259. UINT_8 aucReserved[2];
  1260. } CMD_NLO_CANCEL, *P_CMD_NLO_CANCEL;
  1261. typedef struct _EVENT_NLO_DONE_T {
  1262. UINT_8 ucSeqNum;
  1263. UINT_8 ucStatus;
  1264. UINT_8 aucReserved[2];
  1265. } EVENT_NLO_DONE_T, *P_EVENT_NLO_DONE_T;
  1266. #if CFG_SUPPORT_BUILD_DATE_CODE
  1267. typedef struct _CMD_GET_BUILD_DATE_CODE {
  1268. UINT_8 aucReserved[4];
  1269. } CMD_GET_BUILD_DATE_CODE, *P_CMD_GET_BUILD_DATE_CODE;
  1270. typedef struct _EVENT_BUILD_DATE_CODE {
  1271. UINT_8 aucDateCode[16];
  1272. } EVENT_BUILD_DATE_CODE, *P_EVENT_BUILD_DATE_CODE;
  1273. #endif
  1274. typedef struct _CMD_GET_STA_STATISTICS_T {
  1275. UINT_8 ucIndex;
  1276. UINT_8 ucFlags;
  1277. UINT_8 ucReadClear;
  1278. UINT_8 ucLlsReadClear;
  1279. UINT_8 aucMacAddr[MAC_ADDR_LEN];
  1280. UINT_8 aucReserved1[2];
  1281. UINT_8 aucReserved2[16];
  1282. } CMD_GET_STA_STATISTICS_T, *P_CMD_GET_STA_STATISTICS_T;
  1283. /* per access category statistics */
  1284. typedef struct _WIFI_WMM_AC_STAT_GET_FROM_FW_T {
  1285. UINT_32 u4TxFailMsdu;
  1286. UINT_32 u4TxRetryMsdu;
  1287. } WIFI_WMM_AC_STAT_GET_FROM_FW_T, *P_WIFI_WMM_AC_STAT_GET_FROM_FW_T;
  1288. /* CFG_SUPPORT_WFD */
  1289. typedef struct _EVENT_STA_STATISTICS_T {
  1290. /* Event header */
  1291. /* UINT_16 u2Length; */
  1292. /* UINT_16 u2Reserved1; *//* Must be filled with 0x0001 (EVENT Packet) */
  1293. /* UINT_8 ucEID; */
  1294. /* UINT_8 ucSeqNum; */
  1295. /* UINT_8 aucReserved2[2]; */
  1296. /* Event Body */
  1297. UINT_8 ucVersion;
  1298. UINT_8 aucReserved1[3];
  1299. UINT_32 u4Flags; /* Bit0: valid */
  1300. UINT_8 ucStaRecIdx;
  1301. UINT_8 ucNetworkTypeIndex;
  1302. UINT_8 ucWTEntry;
  1303. UINT_8 aucReserved4[1];
  1304. UINT_8 ucMacAddr[MAC_ADDR_LEN];
  1305. UINT_8 ucPer; /* base: 128 */
  1306. UINT_8 ucRcpi;
  1307. UINT_32 u4PhyMode; /* SGI BW */
  1308. UINT_16 u2LinkSpeed; /* unit is 0.5 Mbits */
  1309. UINT_8 ucLinkQuality;
  1310. UINT_8 ucLinkReserved;
  1311. UINT_32 u4TxCount;
  1312. UINT_32 u4TxFailCount;
  1313. UINT_32 u4TxLifeTimeoutCount;
  1314. UINT_32 u4TxDoneAirTime;
  1315. UINT_32 u4TransmitCount; /* Transmit in the air (wtbl) */
  1316. UINT_32 u4TransmitFailCount; /* Transmit without ack/ba in the air (wtbl) */
  1317. WIFI_WMM_AC_STAT_GET_FROM_FW_T arLinkStatistics[AC_NUM]; /*link layer statistics */
  1318. UINT_8 aucReserved[24];
  1319. } EVENT_STA_STATISTICS_T, *P_EVENT_STA_STATISTICS_T;
  1320. #if CFG_AUTO_CHANNEL_SEL_SUPPORT
  1321. /* 4 Auto Channel Selection */
  1322. typedef struct _CMD_GET_CHN_LOAD_T {
  1323. UINT_8 ucIndex;
  1324. UINT_8 ucFlags;
  1325. UINT_8 ucReadClear;
  1326. UINT_8 aucReserved0[1];
  1327. UINT_8 ucChannel;
  1328. UINT_16 u2ChannelLoad;
  1329. UINT_8 aucReserved1[1];
  1330. UINT_8 aucReserved2[16];
  1331. } CMD_GET_CHN_LOAD_T, *P_CMD_GET_CHN_LOAD_T;
  1332. /* 4 Auto Channel Selection */
  1333. typedef struct _EVENT_CHN_LOAD_T {
  1334. /* Event Body */
  1335. UINT_8 ucVersion;
  1336. UINT_8 aucReserved1[3];
  1337. UINT_32 u4Flags; /* Bit0: valid */
  1338. UINT_8 ucChannel;
  1339. UINT_16 u2ChannelLoad;
  1340. UINT_8 aucReserved4[1];
  1341. UINT_8 aucReserved[64];
  1342. } EVENT_CHN_LOAD_T, *P_EVENT_CHN_LOAD_T;
  1343. typedef struct _CMD_GET_LTE_SAFE_CHN_T {
  1344. UINT_8 ucIndex;
  1345. UINT_8 ucFlags;
  1346. UINT_8 aucReserved0[2];
  1347. UINT_8 aucReserved2[16];
  1348. } CMD_GET_LTE_SAFE_CHN_T, *P_CMD_GET_LTE_SAFE_CHN_T;
  1349. typedef struct _EVENT_LTE_MODE_T {
  1350. /* Event Body */
  1351. UINT_8 ucVersion;
  1352. UINT_8 aucReserved1[3];
  1353. UINT_32 u4Flags; /* Bit0: valid */
  1354. LTE_SAFE_CH_INFO_T rLteSafeChn;
  1355. } EVENT_LTE_MODE_T, *P_EVENT_LTE_MODE_T;
  1356. #endif
  1357. #if CFG_SUPPORT_SNIFFER
  1358. typedef struct _CMD_MONITOR_SET_INFO_T {
  1359. UINT_8 ucEnable;
  1360. UINT_8 ucBand;
  1361. UINT_8 ucPriChannel;
  1362. UINT_8 ucSco;
  1363. UINT_8 ucChannelWidth;
  1364. UINT_8 ucChannelS1;
  1365. UINT_8 ucChannelS2;
  1366. UINT_8 aucResv[9];
  1367. } CMD_MONITOR_SET_INFO_T, *P_CMD_MONITOR_SET_INFO_T;
  1368. #endif
  1369. typedef struct _CMD_STATS_LOG_T {
  1370. UINT_32 u4DurationInMs;
  1371. UINT_8 aucReserved[32];
  1372. } CMD_STATS_LOG_T, *P_CMD_STATS_LOG_T;
  1373. typedef struct _EVENT_GSCAN_CAPABILITY_T {
  1374. UINT_8 ucVersion;
  1375. UINT_8 aucReserved1[3];
  1376. UINT_32 u4MaxScanCacheSize;
  1377. UINT_32 u4MaxScanBuckets;
  1378. UINT_32 u4MaxApCachePerScan;
  1379. UINT_32 u4MaxRssiSampleSize;
  1380. UINT_32 u4MaxScanReportingThreshold;
  1381. UINT_32 u4MaxHotlistAps;
  1382. UINT_32 u4MaxSignificantWifiChangeAps;
  1383. UINT_32 au4Reserved[4];
  1384. } EVENT_GSCAN_CAPABILITY_T, *P_EVENT_GSCAN_CAPABILITY_T;
  1385. typedef struct _EVENT_GSCAN_SCAN_AVAILABLE_T {
  1386. UINT_16 u2Num;
  1387. UINT_8 aucReserved[2];
  1388. } EVENT_GSCAN_SCAN_AVAILABLE_T, *P_EVENT_GSCAN_SCAN_AVAILABLE_T;
  1389. typedef struct _EVENT_GSCAN_SCAN_COMPLETE_T {
  1390. UINT_8 ucScanState;
  1391. UINT_8 aucReserved[3];
  1392. } EVENT_GSCAN_SCAN_COMPLETE_T, *P_EVENT_GSCAN_SCAN_COMPLETE_T;
  1393. typedef struct WIFI_GSCAN_RESULT {
  1394. UINT_64 u8Ts; /* Time of discovery */
  1395. UINT_8 arSsid[ELEM_MAX_LEN_SSID + 1]; /* null terminated */
  1396. UINT_8 arMacAddr[6]; /* BSSID */
  1397. UINT_32 u4Channel; /* channel frequency in MHz */
  1398. INT_32 i4Rssi; /* in db */
  1399. UINT_64 u8Rtt; /* in nanoseconds */
  1400. UINT_64 u8RttSd; /* standard deviation in rtt */
  1401. UINT_16 u2BeaconPeriod; /* units are Kusec */
  1402. UINT_16 u2Capability; /* Capability information */
  1403. UINT_32 u4IeLength; /* byte length of Information Elements */
  1404. UINT_8 ucIeData[1]; /* IE data to follow */
  1405. } WIFI_GSCAN_RESULT_T, *P_WIFI_GSCAN_RESULT_T;
  1406. typedef struct _EVENT_GSCAN_RESULT_T {
  1407. UINT_8 ucVersion;
  1408. UINT_8 aucReserved[3];
  1409. UINT_16 u2ScanId;
  1410. UINT_16 u2ScanFlags;
  1411. UINT_16 u2NumOfResults;
  1412. WIFI_GSCAN_RESULT_T rResult[1];
  1413. } EVENT_GSCAN_RESULT_T, *P_EVENT_GSCAN_RESULT_T;
  1414. typedef struct _EVENT_GSCAN_FULL_RESULT_T {
  1415. UINT_8 ucVersion;
  1416. UINT_8 aucReserved[3];
  1417. WIFI_GSCAN_RESULT_T rResult;
  1418. } EVENT_GSCAN_FULL_RESULT_T, *P_EVENT_GSCAN_FULL_RESULT_T;
  1419. typedef struct GSCAN_SWC_NET {
  1420. UINT_16 u2Flags;
  1421. UINT_16 u2Channel;
  1422. UINT_8 arBssid[6];
  1423. INT_8 aicRssi[SCN_PSCAN_SWC_RSSI_WIN_MAX];
  1424. } GSCAN_SWC_NET_T, P_GSCAN_SWC_NET_T;
  1425. typedef struct _EVENT_GSCAN_SIGNIFICANT_CHANGE_T {
  1426. UINT_8 ucVersion;
  1427. UINT_8 aucReserved[3];
  1428. GSCAN_SWC_NET_T arNet[SCN_PSCAN_SWC_MAX_NUM];
  1429. } EVENT_GSCAN_SIGNIFICANT_CHANGE_T, *P_EVENT_GSCAN_SIGNIFICANT_CHANGE_T;
  1430. typedef struct _EVENT_GSCAN_GEOFENCE_FOUND_T {
  1431. UINT_8 ucVersion;
  1432. UINT_8 aucReserved[3];
  1433. WIFI_GSCAN_RESULT_T rResult[SCN_PSCAN_HOTLIST_REPORT_MAX_NUM];
  1434. } EVENT_GSCAN_GEOFENCE_FOUND_T, *P_EVENT_GSCAN_GEOFENCE_FOUND_T;
  1435. typedef struct _CMD_SET_PSCAN_PARAM {
  1436. UINT_8 ucVersion;
  1437. CMD_NLO_REQ rCmdNloReq;
  1438. CMD_BATCH_REQ_T rCmdBatchReq;
  1439. CMD_GSCN_REQ_T rCmdGscnReq;
  1440. BOOLEAN fgNLOScnEnable;
  1441. BOOLEAN fgBatchScnEnable;
  1442. BOOLEAN fgGScnEnable;
  1443. UINT_32 u4BasePeriod;
  1444. } CMD_SET_PSCAN_PARAM, *P_CMD_SET_PSCAN_PARAM;
  1445. typedef struct _CMD_SET_PSCAN_ADD_HOTLIST_BSSID {
  1446. UINT_8 aucMacAddr[6];
  1447. UINT_8 ucFlags;
  1448. UINT_8 aucReserved[5];
  1449. } CMD_SET_PSCAN_ADD_HOTLIST_BSSID, *P_CMD_SET_PSCAN_ADD_HOTLIST_BSSID;
  1450. typedef struct _CMD_SET_PSCAN_ADD_SWC_BSSID {
  1451. INT_32 i4RssiLowThreshold;
  1452. INT_32 i4RssiHighThreshold;
  1453. UINT_8 aucMacAddr[6];
  1454. UINT_8 aucReserved[6];
  1455. } CMD_SET_PSCAN_ADD_SWC_BSSID, *P_CMD_SET_PSCAN_ADD_SWC_BSSID;
  1456. typedef struct _CMD_SET_PSCAN_MAC_ADDR {
  1457. UINT_8 ucVersion;
  1458. UINT_8 ucFlags;
  1459. UINT_8 aucMacAddr[6];
  1460. UINT_8 aucReserved[8];
  1461. } CMD_SET_PSCAN_MAC_ADDR, *P_CMD_SET_PSCAN_MAC_ADDR;
  1462. /*******************************************************************************
  1463. * P U B L I C D A T A
  1464. ********************************************************************************
  1465. */
  1466. /*******************************************************************************
  1467. * P R I V A T E D A T A
  1468. ********************************************************************************
  1469. */
  1470. /*******************************************************************************
  1471. * M A C R O S
  1472. ********************************************************************************
  1473. */
  1474. /*******************************************************************************
  1475. * F U N C T I O N D E C L A R A T I O N S
  1476. ********************************************************************************
  1477. */
  1478. VOID nicCmdEventQueryMcrRead(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1479. VOID nicEventQueryMemDump(IN P_ADAPTER_T prAdapter, IN PUINT_8 pucEventBuf);
  1480. VOID nicCmdEventQueryMemDump(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1481. VOID nicCmdEventQuerySwCtrlRead(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1482. VOID nicCmdEventQueryChipConfig(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1483. VOID nicCmdEventQueryRfTestATInfo(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1484. VOID nicCmdEventSetCommon(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1485. VOID nicCmdEventSetDisassociate(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1486. VOID nicCmdEventSetIpAddress(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1487. VOID nicCmdEventQueryLinkQuality(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1488. VOID nicCmdEventQueryLinkSpeed(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1489. VOID nicCmdEventQueryStatistics(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1490. VOID nicCmdEventEnterRfTest(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1491. VOID nicCmdEventLeaveRfTest(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1492. VOID nicCmdEventQueryMcastAddr(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1493. VOID nicCmdEventQueryEepromRead(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1494. VOID nicCmdEventSetMediaStreamMode(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1495. VOID nicCmdEventSetStopSchedScan(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1496. /* Statistics responder */
  1497. VOID nicCmdEventQueryXmitOk(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1498. VOID nicCmdEventQueryRecvOk(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1499. VOID nicCmdEventQueryXmitError(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1500. VOID nicCmdEventQueryRecvError(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1501. VOID nicCmdEventQueryRecvNoBuffer(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1502. VOID nicCmdEventQueryRecvCrcError(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1503. VOID nicCmdEventQueryRecvErrorAlignment(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1504. VOID nicCmdEventQueryXmitOneCollision(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1505. VOID nicCmdEventQueryXmitMoreCollisions(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1506. VOID nicCmdEventQueryXmitMaxCollisions(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1507. /* for timeout check */
  1508. VOID nicOidCmdTimeoutCommon(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo);
  1509. VOID nicCmdTimeoutCommon(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo);
  1510. VOID nicOidCmdEnterRFTestTimeout(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo);
  1511. #if CFG_SUPPORT_BUILD_DATE_CODE
  1512. VOID nicCmdEventBuildDateCode(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1513. #endif
  1514. VOID nicCmdEventQueryStaStatistics(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1515. #if CFG_AUTO_CHANNEL_SEL_SUPPORT
  1516. /* 4 Auto Channel Selection */
  1517. VOID nicCmdEventQueryChannelLoad(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1518. VOID nicCmdEventQueryLTESafeChn(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1519. #endif
  1520. #if CFG_SUPPORT_BATCH_SCAN
  1521. VOID nicCmdEventBatchScanResult(IN P_ADAPTER_T prAdapter, IN P_CMD_INFO_T prCmdInfo, IN PUINT_8 pucEventBuf);
  1522. #endif
  1523. /*******************************************************************************
  1524. * F U N C T I O N S
  1525. ********************************************************************************
  1526. */
  1527. #endif /* _NIC_CMD_EVENT_H */