1 //------------------------------------------------------------------------------ 2 // <copyright file="wmi_api.h" company="Atheros"> 3 // Copyright (c) 2004-2010 Atheros Corporation. All rights reserved. 4 // 5 // 6 // Permission to use, copy, modify, and/or distribute this software for any 7 // purpose with or without fee is hereby granted, provided that the above 8 // copyright notice and this permission notice appear in all copies. 9 // 10 // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 11 // WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 12 // MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 13 // ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 14 // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 15 // ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 16 // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 // 18 // 19 //------------------------------------------------------------------------------ 20 //============================================================================== 21 // This file contains the definitions for the Wireless Module Interface (WMI). 22 // 23 // Author(s): ="Atheros" 24 //============================================================================== 25 #ifndef _WMI_API_H_ 26 #define _WMI_API_H_ 27 28 #ifdef __cplusplus 29 extern "C" { 30 #endif 31 32 /* WMI converts a dix frame with an ethernet payload (up to 1500 bytes) 33 * to an 802.3 frame (adds SNAP header) and adds on a WMI data header */ 34 #define WMI_MAX_TX_DATA_FRAME_LENGTH (1500 + sizeof(WMI_DATA_HDR) + sizeof(ATH_MAC_HDR) + sizeof(ATH_LLC_SNAP_HDR)) 35 36 /* A normal WMI data frame */ 37 #define WMI_MAX_NORMAL_RX_DATA_FRAME_LENGTH (1500 + sizeof(WMI_DATA_HDR) + sizeof(ATH_MAC_HDR) + sizeof(ATH_LLC_SNAP_HDR)) 38 39 /* An AMSDU frame */ /* The MAX AMSDU length of AR6003 is 3839 */ 40 #define WMI_MAX_AMSDU_RX_DATA_FRAME_LENGTH (3840 + sizeof(WMI_DATA_HDR) + sizeof(ATH_MAC_HDR) + sizeof(ATH_LLC_SNAP_HDR)) 41 42 /* 43 * IP QoS Field definitions according to 802.1p 44 */ 45 #define BEST_EFFORT_PRI 0 46 #define BACKGROUND_PRI 1 47 #define EXCELLENT_EFFORT_PRI 3 48 #define CONTROLLED_LOAD_PRI 4 49 #define VIDEO_PRI 5 50 #define VOICE_PRI 6 51 #define NETWORK_CONTROL_PRI 7 52 #define MAX_NUM_PRI 8 53 54 #define UNDEFINED_PRI (0xff) 55 56 #define WMI_IMPLICIT_PSTREAM_INACTIVITY_INT 5000 /* 5 seconds */ 57 58 #define A_ROUND_UP(x, y) ((((x) + ((y) - 1)) / (y)) * (y)) 59 60 typedef enum { 61 ATHEROS_COMPLIANCE = 0x1, 62 }TSPEC_PARAM_COMPLIANCE; 63 64 struct wmi_t; 65 66 void *wmi_init(void *devt); 67 68 void wmi_qos_state_init(struct wmi_t *wmip); 69 void wmi_shutdown(struct wmi_t *wmip); 70 HTC_ENDPOINT_ID wmi_get_control_ep(struct wmi_t * wmip); 71 void wmi_set_control_ep(struct wmi_t * wmip, HTC_ENDPOINT_ID eid); 72 u16 wmi_get_mapped_qos_queue(struct wmi_t *, u8 ); 73 int wmi_dix_2_dot3(struct wmi_t *wmip, void *osbuf); 74 int wmi_data_hdr_add(struct wmi_t *wmip, void *osbuf, u8 msgType, bool bMoreData, WMI_DATA_HDR_DATA_TYPE data_type,u8 metaVersion, void *pTxMetaS); 75 int wmi_dot3_2_dix(void *osbuf); 76 77 int wmi_dot11_hdr_remove (struct wmi_t *wmip, void *osbuf); 78 int wmi_dot11_hdr_add(struct wmi_t *wmip, void *osbuf, NETWORK_TYPE mode); 79 80 int wmi_data_hdr_remove(struct wmi_t *wmip, void *osbuf); 81 int wmi_syncpoint(struct wmi_t *wmip); 82 int wmi_syncpoint_reset(struct wmi_t *wmip); 83 u8 wmi_implicit_create_pstream(struct wmi_t *wmip, void *osbuf, u32 layer2Priority, bool wmmEnabled); 84 85 u8 wmi_determine_userPriority (u8 *pkt, u32 layer2Pri); 86 87 int wmi_control_rx(struct wmi_t *wmip, void *osbuf); 88 void wmi_iterate_nodes(struct wmi_t *wmip, wlan_node_iter_func *f, void *arg); 89 void wmi_free_allnodes(struct wmi_t *wmip); 90 bss_t *wmi_find_node(struct wmi_t *wmip, const u8 *macaddr); 91 void wmi_free_node(struct wmi_t *wmip, const u8 *macaddr); 92 93 94 typedef enum { 95 NO_SYNC_WMIFLAG = 0, 96 SYNC_BEFORE_WMIFLAG, /* transmit all queued data before cmd */ 97 SYNC_AFTER_WMIFLAG, /* any new data waits until cmd execs */ 98 SYNC_BOTH_WMIFLAG, 99 END_WMIFLAG /* end marker */ 100 } WMI_SYNC_FLAG; 101 102 int wmi_cmd_send(struct wmi_t *wmip, void *osbuf, WMI_COMMAND_ID cmdId, 103 WMI_SYNC_FLAG flag); 104 105 int wmi_connect_cmd(struct wmi_t *wmip, 106 NETWORK_TYPE netType, 107 DOT11_AUTH_MODE dot11AuthMode, 108 AUTH_MODE authMode, 109 CRYPTO_TYPE pairwiseCrypto, 110 u8 pairwiseCryptoLen, 111 CRYPTO_TYPE groupCrypto, 112 u8 groupCryptoLen, 113 int ssidLength, 114 u8 *ssid, 115 u8 *bssid, 116 u16 channel, 117 u32 ctrl_flags); 118 119 int wmi_reconnect_cmd(struct wmi_t *wmip, 120 u8 *bssid, 121 u16 channel); 122 int wmi_disconnect_cmd(struct wmi_t *wmip); 123 int wmi_getrev_cmd(struct wmi_t *wmip); 124 int wmi_startscan_cmd(struct wmi_t *wmip, WMI_SCAN_TYPE scanType, 125 u32 forceFgScan, u32 isLegacy, 126 u32 homeDwellTime, u32 forceScanInterval, 127 s8 numChan, u16 *channelList); 128 int wmi_scanparams_cmd(struct wmi_t *wmip, u16 fg_start_sec, 129 u16 fg_end_sec, u16 bg_sec, 130 u16 minact_chdw_msec, 131 u16 maxact_chdw_msec, u16 pas_chdw_msec, 132 u8 shScanRatio, u8 scanCtrlFlags, 133 u32 max_dfsch_act_time, 134 u16 maxact_scan_per_ssid); 135 int wmi_bssfilter_cmd(struct wmi_t *wmip, u8 filter, u32 ieMask); 136 int wmi_probedSsid_cmd(struct wmi_t *wmip, u8 index, u8 flag, 137 u8 ssidLength, u8 *ssid); 138 int wmi_listeninterval_cmd(struct wmi_t *wmip, u16 listenInterval, u16 listenBeacons); 139 int wmi_bmisstime_cmd(struct wmi_t *wmip, u16 bmisstime, u16 bmissbeacons); 140 int wmi_associnfo_cmd(struct wmi_t *wmip, u8 ieType, 141 u8 ieLen, u8 *ieInfo); 142 int wmi_powermode_cmd(struct wmi_t *wmip, u8 powerMode); 143 int wmi_ibsspmcaps_cmd(struct wmi_t *wmip, u8 pmEnable, u8 ttl, 144 u16 atim_windows, u16 timeout_value); 145 int wmi_apps_cmd(struct wmi_t *wmip, u8 psType, u32 idle_time, 146 u32 ps_period, u8 sleep_period); 147 int wmi_pmparams_cmd(struct wmi_t *wmip, u16 idlePeriod, 148 u16 psPollNum, u16 dtimPolicy, 149 u16 wakup_tx_policy, u16 num_tx_to_wakeup, 150 u16 ps_fail_event_policy); 151 int wmi_disctimeout_cmd(struct wmi_t *wmip, u8 timeout); 152 int wmi_sync_cmd(struct wmi_t *wmip, u8 syncNumber); 153 int wmi_create_pstream_cmd(struct wmi_t *wmip, WMI_CREATE_PSTREAM_CMD *pstream); 154 int wmi_delete_pstream_cmd(struct wmi_t *wmip, u8 trafficClass, u8 streamID); 155 int wmi_set_framerate_cmd(struct wmi_t *wmip, u8 bEnable, u8 type, u8 subType, u16 rateMask); 156 int wmi_set_bitrate_cmd(struct wmi_t *wmip, s32 dataRate, s32 mgmtRate, s32 ctlRate); 157 int wmi_get_bitrate_cmd(struct wmi_t *wmip); 158 s8 wmi_validate_bitrate(struct wmi_t *wmip, s32 rate, s8 *rate_idx); 159 int wmi_get_regDomain_cmd(struct wmi_t *wmip); 160 int wmi_get_channelList_cmd(struct wmi_t *wmip); 161 int wmi_set_channelParams_cmd(struct wmi_t *wmip, u8 scanParam, 162 WMI_PHY_MODE mode, s8 numChan, 163 u16 *channelList); 164 165 int wmi_set_snr_threshold_params(struct wmi_t *wmip, 166 WMI_SNR_THRESHOLD_PARAMS_CMD *snrCmd); 167 int wmi_set_rssi_threshold_params(struct wmi_t *wmip, 168 WMI_RSSI_THRESHOLD_PARAMS_CMD *rssiCmd); 169 int wmi_clr_rssi_snr(struct wmi_t *wmip); 170 int wmi_set_lq_threshold_params(struct wmi_t *wmip, 171 WMI_LQ_THRESHOLD_PARAMS_CMD *lqCmd); 172 int wmi_set_rts_cmd(struct wmi_t *wmip, u16 threshold); 173 int wmi_set_lpreamble_cmd(struct wmi_t *wmip, u8 status, u8 preamblePolicy); 174 175 int wmi_set_error_report_bitmask(struct wmi_t *wmip, u32 bitmask); 176 177 int wmi_get_challenge_resp_cmd(struct wmi_t *wmip, u32 cookie, 178 u32 source); 179 180 int wmi_config_debug_module_cmd(struct wmi_t *wmip, u16 mmask, 181 u16 tsr, bool rep, u16 size, 182 u32 valid); 183 184 int wmi_get_stats_cmd(struct wmi_t *wmip); 185 186 int wmi_addKey_cmd(struct wmi_t *wmip, u8 keyIndex, 187 CRYPTO_TYPE keyType, u8 keyUsage, 188 u8 keyLength,u8 *keyRSC, 189 u8 *keyMaterial, u8 key_op_ctrl, u8 *mac, 190 WMI_SYNC_FLAG sync_flag); 191 int wmi_add_krk_cmd(struct wmi_t *wmip, u8 *krk); 192 int wmi_delete_krk_cmd(struct wmi_t *wmip); 193 int wmi_deleteKey_cmd(struct wmi_t *wmip, u8 keyIndex); 194 int wmi_set_akmp_params_cmd(struct wmi_t *wmip, 195 WMI_SET_AKMP_PARAMS_CMD *akmpParams); 196 int wmi_get_pmkid_list_cmd(struct wmi_t *wmip); 197 int wmi_set_pmkid_list_cmd(struct wmi_t *wmip, 198 WMI_SET_PMKID_LIST_CMD *pmkInfo); 199 int wmi_abort_scan_cmd(struct wmi_t *wmip); 200 int wmi_set_txPwr_cmd(struct wmi_t *wmip, u8 dbM); 201 int wmi_get_txPwr_cmd(struct wmi_t *wmip); 202 int wmi_addBadAp_cmd(struct wmi_t *wmip, u8 apIndex, u8 *bssid); 203 int wmi_deleteBadAp_cmd(struct wmi_t *wmip, u8 apIndex); 204 int wmi_set_tkip_countermeasures_cmd(struct wmi_t *wmip, bool en); 205 int wmi_setPmkid_cmd(struct wmi_t *wmip, u8 *bssid, u8 *pmkId, 206 bool set); 207 int wmi_set_access_params_cmd(struct wmi_t *wmip, u8 ac, u16 txop, 208 u8 eCWmin, u8 eCWmax, 209 u8 aifsn); 210 int wmi_set_retry_limits_cmd(struct wmi_t *wmip, u8 frameType, 211 u8 trafficClass, u8 maxRetries, 212 u8 enableNotify); 213 214 void wmi_get_current_bssid(struct wmi_t *wmip, u8 *bssid); 215 216 int wmi_get_roam_tbl_cmd(struct wmi_t *wmip); 217 int wmi_get_roam_data_cmd(struct wmi_t *wmip, u8 roamDataType); 218 int wmi_set_roam_ctrl_cmd(struct wmi_t *wmip, WMI_SET_ROAM_CTRL_CMD *p, 219 u8 size); 220 int wmi_set_powersave_timers_cmd(struct wmi_t *wmip, 221 WMI_POWERSAVE_TIMERS_POLICY_CMD *pCmd, 222 u8 size); 223 224 int wmi_set_opt_mode_cmd(struct wmi_t *wmip, u8 optMode); 225 int wmi_opt_tx_frame_cmd(struct wmi_t *wmip, 226 u8 frmType, 227 u8 *dstMacAddr, 228 u8 *bssid, 229 u16 optIEDataLen, 230 u8 *optIEData); 231 232 int wmi_set_adhoc_bconIntvl_cmd(struct wmi_t *wmip, u16 intvl); 233 int wmi_set_voice_pkt_size_cmd(struct wmi_t *wmip, u16 voicePktSize); 234 int wmi_set_max_sp_len_cmd(struct wmi_t *wmip, u8 maxSpLen); 235 u8 convert_userPriority_to_trafficClass(u8 userPriority); 236 u8 wmi_get_power_mode_cmd(struct wmi_t *wmip); 237 int wmi_verify_tspec_params(WMI_CREATE_PSTREAM_CMD *pCmd, int tspecCompliance); 238 239 #ifdef CONFIG_HOST_TCMD_SUPPORT 240 int wmi_test_cmd(struct wmi_t *wmip, u8 *buf, u32 len); 241 #endif 242 243 int wmi_set_bt_status_cmd(struct wmi_t *wmip, u8 streamType, u8 status); 244 int wmi_set_bt_params_cmd(struct wmi_t *wmip, WMI_SET_BT_PARAMS_CMD* cmd); 245 246 int wmi_set_btcoex_fe_ant_cmd(struct wmi_t *wmip, WMI_SET_BTCOEX_FE_ANT_CMD * cmd); 247 248 int wmi_set_btcoex_colocated_bt_dev_cmd(struct wmi_t *wmip, 249 WMI_SET_BTCOEX_COLOCATED_BT_DEV_CMD * cmd); 250 251 int wmi_set_btcoex_btinquiry_page_config_cmd(struct wmi_t *wmip, 252 WMI_SET_BTCOEX_BTINQUIRY_PAGE_CONFIG_CMD *cmd); 253 254 int wmi_set_btcoex_sco_config_cmd(struct wmi_t *wmip, 255 WMI_SET_BTCOEX_SCO_CONFIG_CMD * cmd); 256 257 int wmi_set_btcoex_a2dp_config_cmd(struct wmi_t *wmip, 258 WMI_SET_BTCOEX_A2DP_CONFIG_CMD* cmd); 259 260 261 int wmi_set_btcoex_aclcoex_config_cmd(struct wmi_t *wmip, WMI_SET_BTCOEX_ACLCOEX_CONFIG_CMD* cmd); 262 263 int wmi_set_btcoex_debug_cmd(struct wmi_t *wmip, WMI_SET_BTCOEX_DEBUG_CMD * cmd); 264 265 int wmi_set_btcoex_bt_operating_status_cmd(struct wmi_t * wmip, 266 WMI_SET_BTCOEX_BT_OPERATING_STATUS_CMD * cmd); 267 268 int wmi_get_btcoex_config_cmd(struct wmi_t * wmip, WMI_GET_BTCOEX_CONFIG_CMD * cmd); 269 270 int wmi_get_btcoex_stats_cmd(struct wmi_t * wmip); 271 272 int wmi_SGI_cmd(struct wmi_t *wmip, u32 sgiMask, u8 sgiPERThreshold); 273 274 /* 275 * This function is used to configure the fix rates mask to the target. 276 */ 277 int wmi_set_fixrates_cmd(struct wmi_t *wmip, u32 fixRatesMask); 278 int wmi_get_ratemask_cmd(struct wmi_t *wmip); 279 280 int wmi_set_authmode_cmd(struct wmi_t *wmip, u8 mode); 281 282 int wmi_set_reassocmode_cmd(struct wmi_t *wmip, u8 mode); 283 284 int wmi_set_qos_supp_cmd(struct wmi_t *wmip,u8 status); 285 int wmi_set_wmm_cmd(struct wmi_t *wmip, WMI_WMM_STATUS status); 286 int wmi_set_wmm_txop(struct wmi_t *wmip, WMI_TXOP_CFG txEnable); 287 int wmi_set_country(struct wmi_t *wmip, u8 *countryCode); 288 289 int wmi_get_keepalive_configured(struct wmi_t *wmip); 290 u8 wmi_get_keepalive_cmd(struct wmi_t *wmip); 291 int wmi_set_keepalive_cmd(struct wmi_t *wmip, u8 keepaliveInterval); 292 293 int wmi_set_appie_cmd(struct wmi_t *wmip, u8 mgmtFrmType, 294 u8 ieLen,u8 *ieInfo); 295 296 int wmi_set_halparam_cmd(struct wmi_t *wmip, u8 *cmd, u16 dataLen); 297 298 s32 wmi_get_rate(s8 rateindex); 299 300 int wmi_set_ip_cmd(struct wmi_t *wmip, WMI_SET_IP_CMD *cmd); 301 302 /*Wake on Wireless WMI commands*/ 303 int wmi_set_host_sleep_mode_cmd(struct wmi_t *wmip, WMI_SET_HOST_SLEEP_MODE_CMD *cmd); 304 int wmi_set_wow_mode_cmd(struct wmi_t *wmip, WMI_SET_WOW_MODE_CMD *cmd); 305 int wmi_get_wow_list_cmd(struct wmi_t *wmip, WMI_GET_WOW_LIST_CMD *cmd); 306 int wmi_add_wow_pattern_cmd(struct wmi_t *wmip, 307 WMI_ADD_WOW_PATTERN_CMD *cmd, u8 *pattern, u8 *mask, u8 pattern_size); 308 int wmi_del_wow_pattern_cmd(struct wmi_t *wmip, 309 WMI_DEL_WOW_PATTERN_CMD *cmd); 310 int wmi_set_wsc_status_cmd(struct wmi_t *wmip, u32 status); 311 312 int 313 wmi_set_params_cmd(struct wmi_t *wmip, u32 opcode, u32 length, char *buffer); 314 315 int 316 wmi_set_mcast_filter_cmd(struct wmi_t *wmip, u8 dot1, u8 dot2, u8 dot3, u8 dot4); 317 318 int 319 wmi_del_mcast_filter_cmd(struct wmi_t *wmip, u8 dot1, u8 dot2, u8 dot3, u8 dot4); 320 321 int 322 wmi_mcast_filter_cmd(struct wmi_t *wmip, u8 enable); 323 324 bss_t * 325 wmi_find_Ssidnode (struct wmi_t *wmip, u8 *pSsid, 326 u32 ssidLength, bool bIsWPA2, bool bMatchSSID); 327 328 329 void 330 wmi_node_return (struct wmi_t *wmip, bss_t *bss); 331 332 void 333 wmi_set_nodeage(struct wmi_t *wmip, u32 nodeAge); 334 335 #if defined(CONFIG_TARGET_PROFILE_SUPPORT) 336 int wmi_prof_cfg_cmd(struct wmi_t *wmip, u32 period, u32 nbins); 337 int wmi_prof_addr_set_cmd(struct wmi_t *wmip, u32 addr); 338 int wmi_prof_start_cmd(struct wmi_t *wmip); 339 int wmi_prof_stop_cmd(struct wmi_t *wmip); 340 int wmi_prof_count_get_cmd(struct wmi_t *wmip); 341 #endif /* CONFIG_TARGET_PROFILE_SUPPORT */ 342 #ifdef OS_ROAM_MANAGEMENT 343 void wmi_scan_indication (struct wmi_t *wmip); 344 #endif 345 346 int 347 wmi_set_target_event_report_cmd(struct wmi_t *wmip, WMI_SET_TARGET_EVENT_REPORT_CMD* cmd); 348 349 bss_t *wmi_rm_current_bss (struct wmi_t *wmip, u8 *id); 350 int wmi_add_current_bss (struct wmi_t *wmip, u8 *id, bss_t *bss); 351 352 353 /* 354 * AP mode 355 */ 356 int 357 wmi_ap_profile_commit(struct wmi_t *wmip, WMI_CONNECT_CMD *p); 358 359 int 360 wmi_ap_set_hidden_ssid(struct wmi_t *wmip, u8 hidden_ssid); 361 362 int 363 wmi_ap_set_num_sta(struct wmi_t *wmip, u8 num_sta); 364 365 int 366 wmi_ap_set_acl_policy(struct wmi_t *wmip, u8 policy); 367 368 int 369 wmi_ap_acl_mac_list(struct wmi_t *wmip, WMI_AP_ACL_MAC_CMD *a); 370 371 u8 acl_add_del_mac(WMI_AP_ACL *a, WMI_AP_ACL_MAC_CMD *acl); 372 373 int 374 wmi_ap_set_mlme(struct wmi_t *wmip, u8 cmd, u8 *mac, u16 reason); 375 376 int 377 wmi_set_pvb_cmd(struct wmi_t *wmip, u16 aid, bool flag); 378 379 int 380 wmi_ap_conn_inact_time(struct wmi_t *wmip, u32 period); 381 382 int 383 wmi_ap_bgscan_time(struct wmi_t *wmip, u32 period, u32 dwell); 384 385 int 386 wmi_ap_set_dtim(struct wmi_t *wmip, u8 dtim); 387 388 int 389 wmi_ap_set_rateset(struct wmi_t *wmip, u8 rateset); 390 391 int 392 wmi_set_ht_cap_cmd(struct wmi_t *wmip, WMI_SET_HT_CAP_CMD *cmd); 393 394 int 395 wmi_set_ht_op_cmd(struct wmi_t *wmip, u8 sta_chan_width); 396 397 int 398 wmi_send_hci_cmd(struct wmi_t *wmip, u8 *buf, u16 sz); 399 400 int 401 wmi_set_tx_select_rates_cmd(struct wmi_t *wmip, u32 *pMaskArray); 402 403 int 404 wmi_setup_aggr_cmd(struct wmi_t *wmip, u8 tid); 405 406 int 407 wmi_delete_aggr_cmd(struct wmi_t *wmip, u8 tid, bool uplink); 408 409 int 410 wmi_allow_aggr_cmd(struct wmi_t *wmip, u16 tx_tidmask, u16 rx_tidmask); 411 412 int 413 wmi_set_rx_frame_format_cmd(struct wmi_t *wmip, u8 rxMetaVersion, bool rxDot11Hdr, bool defragOnHost); 414 415 int 416 wmi_set_thin_mode_cmd(struct wmi_t *wmip, bool bThinMode); 417 418 int 419 wmi_set_wlan_conn_precedence_cmd(struct wmi_t *wmip, BT_WLAN_CONN_PRECEDENCE precedence); 420 421 int 422 wmi_set_pmk_cmd(struct wmi_t *wmip, u8 *pmk); 423 424 int 425 wmi_set_excess_tx_retry_thres_cmd(struct wmi_t *wmip, WMI_SET_EXCESS_TX_RETRY_THRES_CMD *cmd); 426 427 u16 wmi_ieee2freq (int chan); 428 429 u32 wmi_freq2ieee (u16 freq); 430 431 bss_t * 432 wmi_find_matching_Ssidnode (struct wmi_t *wmip, u8 *pSsid, 433 u32 ssidLength, 434 u32 dot11AuthMode, u32 authMode, 435 u32 pairwiseCryptoType, u32 grpwiseCryptoTyp); 436 437 #ifdef __cplusplus 438 } 439 #endif 440 441 #endif /* _WMI_API_H_ */ 442