void tcm_timer_expiry(ilm_struct *ilm_rcv) { /* Poying: Use new EV_SH api. */ // if (stack_is_time_out_valid(&(base_timer))) { evshed_timer_handler( tcm_ptr_g->tcm_event_scheduler_ptr ) ; // tcm_timer_expiry_hdlr } // stack_process_time_out(&(base_timer)); return ; }
/***************************************************************************** * FUNCTION * med_timer_expiry_hdlr * DESCRIPTION * * PARAMETERS * ilm_ptr [?] * RETURNS * void *****************************************************************************/ void med_timer_expiry_hdlr(ilm_struct *ilm_ptr) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ stack_timer_struct *stack_timer_ptr; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ stack_timer_ptr = (stack_timer_struct*) ilm_ptr->local_para_ptr; if (stack_timer_ptr->timer_indx == MED_BASE_TIMER_ID) { /* Execute event's timeout handler */ evshed_timer_handler(med_context_p->event_scheduler_ptr); } }
/***************************************************************************** * FUNCTION * avk_mytimer_expiry_handler * DESCRIPTION * mytimer proc for EVT_ID_MMI_TIMER_EXPIRY_PROC_EXT * PARAMETERS * evt : [IN] mmi timer event pointer in fact * RETURNS * 0 : callback manager will continue to deliver this event * non-zero : callback manager will stop deliver this event *****************************************************************************/ extern "C" mmi_ret avk_mytimer_expiry_handler(mmi_event_struct *evt) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ mmi_timer_event_struct *timer_event; ilm_struct *ilm; kal_uint16 timer_index; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ timer_event = (mmi_timer_event_struct *)evt; ilm = (ilm_struct *)timer_event->expiry_msg; timer_index = evshed_get_index(ilm); if (AVK_MYTIMER_BASE_ID == timer_index) { evshed_timer_handler((event_scheduler *)g_mytimer_base_cntx); /* my timer expiry msg, return non-zero to stop deliver timer event */ return 1; } /* not my timer expiry msg, return 0 to continue to deliver timer event for other listeners */ return 0; }
/***************************************************************************** * FUNCTION * rac_main * DESCRIPTION * rac_main is the dispacher of message handler.. * * PARAMETERS * ilm_ptr IN Inter layer messages. * * RETURNS * none * GLOBALS AFFECTED * none *****************************************************************************/ void rac_main( ilm_struct *ilm_ptr ) { local_para_struct *local_para_ptr = ilm_ptr->local_para_ptr; peer_buff_struct *peer_buff_ptr = ilm_ptr->peer_buff_ptr; rac_context_struct * rac_ptr_g = rac_ptr_global; kal_brief_trace(TRACE_INFO,RAC_INFO_BEFORE_MAIN, rac_ptr_g->current_action, rac_ptr_g->rac_mm_state, rac_ptr_g->rac_gmm_state); switch( ilm_ptr->msg_id ) { /*****************************/ /* L4C Message */ /*****************************/ case MSG_ID_L4CRAC_SET_PREFERRED_BAND_REQ: rac_l4c_set_preferred_band_req_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_L4CRAC_RFOFF_REQ: rac_l4c_rfoff_req_handler(); break; case MSG_ID_L4CRAC_ACT_REQ : rac_l4c_act_req_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_L4CRAC_REG_REQ: rac_l4c_reg_req_msg_handler(local_para_ptr, peer_buff_ptr); break; #ifdef __PS_SERVICE__ case MSG_ID_L4CRAC_PS_REG_REQ: rac_l4c_ps_reg_req_msg_handler(local_para_ptr, peer_buff_ptr); break; #endif case MSG_ID_L4CRAC_DEREG_REQ: rac_l4c_dereg_req_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_L4CRAC_PLMN_LIST_REQ: rac_l4c_plmn_list_req_msg_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_L4CRAC_PLMN_SEARCH_REQ: rac_l4c_plmn_search_req_msg_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_L4CRAC_PLMN_LIST_STOP_REQ: rac_l4c_plmn_list_stop_req_msg_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_L4CRAC_CLASS_CHANGE_REQ: rac_l4c_class_change_req_msg_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_L4CRAC_SET_RAT_MODE_REQ: rac_l4c_set_rat_mode_req_msg_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_L4CRAC_SET_PREFER_RAT_REQ: rac_l4c_set_prefer_rat_req_msg_handler(local_para_ptr, peer_buff_ptr); break; #ifdef __2STAGE_NW_SELECTION__ case MSG_ID_L4CRAC_SUSP_RESU_UPDATE_REQ: rac_l4c_susp_resu_update_req_msg_handler(local_para_ptr, peer_buff_ptr); break; #endif case MSG_ID_L4CRAC_SET_ROAMING_MODE_REQ: rac_l4c_set_roaming_mode_req_handler(local_para_ptr, peer_buff_ptr); break; #ifdef __DYNAMIC_SET_IMEI__ case MSG_ID_L4CRAC_SET_IMEI_REQ: rac_l4c_set_imei_req_handler(local_para_ptr, peer_buff_ptr); break; #endif #ifdef __UE_EFOPLMN__ case MSG_ID_L4CRAC_UE_OPLMN_UPDATE_REQ: rac_l4c_set_ue_oplmn_update_req_handler(local_para_ptr, peer_buff_ptr); break; #endif /*****************************/ /* NVRAM Message */ /*****************************/ case MSG_ID_NVRAM_READ_CNF: rac_nvram_read_cnf_msg_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_NVRAM_WRITE_CNF: /* Do nothing, since don't know how */ /* John Tang 2004/07/09: */ rac_nvram_write_cnf_msg_handler(local_para_ptr, peer_buff_ptr); break; /*****************************/ /* MM Message */ /*****************************/ case MSG_ID_GMMREG_RFOFF_CNF: rac_mm_rfoff_cnf_handler(); break; case MSG_ID_GMMREG_ATTACH_CNF: rac_mm_attach_cnf_msg_handler(local_para_ptr, peer_buff_ptr); break; #if 0 /* Johnny: 3G RAC */ /* under construction !*/ /* under construction !*/ /* under construction !*/ /* under construction !*/ /* under construction !*/ /* under construction !*/ /* under construction !*/ #endif /* ~Johnny */ case MSG_ID_GMMREG_DETACH_IND: rac_mm_detach_ind_msg_handler(local_para_ptr, peer_buff_ptr); break; #if 0 /* Johnny: 3G RAC */ /* under construction !*/ /* under construction !*/ /* under construction !*/ #endif /* ~Johnny */ case MSG_ID_GMMREG_NW_INFO_IND: rac_mm_nw_info_ind_msg_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_GMMREG_PLMN_LIST_CNF: rac_mm_plmn_list_cnf_msg_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_GMMREG_CELL_INFO_UPDATE_IND: rac_mm_cell_info_update_ind_msg_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_GMMREG_CIPHER_IND: rac_mm_cipher_ind_msg_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_GMMREG_PLMN_SEARCH_CNF: rac_mm_plmn_search_cnf_msg_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_GMMREG_PLMN_LIST_STOP_CNF: rac_mm_plmn_list_stop_cnf_msg_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_GMMREG_SET_RAT_MODE_CNF: rac_mm_set_rat_mode_cnf_msg_handler(local_para_ptr, peer_buff_ptr); break; /* CH_Liang 2005/05/31: Notify L4C if entering dedicated / pkt transfer mode */ case MSG_ID_GMMREG_DEDICATED_MODE_IND: rac_mm_dedicated_mode_ind_msg_handler(local_para_ptr, peer_buff_ptr); break; #ifdef __HOMEZONE_SUPPORT__ case MSG_ID_MMIAS_PKT_TRANSFER_MODE_IND: rac_rr_pkt_transfer_mode_ind_msg_handler(local_para_ptr, peer_buff_ptr); break; #endif #ifdef __PS_SERVICE__ case MSG_ID_GMMREG_PS_SERVICE_INFO_IND: rac_mm_ps_service_info_ind_msg_handler(local_para_ptr, peer_buff_ptr); break; #endif #ifdef __REL5__ case MSG_ID_GMMREG_NW_ECC_IND: rac_mm_nw_ecc_ind_msg_handler(ilm_ptr); break; #endif case MSG_ID_GMMREG_SET_ROAMING_MODE_CNF: rac_mm_set_roaming_mode_cnf_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_GMMREG_SET_PREFER_RAT_CNF: break; #if defined (__NO_PSDATA_SEND_SCRI__) || defined (__FAST_DORMANCY__) case MSG_ID_GMMREG_END_PS_DATA_SESSION_IND: rac_mm_end_ps_data_session_ind_handler(local_para_ptr, peer_buff_ptr); break; #endif /*defined (__NO_PSDATA_SEND_SCRI__) || defined (__FAST_DORMANCY__) */ #ifdef __REPORT_AVAILABLE_PLMN__ case MSG_ID_GMMREG_PLMN_LIST_IND: rac_mm_plmn_list_ind_handler(local_para_ptr, peer_buff_ptr); break; #endif #ifdef __2STAGE_NW_SELECTION__ case MSG_ID_GMMREG_SUSP_RESU_UPDATE_CNF: rac_mm_susp_resu_update_cnf_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_GMMREG_SUSPEND_STATUS_IND: rac_mm_suspend_status_ind_handler(local_para_ptr, peer_buff_ptr); break; #endif /*****************************/ /* GEMINI Message */ /*****************************/ #ifdef __GEMINI__ case MSG_ID_GMMREG_POWERON_SEARCH_FINISH_IND: rac_mm_search_normal_finish_ind_handler(ilm_ptr); break; case MSG_ID_GMMREG_RR_SERVICE_STATUS_IND: //20080217 rac_mm_rr_service_status_ind_handler(ilm_ptr); break; case MSG_ID_L4CRAC_SIM_STATUS_UPDATE_REQ: //20071211 rac_l4c_sim_status_update_req_handler(ilm_ptr); break; #endif /*****************************/ /* SAT Message */ /*****************************/ #ifdef __SAT__ case MSG_ID_SAT_IMEI_INFO_REQ: rac_sat_imei_info_req_msg_handler(ilm_ptr); break; case MSG_ID_SAT_TIME_ZONE_REQ: rac_sat_time_zone_req_msg_handler(); break; #endif /* #ifdef __SAT__ */ #if defined(__FAST_DORMANCY__) || defined(__NO_PSDATA_SEND_SCRI__) //mtk02475: for Fast Dormancy, allow upperlayer explicitly disconnect data channel case MSG_ID_L4CRAC_END_PS_DATA_SESSION_REQ: rac_l4c_end_ps_data_session_req_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_GMMREG_END_PS_DATA_SESSION_CNF: rac_mm_end_ps_data_session_cnf_handler(local_para_ptr, peer_buff_ptr); break; #endif #ifdef __CSG_SUPPORT__ //mtk02475: for Rel8 CSG feature case MSG_ID_L4CRAC_CSG_LIST_REQ: rac_l4c_csg_list_req_msg_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_L4CRAC_CSG_LIST_STOP_REQ: rac_l4c_csg_list_stop_req_msg_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_GMMREG_CSG_LIST_CNF: rac_mm_csg_list_cnf_msg_handler(local_para_ptr, peer_buff_ptr); break; case MSG_ID_GMMREG_CSG_LIST_STOP_CNF: rac_mm_csg_list_stop_cnf_msg_handler(local_para_ptr, peer_buff_ptr); break; #endif /* __CSG_SUPPORT__ */ case MSG_ID_TIMER_EXPIRY: { //MAUI_02914482 [RAC] use evshed_create to replace new_evshed /* Execute event's timeout handler */ evshed_timer_handler(rac_ptr_g->event_scheduler_ptr); } break; #ifdef __MTK_INTERNAL__ /* under construction !*/ /* under construction !*/ #ifdef __UMTS_RAT__ /* under construction !*/ #endif /* under construction !*/ /* under construction !*/ #endif /* __MTK_INTERNAL__ */ default: DEBUG_ASSERT(0); break; } /* end of switch messages */ } /* end of rac_main*/
void usbc_cosim_core_task_main(task_entry_struct* task_entry_ptr) { kal_uint8 wait_count = 0; ilm_struct current_ilm; kal_uint32 rt_event; kal_uint16 timer_index; module_type dest_mod; msg_type msg_id; usbc_class_device_esl_connect_parm *rsp_msg_p; usbc_core_t* pUsbCore = usbc_core_get_instance(); kal_set_active_module_id(MOD_USBCORE); kal_mem_set(¤t_ilm, 0, sizeof(ilm_struct)); usbc_esl_printf("Start USBCORE task loop...\n"); while(1) { while ( msg_get_extq_messages() > 0 ) { if ( msg_receive_extq(¤t_ilm) != KAL_TRUE ) { break; } switch (current_ilm.msg_id) { case MSG_ID_TIMER_EXPIRY: timer_index = evshed_get_index(¤t_ilm); switch (timer_index) { case USBC_WK_NOTIFY_INDEX: ASSERT(0); evshed_timer_handler(pUsbCore->usbc_es_wk_notify_g); break; default: break; } break; default: break; } destroy_ilm(¤t_ilm); } /* Wait someone notify HMU to wake up HIF. */ rt_event = hmu_hifeg_wait(HIF_DRV_EG_HIF_TICK_EVENT | HIF_DRV_EG_USBC_IND_EVENT); if ((HIF_DRV_EG_HIF_TICK_EVENT & rt_event) && (pUsbCore->state != USBC_USB_STATE_SUSPENDED)) { /* poll HIF queue data */ usbc_esl_printf("Start HIF USB poll queue...\n"); usbc_normal_hif_poll_queue(); usbc_esl_printf("End HIF USB poll queue...\n"); } if ((HIF_DRV_EG_USBC_IND_EVENT & rt_event)) { /* Handle indications */ usbc_normal_hif_process_indications(); } // wait for IPCORE finishing handling ILMs in ipc_init if (wait_count < 1) { wait_count++; if(wait_count == 1) { usbc_esl_printf("Emulare USB enumeration...\n"); // Emulate USB plug-in for ESL COSIM usbc_cosim_hif_attach(); usbc_esl_printf("Set USB class to connected state...\n"); // change USB classes state to transfer data rsp_msg_p = (usbc_class_device_esl_connect_parm*)construct_local_para(sizeof(usbc_class_device_esl_connect_parm), TD_RESET); ASSERT(rsp_msg_p); rsp_msg_p->class_device_id = 0; msg_id = MSG_ID_USBCLASS_USBCORE_ESL_ENTER_CONNECTED_STATE_REQ; switch ((pUsbCore->class_device[0]).class_type) { #ifdef __USB_MBIM_SUPPORT__ case USB_CLASS_MBIM: dest_mod = MOD_MBIM; break; #endif #ifdef __USB_ECM_SUPPORT__ case USB_CLASS_ECM: dest_mod = MOD_ECM; break; #endif #ifdef __USB_RNDIS_SUPPORT__ case USB_CLASS_RNDIS: dest_mod = MOD_RNDIS; break; #endif default: // We assume the first class device must be a NIC for ESL CO-SIM ASSERT(0); return; break; } msg_send6(MOD_USBCORE, // src module dest_mod, // dst module 0, // sap id msg_id, (local_para_struct*)rsp_msg_p, 0); //msg id } } } }