void setassocsta_cmdrsp_callback(_adapter* padapter, struct cmd_obj *pcmd) { _irqL irqL; struct sta_priv * pstapriv = &padapter->stapriv; struct mlme_priv *pmlmepriv = &padapter->mlmepriv; struct set_assocsta_parm* passocsta_parm = (struct set_assocsta_parm*)(pcmd->parmbuf); struct set_assocsta_rsp* passocsta_rsp = (struct set_assocsta_rsp*) (pcmd->rsp); struct sta_info* psta = get_stainfo(pstapriv, passocsta_parm->addr); _func_enter_; if(psta==NULL) { RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\nERROR: setassocsta_cmdrsp_callbac => can't get sta_info \n\n")); goto exit; } psta->aid = psta->mac_id = passocsta_rsp->cam_id; _enter_critical(&(pmlmepriv->lock), &irqL); if ((check_fwstate(pmlmepriv, WIFI_MP_STATE) == _TRUE) && (check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == _TRUE)) pmlmepriv->fw_state ^= _FW_UNDER_LINKING; set_fwstate(pmlmepriv, _FW_LINKED); _exit_critical(&(pmlmepriv->lock), &irqL); free_cmd_obj(pcmd); exit: _func_exit_; }
void disassoc_cmd_callback(_adapter* padapter, struct cmd_obj *pcmd) { _irqL irqL; struct mlme_priv *pmlmepriv = &padapter->mlmepriv; _func_enter_; if((pcmd->res != H2C_SUCCESS)) { _enter_critical(&pmlmepriv->lock, &irqL); set_fwstate(pmlmepriv, _FW_LINKED); _exit_critical(&pmlmepriv->lock, &irqL); RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\n ***Error: disconnect_cmd_callback Fail ***\n.")); goto exit; } // free cmd free_cmd_obj(pcmd); exit: _func_exit_; }
void getrttbl_cmd_cmdrsp_callback(_adapter* padapter, struct cmd_obj *pcmd) { _func_enter_; free_cmd_obj(pcmd); #ifdef CONFIG_MP_INCLUDED padapter->mppriv.workparam.bcompleted=_TRUE; #endif _func_exit_; }
void joinbss_cmd_callback(_adapter *padapter, struct cmd_obj *pcmd) { struct mlme_priv *pmlmepriv = &padapter->mlmepriv; _func_enter_; if ((pcmd->res != H2C_SUCCESS)) { RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("********Error:select_and_join_from_scanned_queue Wait Sema Fail ************\n")); _set_timer(&pmlmepriv->assoc_timer, 1); } free_cmd_obj(pcmd); _func_exit_; }
void survey_cmd_callback(_adapter *padapter, struct cmd_obj *pcmd) { struct mlme_priv *pmlmepriv = &padapter->mlmepriv; _func_enter_; if (pcmd->res != H2C_SUCCESS) { clr_fwstate(pmlmepriv, _FW_UNDER_SURVEY); RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\nsurvey_cmd_callback : clr _FW_UNDER_SURVEY ")); RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\n ********Error: MgntActSet_802_11_BSSID_LIST_SCAN Fail ************\n\n.")); } // free cmd free_cmd_obj(pcmd); _func_exit_; }
void setstaKey_cmdrsp_callback(_adapter* padapter , struct cmd_obj *pcmd) { struct sta_priv * pstapriv = &padapter->stapriv; struct set_stakey_rsp* psetstakey_rsp = (struct set_stakey_rsp*) (pcmd->rsp); struct sta_info* psta = get_stainfo(pstapriv, psetstakey_rsp->addr); _func_enter_; if(psta==NULL) { RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\nERROR: setstaKey_cmdrsp_callback => can't get sta_info \n\n")); goto exit; } psta->aid = psta->mac_id = psetstakey_rsp->keyid; //CAM_ID(CAM_ENTRY) exit: free_cmd_obj(pcmd); _func_exit_; }
void createbss_cmd_callback(_adapter *padapter, struct cmd_obj *pcmd) { _irqL irqL; u8 timer_cancelled; struct sta_info *psta = NULL; struct wlan_network *pwlan = NULL; struct mlme_priv *pmlmepriv = &padapter->mlmepriv; NDIS_WLAN_BSSID_EX *pnetwork = (NDIS_WLAN_BSSID_EX *)pcmd->parmbuf; struct wlan_network *tgt_network = &(pmlmepriv->cur_network); _func_enter_; if((pcmd->res != H2C_SUCCESS)) { RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\n ********Error: createbss_cmd_callback Fail ************\n\n.")); _set_timer(&pmlmepriv->assoc_timer, 1 ); } _cancel_timer(&pmlmepriv->assoc_timer, &timer_cancelled); //endian_convert pnetwork->Length = le32_to_cpu(pnetwork->Length); pnetwork->Ssid.SsidLength = le32_to_cpu(pnetwork->Ssid.SsidLength); pnetwork->Privacy =le32_to_cpu(pnetwork->Privacy); pnetwork->Rssi = le32_to_cpu(pnetwork->Rssi); pnetwork->NetworkTypeInUse =le32_to_cpu(pnetwork->NetworkTypeInUse); pnetwork->Configuration.ATIMWindow = le32_to_cpu(pnetwork->Configuration.ATIMWindow); pnetwork->Configuration.BeaconPeriod = le32_to_cpu(pnetwork->Configuration.BeaconPeriod); pnetwork->Configuration.DSConfig =le32_to_cpu(pnetwork->Configuration.DSConfig); pnetwork->Configuration.FHConfig.DwellTime=le32_to_cpu(pnetwork->Configuration.FHConfig.DwellTime); pnetwork->Configuration.FHConfig.HopPattern=le32_to_cpu(pnetwork->Configuration.FHConfig.HopPattern); pnetwork->Configuration.FHConfig.HopSet=le32_to_cpu(pnetwork->Configuration.FHConfig.HopSet); pnetwork->Configuration.FHConfig.Length=le32_to_cpu(pnetwork->Configuration.FHConfig.Length); pnetwork->Configuration.Length = le32_to_cpu(pnetwork->Configuration.Length); pnetwork->InfrastructureMode = le32_to_cpu(pnetwork->InfrastructureMode); pnetwork->IELength = le32_to_cpu(pnetwork->IELength); _enter_critical(&pmlmepriv->lock, &irqL); { pwlan = _alloc_network(pmlmepriv); if ( pwlan == NULL) { pwlan = get_oldest_wlan_network(&pmlmepriv->scanned_queue); if( pwlan == NULL) { RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\n Error: can't get pwlan in joinbss_event_callback \n")); goto createbss_cmd_fail; } pwlan->last_scanned = get_current_time(); } else { list_insert_tail(&(pwlan->list), &pmlmepriv->scanned_queue.queue); } pnetwork->Length = get_NDIS_WLAN_BSSID_EX_sz(pnetwork); _memcpy(&(pwlan->network), pnetwork, pnetwork->Length); pwlan->fixed = _TRUE; //list_insert_tail(&(pwlan->list), &pmlmepriv->scanned_queue.queue); // copy pdev_network information to pmlmepriv->cur_network _memcpy(&tgt_network->network, pnetwork, (get_NDIS_WLAN_BSSID_EX_sz(pnetwork))); // reset DSConfig //tgt_network->network.Configuration.DSConfig = (u32)ch2freq(pnetwork->Configuration.DSConfig); if(pmlmepriv->fw_state & _FW_UNDER_LINKING) pmlmepriv->fw_state ^= _FW_UNDER_LINKING; if((pmlmepriv->fw_state) & WIFI_AP_STATE) { psta = alloc_stainfo(&padapter->stapriv, pnetwork->MacAddress); if (psta == NULL) { // for AP Mode & Adhoc Master Mode RT_TRACE(_module_rtl871x_cmd_c_,_drv_err_,("\nCan't alloc sta_info when createbss_cmd_callback\n")); goto createbss_cmd_fail ; } indicate_connect( padapter); } else { //indicate_disconnect(dev); } // we will set _FW_LINKED when there is one more sat to join us (stassoc_event_callback) } createbss_cmd_fail: _exit_critical(&pmlmepriv->lock, &irqL); free_cmd_obj(pcmd); _func_exit_; }