/*----------------------------------------------------------------------------*/ VOID cnmTimerDestroy ( IN P_ADAPTER_T prAdapter ) { P_ROOT_TIMER prRootTimer; KAL_SPIN_LOCK_DECLARATION(); ASSERT(prAdapter); prRootTimer = &prAdapter->rRootTimer; if (prRootTimer->fgWakeLocked) { KAL_WAKE_UNLOCK(prAdapter, &prRootTimer->rWakeLock); prRootTimer->fgWakeLocked = FALSE; } KAL_WAKE_LOCK_DESTROY(prAdapter, &prRootTimer->rWakeLock); KAL_ACQUIRE_SPIN_LOCK(prAdapter, SPIN_LOCK_TIMER); LINK_INITIALIZE(&prRootTimer->rLinkHead); KAL_RELEASE_SPIN_LOCK(prAdapter, SPIN_LOCK_TIMER); /* Note: glue layer will be responsible for timer destruction */ return; }
/*----------------------------------------------------------------------------*/ VOID staRecInitialize ( IN P_ADAPTER_T prAdapter ) { P_STA_INFO_T prStaInfo; PUINT_8 pucMemHandle; P_STA_RECORD_T prStaRec; UINT_32 i; ASSERT(prAdapter); prStaInfo = &prAdapter->rStaInfo; //4 <0> Clear allocated memory. kalMemZero((PVOID) prStaInfo->pucStaRecCached, prStaInfo->u4StaRecCachedSize); ASSERT(IS_ALIGN_4((UINT_32)prStaInfo->pucStaRecCached)); pucMemHandle = prStaInfo->pucStaRecCached; LINK_INITIALIZE(&prStaInfo->rFreeStaRecList); for (i = 0; i < CFG_MAX_NUM_STA_RECORD; i++) { prStaRec = (P_STA_RECORD_T)pucMemHandle; STA_RECORD_SET_GUID(prStaRec); LINK_INSERT_TAIL(&prStaInfo->rFreeStaRecList, &prStaRec->rLinkEntry); pucMemHandle += ALIGN_4(sizeof(STA_RECORD_T)); } /* Check if the memory allocation consist with this initialization function */ ASSERT((UINT_32)(pucMemHandle - prStaInfo->pucStaRecCached) == prStaInfo->u4StaRecCachedSize); for (i = 0; i < STA_RECORD_HASH_NUM; i++) { LINK_INITIALIZE(&prStaInfo->arValidStaRecList[i]); } prStaInfo->ucValidStaRecNum = 0; return; } /* end of staRecInitialize() */
/*----------------------------------------------------------------------------*/ VOID mboxSetup(IN P_ADAPTER_T prAdapter, IN ENUM_MBOX_ID_T eMboxId) { P_MBOX_T prMbox; KAL_SPIN_LOCK_DECLARATION(); ASSERT(eMboxId < MBOX_ID_TOTAL_NUM); ASSERT(prAdapter); prMbox = &(prAdapter->arMbox[eMboxId]); KAL_ACQUIRE_SPIN_LOCK(prAdapter, SPIN_LOCK_MAILBOX); LINK_INITIALIZE(&prMbox->rLinkHead); KAL_RELEASE_SPIN_LOCK(prAdapter, SPIN_LOCK_MAILBOX); }
/*----------------------------------------------------------------------------*/ VOID cnmTimerInitialize(IN P_ADAPTER_T prAdapter) { P_ROOT_TIMER prRootTimer; KAL_SPIN_LOCK_DECLARATION(); ASSERT(prAdapter); prRootTimer = &prAdapter->rRootTimer; /* Note: glue layer have configured timer */ KAL_ACQUIRE_SPIN_LOCK(prAdapter, SPIN_LOCK_TIMER); LINK_INITIALIZE(&prRootTimer->rLinkHead); KAL_RELEASE_SPIN_LOCK(prAdapter, SPIN_LOCK_TIMER); KAL_WAKE_LOCK_INIT(prAdapter, &prRootTimer->rWakeLock, "WLAN Timer"); prRootTimer->fgWakeLocked = FALSE; }
/*----------------------------------------------------------------------------*/ VOID timerInitialize ( IN P_ADAPTER_T prAdapter, IN PFN_TIMER_CALLBACK prfnTimerHandler ) { ASSERT(prAdapter); ASSERT(prfnTimerHandler); LINK_INITIALIZE(&prAdapter->rTimerList); #if CFG_USE_SW_ROOT_TIMER kalOsTimerInitialize(prAdapter->prGlueInfo, (PVOID)prfnTimerHandler); #else nichtTimerInit(prAdapter, WLAN_ROOT_TIMER, prfnTimerHandler); NIC_SET_INT_EVENT(prAdapter, WLAN_ROOT_TIMER_INT); #endif return; } /* end of timerInitialize() */
/*----------------------------------------------------------------------------*/ VOID timerUnInitialize ( IN P_ADAPTER_T prAdapter ) { ASSERT(prAdapter); LINK_INITIALIZE(&prAdapter->rTimerList); #if CFG_USE_SW_ROOT_TIMER /* <TODO> to reclaim the resource */ #else nichtCancelTimer(prAdapter, WLAN_ROOT_TIMER); NIC_UNSET_INT_EVENT(prAdapter, WLAN_ROOT_TIMER_INT); nichtKillTimer(prAdapter, WLAN_ROOT_TIMER); #endif return; } /* end of timerInitialize() */