/***************************************************************************** PROCEDURE NAME : eds_tmr_exp DESCRIPTION : EDS timer expiry callback routine.It sends corresponding timer events to EDS. ARGUMENTS : uarg - ptr to the EDS timer block RETURNS : void NOTES : None *****************************************************************************/ void eds_tmr_exp(void *uarg) { EDS_CB *eds_cb = 0; EDS_TMR *tmr = (EDS_TMR *)uarg; EDSV_EDS_EVT *evt = 0; uns32 temp_tmr_hdl; temp_tmr_hdl = tmr->cb_hdl; /* retrieve EDS CB */ if (NULL == (eds_cb = (EDS_CB *)ncshm_take_hdl(NCS_SERVICE_ID_EDS, tmr->cb_hdl))) { m_LOG_EDSV_S(EDS_CB_TAKE_HANDLE_FAILED, NCSFL_LC_EDSV_INIT, NCSFL_SEV_ERROR, 0, __FILE__, __LINE__, 0); return; } if (tmr->is_active) { tmr->is_active = FALSE; /* Destroy the timer if it exists.. */ if (tmr->tmr_id != TMR_T_NULL) { m_NCS_TMR_DESTROY(tmr->tmr_id); tmr->tmr_id = TMR_T_NULL; } /* create & send the timer event */ evt = m_MMGR_ALLOC_EDSV_EDS_EVT; if (evt) { memset(evt, '\0', sizeof(EDSV_EDS_EVT)); /* assign the timer evt */ evt->evt_type = eds_tmr_evt_map(tmr->type); evt->info.tmr_info.opq_hdl = tmr->opq_hdl; evt->cb_hdl = tmr->cb_hdl; if (NCSCC_RC_FAILURE == m_NCS_IPC_SEND(&eds_cb->mbx, evt, NCS_IPC_PRIORITY_HIGH)) { m_LOG_EDSV_S(EDS_TIMER_STOP_FAIL, NCSFL_LC_EDSV_INIT, NCSFL_SEV_ERROR, evt->cb_hdl, __FILE__, __LINE__, evt->evt_type); eds_evt_destroy(evt); } } } /* return EDS CB */ ncshm_give_hdl(temp_tmr_hdl); return; }
/***************************************************************************** PROCEDURE NAME : eds_tmr_exp DESCRIPTION : EDS timer expiry callback routine.It sends corresponding timer events to EDS. ARGUMENTS : uarg - ptr to the EDS timer block RETURNS : void NOTES : None *****************************************************************************/ void eds_tmr_exp(void *uarg) { EDS_CB *eds_cb = 0; EDS_TMR *tmr = (EDS_TMR *)uarg; EDSV_EDS_EVT *evt = 0; uint32_t temp_tmr_hdl; temp_tmr_hdl = tmr->cb_hdl; /* retrieve EDS CB */ if (NULL == (eds_cb = (EDS_CB *)ncshm_take_hdl(NCS_SERVICE_ID_EDS, tmr->cb_hdl))) { LOG_ER("Global take handle failed"); return; } if (tmr->is_active) { tmr->is_active = false; /* Destroy the timer if it exists.. */ if (tmr->tmr_id != TMR_T_NULL) { m_NCS_TMR_DESTROY(tmr->tmr_id); tmr->tmr_id = TMR_T_NULL; } /* create & send the timer event */ evt = m_MMGR_ALLOC_EDSV_EDS_EVT; if (evt) { memset(evt, '\0', sizeof(EDSV_EDS_EVT)); /* assign the timer evt */ evt->evt_type = eds_tmr_evt_map(tmr->type); evt->info.tmr_info.opq_hdl = tmr->opq_hdl; evt->cb_hdl = tmr->cb_hdl; if (NCSCC_RC_FAILURE == m_NCS_IPC_SEND(&eds_cb->mbx, evt, NCS_IPC_PRIORITY_HIGH)) { LOG_ER("IPC send failed for timer event"); eds_evt_destroy(evt); } } } /* return EDS CB */ ncshm_give_hdl(temp_tmr_hdl); return; }