linux/drivers/staging/ath6kl/include/wmi_api.h
<<
>>
Prefs
   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
  29extern "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
  60typedef enum {
  61    ATHEROS_COMPLIANCE = 0x1,
  62}TSPEC_PARAM_COMPLIANCE;
  63
  64struct wmi_t;
  65
  66void *wmi_init(void *devt);
  67
  68void wmi_qos_state_init(struct wmi_t *wmip);
  69void wmi_shutdown(struct wmi_t *wmip);
  70HTC_ENDPOINT_ID wmi_get_control_ep(struct wmi_t * wmip);
  71void wmi_set_control_ep(struct wmi_t * wmip, HTC_ENDPOINT_ID eid);
  72A_UINT16  wmi_get_mapped_qos_queue(struct wmi_t *, A_UINT8);
  73A_STATUS wmi_dix_2_dot3(struct wmi_t *wmip, void *osbuf);
  74A_STATUS wmi_data_hdr_add(struct wmi_t *wmip, void *osbuf, A_UINT8 msgType, A_BOOL bMoreData, WMI_DATA_HDR_DATA_TYPE data_type,A_UINT8 metaVersion, void *pTxMetaS);
  75A_STATUS wmi_dot3_2_dix(void *osbuf);
  76
  77A_STATUS wmi_dot11_hdr_remove (struct wmi_t *wmip, void *osbuf);
  78A_STATUS wmi_dot11_hdr_add(struct wmi_t *wmip, void *osbuf, NETWORK_TYPE mode);
  79
  80A_STATUS wmi_data_hdr_remove(struct wmi_t *wmip, void *osbuf);
  81A_STATUS wmi_syncpoint(struct wmi_t *wmip);
  82A_STATUS wmi_syncpoint_reset(struct wmi_t *wmip);
  83A_UINT8 wmi_implicit_create_pstream(struct wmi_t *wmip, void *osbuf, A_UINT32 layer2Priority, A_BOOL wmmEnabled);
  84
  85A_UINT8 wmi_determine_userPriority (A_UINT8 *pkt, A_UINT32 layer2Pri);
  86
  87A_STATUS wmi_control_rx(struct wmi_t *wmip, void *osbuf);
  88void wmi_iterate_nodes(struct wmi_t *wmip, wlan_node_iter_func *f, void *arg);
  89void wmi_free_allnodes(struct wmi_t *wmip);
  90bss_t *wmi_find_node(struct wmi_t *wmip, const A_UINT8 *macaddr);
  91void wmi_free_node(struct wmi_t *wmip, const A_UINT8 *macaddr);
  92
  93
  94typedef 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
 102A_STATUS wmi_cmd_send(struct wmi_t *wmip, void *osbuf, WMI_COMMAND_ID cmdId,
 103                      WMI_SYNC_FLAG flag);
 104
 105A_STATUS 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                         A_UINT8 pairwiseCryptoLen,
 111                         CRYPTO_TYPE groupCrypto,
 112                         A_UINT8 groupCryptoLen,
 113                         int ssidLength,
 114                         A_UCHAR *ssid,
 115                         A_UINT8 *bssid,
 116                         A_UINT16 channel,
 117                         A_UINT32 ctrl_flags);
 118
 119A_STATUS wmi_reconnect_cmd(struct wmi_t *wmip,
 120                           A_UINT8 *bssid,
 121                           A_UINT16 channel);
 122A_STATUS wmi_disconnect_cmd(struct wmi_t *wmip);
 123A_STATUS wmi_getrev_cmd(struct wmi_t *wmip);
 124A_STATUS wmi_startscan_cmd(struct wmi_t *wmip, WMI_SCAN_TYPE scanType,
 125                           A_BOOL forceFgScan, A_BOOL isLegacy,
 126                           A_UINT32 homeDwellTime, A_UINT32 forceScanInterval,
 127                           A_INT8 numChan, A_UINT16 *channelList);
 128A_STATUS wmi_scanparams_cmd(struct wmi_t *wmip, A_UINT16 fg_start_sec,
 129                            A_UINT16 fg_end_sec, A_UINT16 bg_sec,
 130                            A_UINT16 minact_chdw_msec,
 131                            A_UINT16 maxact_chdw_msec, A_UINT16 pas_chdw_msec,
 132                            A_UINT8 shScanRatio, A_UINT8 scanCtrlFlags,
 133                            A_UINT32 max_dfsch_act_time,
 134                            A_UINT16 maxact_scan_per_ssid);
 135A_STATUS wmi_bssfilter_cmd(struct wmi_t *wmip, A_UINT8 filter, A_UINT32 ieMask);
 136A_STATUS wmi_probedSsid_cmd(struct wmi_t *wmip, A_UINT8 index, A_UINT8 flag,
 137                            A_UINT8 ssidLength, A_UCHAR *ssid);
 138A_STATUS wmi_listeninterval_cmd(struct wmi_t *wmip, A_UINT16 listenInterval, A_UINT16 listenBeacons);
 139A_STATUS wmi_bmisstime_cmd(struct wmi_t *wmip, A_UINT16 bmisstime, A_UINT16 bmissbeacons);
 140A_STATUS wmi_associnfo_cmd(struct wmi_t *wmip, A_UINT8 ieType,
 141                           A_UINT8 ieLen, A_UINT8 *ieInfo);
 142A_STATUS wmi_powermode_cmd(struct wmi_t *wmip, A_UINT8 powerMode);
 143A_STATUS wmi_ibsspmcaps_cmd(struct wmi_t *wmip, A_UINT8 pmEnable, A_UINT8 ttl,
 144                            A_UINT16 atim_windows, A_UINT16 timeout_value);
 145A_STATUS wmi_apps_cmd(struct wmi_t *wmip, A_UINT8 psType, A_UINT32 idle_time,
 146                   A_UINT32 ps_period, A_UINT8 sleep_period);
 147A_STATUS wmi_pmparams_cmd(struct wmi_t *wmip, A_UINT16 idlePeriod,
 148                           A_UINT16 psPollNum, A_UINT16 dtimPolicy,
 149                           A_UINT16 wakup_tx_policy, A_UINT16 num_tx_to_wakeup,
 150                           A_UINT16 ps_fail_event_policy);
 151A_STATUS wmi_disctimeout_cmd(struct wmi_t *wmip, A_UINT8 timeout);
 152A_STATUS wmi_sync_cmd(struct wmi_t *wmip, A_UINT8 syncNumber);
 153A_STATUS wmi_create_pstream_cmd(struct wmi_t *wmip, WMI_CREATE_PSTREAM_CMD *pstream);
 154A_STATUS wmi_delete_pstream_cmd(struct wmi_t *wmip, A_UINT8 trafficClass, A_UINT8 streamID);
 155A_STATUS wmi_set_framerate_cmd(struct wmi_t *wmip, A_UINT8 bEnable, A_UINT8 type, A_UINT8 subType, A_UINT16 rateMask);
 156A_STATUS wmi_set_bitrate_cmd(struct wmi_t *wmip, A_INT32 dataRate, A_INT32 mgmtRate, A_INT32 ctlRate);
 157A_STATUS wmi_get_bitrate_cmd(struct wmi_t *wmip);
 158A_INT8   wmi_validate_bitrate(struct wmi_t *wmip, A_INT32 rate, A_INT8 *rate_idx);
 159A_STATUS wmi_get_regDomain_cmd(struct wmi_t *wmip);
 160A_STATUS wmi_get_channelList_cmd(struct wmi_t *wmip);
 161A_STATUS wmi_set_channelParams_cmd(struct wmi_t *wmip, A_UINT8 scanParam,
 162                                   WMI_PHY_MODE mode, A_INT8 numChan,
 163                                   A_UINT16 *channelList);
 164
 165A_STATUS wmi_set_snr_threshold_params(struct wmi_t *wmip,
 166                                       WMI_SNR_THRESHOLD_PARAMS_CMD *snrCmd);
 167A_STATUS wmi_set_rssi_threshold_params(struct wmi_t *wmip,
 168                                        WMI_RSSI_THRESHOLD_PARAMS_CMD *rssiCmd);
 169A_STATUS wmi_clr_rssi_snr(struct wmi_t *wmip);
 170A_STATUS wmi_set_lq_threshold_params(struct wmi_t *wmip,
 171                                      WMI_LQ_THRESHOLD_PARAMS_CMD *lqCmd);
 172A_STATUS wmi_set_rts_cmd(struct wmi_t *wmip, A_UINT16 threshold);
 173A_STATUS wmi_set_lpreamble_cmd(struct wmi_t *wmip, A_UINT8 status, A_UINT8 preamblePolicy);
 174
 175A_STATUS wmi_set_error_report_bitmask(struct wmi_t *wmip, A_UINT32 bitmask);
 176
 177A_STATUS wmi_get_challenge_resp_cmd(struct wmi_t *wmip, A_UINT32 cookie,
 178                                    A_UINT32 source);
 179
 180A_STATUS wmi_config_debug_module_cmd(struct wmi_t *wmip, A_UINT16 mmask,
 181                                     A_UINT16 tsr, A_BOOL rep, A_UINT16 size,
 182                                     A_UINT32 valid);
 183
 184A_STATUS wmi_get_stats_cmd(struct wmi_t *wmip);
 185
 186A_STATUS wmi_addKey_cmd(struct wmi_t *wmip, A_UINT8 keyIndex,
 187                        CRYPTO_TYPE keyType, A_UINT8 keyUsage,
 188                        A_UINT8 keyLength,A_UINT8 *keyRSC,
 189                        A_UINT8 *keyMaterial, A_UINT8 key_op_ctrl, A_UINT8 *mac,
 190                        WMI_SYNC_FLAG sync_flag);
 191A_STATUS wmi_add_krk_cmd(struct wmi_t *wmip, A_UINT8 *krk);
 192A_STATUS wmi_delete_krk_cmd(struct wmi_t *wmip);
 193A_STATUS wmi_deleteKey_cmd(struct wmi_t *wmip, A_UINT8 keyIndex);
 194A_STATUS wmi_set_akmp_params_cmd(struct wmi_t *wmip,
 195                                 WMI_SET_AKMP_PARAMS_CMD *akmpParams);
 196A_STATUS wmi_get_pmkid_list_cmd(struct wmi_t *wmip);
 197A_STATUS wmi_set_pmkid_list_cmd(struct wmi_t *wmip,
 198                                WMI_SET_PMKID_LIST_CMD *pmkInfo);
 199A_STATUS wmi_abort_scan_cmd(struct wmi_t *wmip);
 200A_STATUS wmi_set_txPwr_cmd(struct wmi_t *wmip, A_UINT8 dbM);
 201A_STATUS wmi_get_txPwr_cmd(struct wmi_t *wmip);
 202A_STATUS wmi_addBadAp_cmd(struct wmi_t *wmip, A_UINT8 apIndex, A_UINT8 *bssid);
 203A_STATUS wmi_deleteBadAp_cmd(struct wmi_t *wmip, A_UINT8 apIndex);
 204A_STATUS wmi_set_tkip_countermeasures_cmd(struct wmi_t *wmip, A_BOOL en);
 205A_STATUS wmi_setPmkid_cmd(struct wmi_t *wmip, A_UINT8 *bssid, A_UINT8 *pmkId,
 206                          A_BOOL set);
 207A_STATUS wmi_set_access_params_cmd(struct wmi_t *wmip, A_UINT8 ac, A_UINT16 txop,
 208                                   A_UINT8 eCWmin, A_UINT8 eCWmax,
 209                                   A_UINT8 aifsn);
 210A_STATUS wmi_set_retry_limits_cmd(struct wmi_t *wmip, A_UINT8 frameType,
 211                                  A_UINT8 trafficClass, A_UINT8 maxRetries,
 212                                  A_UINT8 enableNotify);
 213
 214void wmi_get_current_bssid(struct wmi_t *wmip, A_UINT8 *bssid);
 215
 216A_STATUS wmi_get_roam_tbl_cmd(struct wmi_t *wmip);
 217A_STATUS wmi_get_roam_data_cmd(struct wmi_t *wmip, A_UINT8 roamDataType);
 218A_STATUS wmi_set_roam_ctrl_cmd(struct wmi_t *wmip, WMI_SET_ROAM_CTRL_CMD *p,
 219                               A_UINT8 size);
 220A_STATUS wmi_set_powersave_timers_cmd(struct wmi_t *wmip,
 221                            WMI_POWERSAVE_TIMERS_POLICY_CMD *pCmd,
 222                            A_UINT8 size);
 223
 224A_STATUS wmi_set_opt_mode_cmd(struct wmi_t *wmip, A_UINT8 optMode);
 225A_STATUS wmi_opt_tx_frame_cmd(struct wmi_t *wmip,
 226                              A_UINT8 frmType,
 227                              A_UINT8 *dstMacAddr,
 228                              A_UINT8 *bssid,
 229                              A_UINT16 optIEDataLen,
 230                              A_UINT8 *optIEData);
 231
 232A_STATUS wmi_set_adhoc_bconIntvl_cmd(struct wmi_t *wmip, A_UINT16 intvl);
 233A_STATUS wmi_set_voice_pkt_size_cmd(struct wmi_t *wmip, A_UINT16 voicePktSize);
 234A_STATUS wmi_set_max_sp_len_cmd(struct wmi_t *wmip, A_UINT8 maxSpLen);
 235A_UINT8  convert_userPriority_to_trafficClass(A_UINT8 userPriority);
 236A_UINT8 wmi_get_power_mode_cmd(struct wmi_t *wmip);
 237A_STATUS wmi_verify_tspec_params(WMI_CREATE_PSTREAM_CMD *pCmd, A_BOOL tspecCompliance);
 238
 239#ifdef CONFIG_HOST_TCMD_SUPPORT
 240A_STATUS wmi_test_cmd(struct wmi_t *wmip, A_UINT8 *buf, A_UINT32  len);
 241#endif
 242
 243A_STATUS wmi_set_bt_status_cmd(struct wmi_t *wmip, A_UINT8 streamType, A_UINT8 status);
 244A_STATUS wmi_set_bt_params_cmd(struct wmi_t *wmip, WMI_SET_BT_PARAMS_CMD* cmd);
 245
 246A_STATUS wmi_set_btcoex_fe_ant_cmd(struct wmi_t *wmip, WMI_SET_BTCOEX_FE_ANT_CMD * cmd);
 247
 248A_STATUS wmi_set_btcoex_colocated_bt_dev_cmd(struct wmi_t *wmip,
 249                                                WMI_SET_BTCOEX_COLOCATED_BT_DEV_CMD * cmd);
 250
 251A_STATUS wmi_set_btcoex_btinquiry_page_config_cmd(struct wmi_t *wmip,
 252                                                WMI_SET_BTCOEX_BTINQUIRY_PAGE_CONFIG_CMD *cmd);
 253
 254A_STATUS wmi_set_btcoex_sco_config_cmd(struct wmi_t *wmip,
 255                                              WMI_SET_BTCOEX_SCO_CONFIG_CMD * cmd);
 256
 257A_STATUS wmi_set_btcoex_a2dp_config_cmd(struct wmi_t *wmip,
 258                                                 WMI_SET_BTCOEX_A2DP_CONFIG_CMD* cmd);
 259
 260
 261A_STATUS wmi_set_btcoex_aclcoex_config_cmd(struct wmi_t *wmip, WMI_SET_BTCOEX_ACLCOEX_CONFIG_CMD* cmd);
 262
 263A_STATUS wmi_set_btcoex_debug_cmd(struct wmi_t *wmip, WMI_SET_BTCOEX_DEBUG_CMD * cmd);
 264
 265A_STATUS wmi_set_btcoex_bt_operating_status_cmd(struct wmi_t * wmip,
 266                                                        WMI_SET_BTCOEX_BT_OPERATING_STATUS_CMD * cmd);
 267
 268A_STATUS wmi_get_btcoex_config_cmd(struct wmi_t * wmip, WMI_GET_BTCOEX_CONFIG_CMD * cmd);
 269
 270A_STATUS wmi_get_btcoex_stats_cmd(struct wmi_t * wmip);
 271
 272A_STATUS wmi_SGI_cmd(struct wmi_t *wmip, A_UINT32 sgiMask, A_UINT8 sgiPERThreshold);
 273
 274/*
 275 *  This function is used to configure the fix rates mask to the target.
 276 */
 277A_STATUS wmi_set_fixrates_cmd(struct wmi_t *wmip, A_UINT32 fixRatesMask);
 278A_STATUS wmi_get_ratemask_cmd(struct wmi_t *wmip);
 279
 280A_STATUS wmi_set_authmode_cmd(struct wmi_t *wmip, A_UINT8 mode);
 281
 282A_STATUS wmi_set_reassocmode_cmd(struct wmi_t *wmip, A_UINT8 mode);
 283
 284A_STATUS wmi_set_qos_supp_cmd(struct wmi_t *wmip,A_UINT8 status);
 285A_STATUS wmi_set_wmm_cmd(struct wmi_t *wmip, WMI_WMM_STATUS status);
 286A_STATUS wmi_set_wmm_txop(struct wmi_t *wmip, WMI_TXOP_CFG txEnable);
 287A_STATUS wmi_set_country(struct wmi_t *wmip, A_UCHAR *countryCode);
 288
 289A_STATUS wmi_get_keepalive_configured(struct wmi_t *wmip);
 290A_UINT8 wmi_get_keepalive_cmd(struct wmi_t *wmip);
 291A_STATUS wmi_set_keepalive_cmd(struct wmi_t *wmip, A_UINT8 keepaliveInterval);
 292
 293A_STATUS wmi_set_appie_cmd(struct wmi_t *wmip, A_UINT8 mgmtFrmType,
 294                           A_UINT8 ieLen,A_UINT8 *ieInfo);
 295
 296A_STATUS wmi_set_halparam_cmd(struct wmi_t *wmip, A_UINT8 *cmd, A_UINT16 dataLen);
 297
 298A_INT32 wmi_get_rate(A_INT8 rateindex);
 299
 300A_STATUS wmi_set_ip_cmd(struct wmi_t *wmip, WMI_SET_IP_CMD *cmd);
 301
 302/*Wake on Wireless WMI commands*/
 303A_STATUS wmi_set_host_sleep_mode_cmd(struct wmi_t *wmip, WMI_SET_HOST_SLEEP_MODE_CMD *cmd);
 304A_STATUS wmi_set_wow_mode_cmd(struct wmi_t *wmip, WMI_SET_WOW_MODE_CMD *cmd);
 305A_STATUS wmi_get_wow_list_cmd(struct wmi_t *wmip, WMI_GET_WOW_LIST_CMD *cmd);
 306A_STATUS wmi_add_wow_pattern_cmd(struct wmi_t *wmip,
 307                                 WMI_ADD_WOW_PATTERN_CMD *cmd, A_UINT8* pattern, A_UINT8* mask, A_UINT8 pattern_size);
 308A_STATUS wmi_del_wow_pattern_cmd(struct wmi_t *wmip,
 309                                 WMI_DEL_WOW_PATTERN_CMD *cmd);
 310A_STATUS wmi_set_wsc_status_cmd(struct wmi_t *wmip, A_UINT32 status);
 311
 312A_STATUS
 313wmi_set_params_cmd(struct wmi_t *wmip, A_UINT32 opcode, A_UINT32 length, A_CHAR* buffer);
 314
 315A_STATUS
 316wmi_set_mcast_filter_cmd(struct wmi_t *wmip, A_UINT8 dot1, A_UINT8 dot2, A_UINT8 dot3, A_UINT8 dot4);
 317
 318A_STATUS
 319wmi_del_mcast_filter_cmd(struct wmi_t *wmip, A_UINT8 dot1, A_UINT8 dot2, A_UINT8 dot3, A_UINT8 dot4);
 320
 321A_STATUS
 322wmi_mcast_filter_cmd(struct wmi_t *wmip, A_UINT8 enable);
 323
 324bss_t *
 325wmi_find_Ssidnode (struct wmi_t *wmip, A_UCHAR *pSsid,
 326                   A_UINT32 ssidLength, A_BOOL bIsWPA2, A_BOOL bMatchSSID);
 327
 328
 329void
 330wmi_node_return (struct wmi_t *wmip, bss_t *bss);
 331
 332void
 333wmi_set_nodeage(struct wmi_t *wmip, A_UINT32 nodeAge);
 334
 335#if defined(CONFIG_TARGET_PROFILE_SUPPORT)
 336A_STATUS wmi_prof_cfg_cmd(struct wmi_t *wmip, A_UINT32 period, A_UINT32 nbins);
 337A_STATUS wmi_prof_addr_set_cmd(struct wmi_t *wmip, A_UINT32 addr);
 338A_STATUS wmi_prof_start_cmd(struct wmi_t *wmip);
 339A_STATUS wmi_prof_stop_cmd(struct wmi_t *wmip);
 340A_STATUS wmi_prof_count_get_cmd(struct wmi_t *wmip);
 341#endif /* CONFIG_TARGET_PROFILE_SUPPORT */
 342#ifdef OS_ROAM_MANAGEMENT
 343void wmi_scan_indication (struct wmi_t *wmip);
 344#endif
 345
 346A_STATUS
 347wmi_set_target_event_report_cmd(struct wmi_t *wmip, WMI_SET_TARGET_EVENT_REPORT_CMD* cmd);
 348
 349bss_t   *wmi_rm_current_bss (struct wmi_t *wmip, A_UINT8 *id);
 350A_STATUS wmi_add_current_bss (struct wmi_t *wmip, A_UINT8 *id, bss_t *bss);
 351
 352
 353/*
 354 * AP mode
 355 */
 356A_STATUS
 357wmi_ap_profile_commit(struct wmi_t *wmip, WMI_CONNECT_CMD *p);
 358
 359A_STATUS
 360wmi_ap_set_hidden_ssid(struct wmi_t *wmip, A_UINT8 hidden_ssid);
 361
 362A_STATUS
 363wmi_ap_set_num_sta(struct wmi_t *wmip, A_UINT8 num_sta);
 364
 365A_STATUS
 366wmi_ap_set_acl_policy(struct wmi_t *wmip, A_UINT8 policy);
 367
 368A_STATUS
 369wmi_ap_acl_mac_list(struct wmi_t *wmip, WMI_AP_ACL_MAC_CMD *a);
 370
 371A_UINT8
 372acl_add_del_mac(WMI_AP_ACL *a, WMI_AP_ACL_MAC_CMD *acl);
 373
 374A_STATUS
 375wmi_ap_set_mlme(struct wmi_t *wmip, A_UINT8 cmd, A_UINT8 *mac, A_UINT16 reason);
 376
 377A_STATUS
 378wmi_set_pvb_cmd(struct wmi_t *wmip, A_UINT16 aid, A_BOOL flag);
 379
 380A_STATUS
 381wmi_ap_conn_inact_time(struct wmi_t *wmip, A_UINT32 period);
 382
 383A_STATUS
 384wmi_ap_bgscan_time(struct wmi_t *wmip, A_UINT32 period, A_UINT32 dwell);
 385
 386A_STATUS
 387wmi_ap_set_dtim(struct wmi_t *wmip, A_UINT8 dtim);
 388
 389A_STATUS
 390wmi_ap_set_rateset(struct wmi_t *wmip, A_UINT8 rateset);
 391
 392A_STATUS
 393wmi_set_ht_cap_cmd(struct wmi_t *wmip, WMI_SET_HT_CAP_CMD *cmd);
 394
 395A_STATUS
 396wmi_set_ht_op_cmd(struct wmi_t *wmip, A_UINT8 sta_chan_width);
 397
 398A_STATUS
 399wmi_send_hci_cmd(struct wmi_t *wmip, A_UINT8 *buf, A_UINT16 sz);
 400
 401A_STATUS
 402wmi_set_tx_select_rates_cmd(struct wmi_t *wmip, A_UINT32 *pMaskArray);
 403
 404A_STATUS
 405wmi_setup_aggr_cmd(struct wmi_t *wmip, A_UINT8 tid);
 406
 407A_STATUS
 408wmi_delete_aggr_cmd(struct wmi_t *wmip, A_UINT8 tid, A_BOOL uplink);
 409
 410A_STATUS
 411wmi_allow_aggr_cmd(struct wmi_t *wmip, A_UINT16 tx_tidmask, A_UINT16 rx_tidmask);
 412
 413A_STATUS 
 414wmi_set_rx_frame_format_cmd(struct wmi_t *wmip, A_UINT8 rxMetaVersion, A_BOOL rxDot11Hdr, A_BOOL defragOnHost);
 415
 416A_STATUS 
 417wmi_set_thin_mode_cmd(struct wmi_t *wmip, A_BOOL bThinMode);
 418
 419A_STATUS
 420wmi_set_wlan_conn_precedence_cmd(struct wmi_t *wmip, BT_WLAN_CONN_PRECEDENCE precedence);
 421
 422A_STATUS
 423wmi_set_pmk_cmd(struct wmi_t *wmip, A_UINT8 *pmk);
 424
 425A_UINT16
 426wmi_ieee2freq (int chan);
 427
 428A_UINT32
 429wmi_freq2ieee (A_UINT16 freq);
 430
 431bss_t *
 432wmi_find_matching_Ssidnode (struct wmi_t *wmip, A_UCHAR *pSsid,
 433                   A_UINT32 ssidLength,
 434                   A_UINT32 dot11AuthMode, A_UINT32 authMode,
 435                   A_UINT32 pairwiseCryptoType, A_UINT32 grpwiseCryptoTyp);
 436
 437#ifdef __cplusplus
 438}
 439#endif
 440
 441#endif /* _WMI_API_H_ */
 442