/*========================================================================== FUNCTION WLANBAP_ReleaseHndl DESCRIPTION Called by HDD at driver open (BSL_Close). BAP will reclaim (invalidate) the "file handle" passed into this call. DEPENDENCIES PARAMETERS IN btampHandle: btampHandle value to invalidate. RETURN VALUE The result code associated with performing the operation VOS_STATUS_E_FAULT: btampHandle is NULL ; access would cause a page fault VOS_STATUS_SUCCESS: Everything is good :) SIDE EFFECTS ============================================================================*/ VOS_STATUS WLANBAP_ReleaseHndl ( ptBtampHandle btampHandle /* btamp handle value to release */ ) { /* obtain btamp Context */ ptBtampContext btampContext = (ptBtampContext) btampHandle; tHalHandle halHandle; eHalStatus halStatus = eHAL_STATUS_SUCCESS; /*------------------------------------------------------------------------ Sanity check params ------------------------------------------------------------------------*/ if ( NULL == btampHandle) { VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_ERROR, "Invalid BAP handle value in WLANBAP_ReleaseHndl"); return VOS_STATUS_E_FAULT; } /* JEZ081001: TODO: Major: */ /* Check to see if any wireless associations are still active */ /* ...if so, I have to call * sme_RoamDisconnect(VOS_GET_HAL_CB(btampHandle->pvosGCtx), * btampHandle->sessionId, * eCSR_DISCONNECT_REASON_UNSPECIFIED); * on all of them */ halHandle = VOS_GET_HAL_CB(btampContext->pvosGCtx); if(NULL == halHandle) { VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_ERROR, "halHandle is NULL in %s", __func__); return VOS_STATUS_E_FAULT; } if( btampContext->isBapSessionOpen == TRUE ) { halStatus = sme_CloseSession(halHandle, btampContext->sessionId, NULL, NULL); if(eHAL_STATUS_SUCCESS == halStatus) { btampContext->isBapSessionOpen = FALSE; } } /* release the btampHandle */ return VOS_STATUS_SUCCESS; }/* WLANBAP_ReleaseHndl */
/*========================================================================== FUNCTION WLANBAP_GetCurrentChannel DESCRIPTION Clear out all fields in the BAP context. DEPENDENCIES PARAMETERS IN pBtampCtx: pointer to the BAP control block channel: current configured channel number. activeFlag: flag indicating whether there is an active link. RETURN VALUE The result code associated with performing the operation VOS_STATUS_E_FAULT: pointer to return channel is NULL ; access would cause a page fault VOS_STATUS_SUCCESS: Everything is good :) SIDE EFFECTS ============================================================================*/ VOS_STATUS WLANBAP_GetCurrentChannel ( ptBtampContext pBtampCtx, v_U32_t *channel, // return current channel here v_U32_t *activeFlag // return active flag here ) { //v_U32_t cb_enabled; tHalHandle halHandle; /*------------------------------------------------------------------------ Sanity check BAP control block ------------------------------------------------------------------------*/ if (( NULL == pBtampCtx ) || (NULL == channel) || (NULL == activeFlag)) { VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_ERROR, "Invalid BAP pointer in %s", __FUNCTION__); return VOS_STATUS_E_FAULT; } halHandle = VOS_GET_HAL_CB(pBtampCtx->pvosGCtx); if(NULL == halHandle) { VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_ERROR, "halHandle is NULL in %s", __FUNCTION__); return VOS_STATUS_E_FAULT; } if (ccmCfgGetInt(halHandle, WNI_CFG_CURRENT_CHANNEL, channel) != eHAL_STATUS_SUCCESS ) { VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_ERROR, "Get CFG failed in %s", __FUNCTION__); return VOS_STATUS_E_FAULT; } *activeFlag = FALSE; // return active flag here return VOS_STATUS_SUCCESS; }/* WLANBAP_GetCurrentChannel */
VOS_STATUS WLANBAP_GetCurrentChannel ( ptBtampContext pBtampCtx, v_U32_t *channel, v_U32_t *activeFlag ) { tHalHandle halHandle; if (( NULL == pBtampCtx ) || (NULL == channel) || (NULL == activeFlag)) { VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_ERROR, "Invalid BAP pointer in %s", __func__); return VOS_STATUS_E_FAULT; } halHandle = VOS_GET_HAL_CB(pBtampCtx->pvosGCtx); if(NULL == halHandle) { VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_ERROR, "halHandle is NULL in %s", __func__); return VOS_STATUS_E_FAULT; } if (ccmCfgGetInt(halHandle, WNI_CFG_CURRENT_CHANNEL, channel) != eHAL_STATUS_SUCCESS ) { VOS_TRACE( VOS_MODULE_ID_BAP, VOS_TRACE_LEVEL_ERROR, "Get CFG failed in %s", __func__); return VOS_STATUS_E_FAULT; } *activeFlag = FALSE; return VOS_STATUS_SUCCESS; }