/***************************************************************************** * FUNCTION * jpim_evtdb_upddateEntry * DESCRIPTION * This function updates an entry in the event database. * The index (physical storage index) must refer to a valid entry * in the database, otherwise an "invalid index" error is returned. * If the sort index changes after the update, a new sort index is assigned * PARAMETERS * entry [IN/OUT] * RETURNS * jpim_error_code_enum *****************************************************************************/ kal_int32 jpim_evtdb_upddateEntry_ext(mmi_evtdb_java_entry_struct *entry, kal_uint8 db_type, kal_int32 vm_id) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ kal_uint32 event_group; mmi_evtdb_java_set_entry_req_struct *p = (mmi_evtdb_java_set_entry_req_struct*) construct_local_para( sizeof(mmi_evtdb_java_set_entry_req_struct), TD_CTRL | TD_RESET); /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ JPIM_DEBUG(TRACE_GROUP_2, JPIM_EVTDB_UPDDATEENTRY); jpim_evtdb_adjustEntry(entry, db_type); #ifdef JSR_75_PIM_EXTRA_ALARM_TIME_USER_DEFINE jpim_evtdb_adjustAlarmTime(entry, db_type, KAL_TRUE); #endif p->entry_ptr = entry; p->index = entry->handle; p->sort_type = MMI_EVTDB_SORT_BY_TIME; p->db_index = jpim_evtdb_transfer_tdl_db(db_type); jpim_evtdb_result = MMI_EVTDB_JAVA_ERROR; jpim_evtdb_state = JPIM_EVTDB_STATE_UPDATE_ENTRY; jpim_evtdb_index = 0xffff; jpim_evtdb_handle = 0xffff; if (jpim_check_vm_state(1, vm_id)) { jpim_send_ilm(p, MSG_ID_MMI_EVTDB_JAVA_SET_ENTRY_REQ); kal_retrieve_eg_events(g_java_event_group_1, JAVA_EG_PIM_EVTDB_UPDATE_ENTRY, KAL_OR_CONSUME, &event_group, KAL_SUSPEND); entry->index = jpim_evtdb_index; entry->handle = jpim_evtdb_handle; } else { free_local_para((local_para_struct*) p); } return jpim_transfer_error_code(JPIM_EVENTDB, jpim_evtdb_result); }
/***************************************************************************** * FUNCTION * jpim_evtdb_getCount * DESCRIPTION * The function retrieves the total count of event database entries. * PARAMETERS * void * RETURNS * 0~n, -1 means database error *****************************************************************************/ kal_int32 jpim_evtdb_getCount(kal_uint8 db_type, kal_int32 vm_id) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ kal_uint32 event_group; mmi_evtdb_java_get_entry_req_struct *p = (mmi_evtdb_java_get_entry_req_struct*) construct_local_para( sizeof(mmi_evtdb_java_get_entry_req_struct), TD_CTRL | TD_RESET); /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ JPIM_DEBUG(TRACE_GROUP_2, JPIM_EVTDB_GETCOUNT); p->count = 0; p->entry_ptr = NULL; p->index = 1; p->sort_type = MMI_EVTDB_SORT_BY_TIME; p->db_index = jpim_evtdb_transfer_tdl_db(db_type); /* set cmccphk_state before send message!! */ jpim_evtdb_state = JPIM_EVTDB_STATE_GET_COUNT; jpim_evtdb_result = MMI_EVTDB_JAVA_ERROR; jpim_evtdb_count = -1; if (jpim_check_vm_state(0, vm_id)) { jpim_send_ilm(p, MSG_ID_MMI_EVTDB_JAVA_GET_ENTRY_REQ); kal_retrieve_eg_events(g_java_event_group_1, JAVA_EG_PIM_EVTDB_GETCOUNT, KAL_OR_CONSUME, &event_group, KAL_SUSPEND); } else { free_local_para((local_para_struct*) p); } if (jpim_evtdb_result != MMI_EVTDB_JAVA_SUCCESS) { return -1; } else { return jpim_evtdb_count; } }
kal_bool csmss_reset(void) { kal_uint8 index = 0; kal_uint8 i; for (i = 0; i < MAX_SIM_NUM; i++) { csmss_ptr_g = &csmss_g[i]; csmss_cur_mod = MOD_CSM+i; #if defined (__CPHS__) || defined (__REL4__) csmss_ptr_g->cfu_flag_len = 0; csmss_ptr_g->cfis_record_len = 0; #endif for (index = 0; index < MMI_CS_MAX_CALLS; index++) { csmss_g_call_id_pool[index] = KAL_FALSE; } // Revise interrogate: 1.query again for active, 2.if no respones from NW, clear the line. #ifndef __SS_NOT_INTERROGATE_ACTIVATESS__ if (csmss_g_query_act_req == KAL_TRUE) { csmss_g_query_act_req = KAL_FALSE; if (csmss_g_msg_ptr != NULL) free_local_para((local_para_struct *)csmss_g_msg_ptr); csmss_g_msg_ptr = NULL; } #endif #ifdef __SS_ERASURE_BEFORE_REGISTER__ if (csmss_g_erase_reg_req == KAL_TRUE) { csmss_g_erase_reg_req = KAL_FALSE; } #endif /* MAUI_01722785 add cf number interface */ csmss_g_cf_number_length = 0; } return KAL_TRUE; } /* end of csmss_reset */
/***************************************************************************** * FUNCTION * jpim_evtdb_deleteEntry * DESCRIPTION * This function deletes an entry from the event database. * PARAMETERS * handle [IN] * RETURNS * jpim_error_code_enum *****************************************************************************/ kal_int32 jpim_evtdb_deleteEntry(kal_uint16 handle, kal_uint8 db_type, kal_int32 vm_id) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ kal_uint32 event_group; mmi_evtdb_java_set_entry_req_struct *p = (mmi_evtdb_java_set_entry_req_struct*) construct_local_para( sizeof(mmi_evtdb_java_set_entry_req_struct), TD_CTRL | TD_RESET); /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ JPIM_DEBUG(TRACE_GROUP_2, JPIM_EVTDB_DELETEENTRY); p->entry_ptr = NULL; p->index = handle; p->sort_type = MMI_EVTDB_SORT_BY_TIME; p->db_index = jpim_evtdb_transfer_tdl_db(db_type); jpim_evtdb_result = MMI_EVTDB_JAVA_ERROR; jpim_evtdb_state = JPIM_EVTDB_STATE_DELETE_ENTRY; if (jpim_check_vm_state(1, vm_id)) { jpim_send_ilm(p, MSG_ID_MMI_EVTDB_JAVA_SET_ENTRY_REQ); kal_retrieve_eg_events(g_java_event_group_1, JAVA_EG_PIM_EVTDB_DELETE_ENTRY, KAL_OR_CONSUME, &event_group, KAL_SUSPEND); } else { free_local_para((local_para_struct*) p); } return jpim_transfer_error_code(JPIM_EVENTDB, jpim_evtdb_result); }
/***************************************************************************** * FUNCTION * nvram_send_L1_cal * DESCRIPTION * * PARAMETERS * void * RETURNS * void *****************************************************************************/ void nvram_send_L1_cal(void) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ /** * file_idx should be the first L1 element in the logical data item ID enum * Currently, L1 calibration data element is as following: * NVRAM_EF_L1_AGCPATHLOSS_LID, NVRAM_EF_L1_RAMPTABLE_GSM900_LID, * NVRAM_EF_L1_RAMPTABLE_DCS1800_LID, NVRAM_EF_L1_RAMPTABLE_PCS1900_LID, * NVRAM_EF_L1_AFCDATA_LID, VRAM_EF_L1_L1SPFC_LID, */ nvram_lid_enum file_idx; ltable_entry_struct *ldi; peer_buff_struct *peer_buf_ptr; kal_uint8 *pdu_ptr; kal_uint16 pdu_length; nvram_read_req_struct *local_data; /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ local_data = (nvram_read_req_struct*) construct_local_para(sizeof(nvram_read_req_struct), TD_CTRL); for (file_idx = NVRAM_EF_L1_START; file_idx <= NVRAM_EF_L1_END; file_idx++) { if (!NVRAM_IS_LID_VALID(file_idx)) { continue; } switch(file_idx) { case NVRAM_EF_L1_AGCPATHLOSS_LID: case NVRAM_EF_L1_RAMPTABLE_GSM850_LID: case NVRAM_EF_L1_RAMPTABLE_GSM900_LID: case NVRAM_EF_L1_RAMPTABLE_DCS1800_LID: case NVRAM_EF_L1_RAMPTABLE_PCS1900_LID: #if defined(__EPSK_TX__) case NVRAM_EF_L1_EPSK_RAMPTABLE_GSM850_LID: case NVRAM_EF_L1_EPSK_RAMPTABLE_GSM900_LID: case NVRAM_EF_L1_EPSK_RAMPTABLE_DCS1800_LID: case NVRAM_EF_L1_EPSK_RAMPTABLE_PCS1900_LID: case NVRAM_EF_L1_EPSK_INTERSLOT_RAMP_GSM850_LID: case NVRAM_EF_L1_EPSK_INTERSLOT_RAMP_GSM900_LID: case NVRAM_EF_L1_EPSK_INTERSLOT_RAMP_DCS1800_LID: case NVRAM_EF_L1_EPSK_INTERSLOT_RAMP_PCS1900_LID: #endif /* __EPSK_TX__ */ case NVRAM_EF_L1_AFCDATA_LID: case NVRAM_EF_L1_TXIQ_LID: case NVRAM_EF_L1_RFSPECIALCOEF_LID: case NVRAM_EF_L1_INTERSLOT_RAMP_GSM850_LID: case NVRAM_EF_L1_INTERSLOT_RAMP_GSM900_LID: case NVRAM_EF_L1_INTERSLOT_RAMP_DCS1800_LID: case NVRAM_EF_L1_INTERSLOT_RAMP_PCS1900_LID: case NVRAM_EF_L1_CRYSTAL_AFCDATA_LID: case NVRAM_EF_L1_CRYSTAL_CAPDATA_LID: { nvram_get_data_item(ldi, file_idx); local_data->access_id = 0; local_data->file_idx = file_idx; local_data->para = 1; pdu_length = ldi->size; peer_buf_ptr = construct_peer_buff(pdu_length, 0, 0, TD_CTRL); ASSERT(peer_buf_ptr != NULL); pdu_ptr = get_pdu_ptr(peer_buf_ptr, &pdu_length); ASSERT(pdu_ptr != NULL); nvram_read_confirm (MOD_L1, nvram_read_data_item(ldi, 1, 1, pdu_ptr, pdu_length), local_data, ldi->size, peer_buf_ptr); break; } } } free_local_para((local_para_struct*) local_data); } /* end of nvram_send_L1_cal function */
/***************************************************************************** * FUNCTION * jpim_evtdb_fetchByIndex * DESCRIPTION * This function retrieves an entry from the event database. The data is filled into "entry" parameter. * PARAMETERS * entry [OUT] * index [IN] 0~n-1 * sort_type [IN] jpim_evtdb_sort_enum * db_type [IN] jpim_evtdb_db_enum * RETURNS * jpim_error_code_enum *****************************************************************************/ kal_int32 jpim_evtdb_fetchByIndex(mmi_evtdb_java_entry_struct *entry, kal_uint16 index, kal_uint8 sort_type, kal_uint8 db_type, kal_int32 vm_id) { /*----------------------------------------------------------------*/ /* Local Variables */ /*----------------------------------------------------------------*/ kal_uint32 event_group; mmi_evtdb_java_get_entry_req_struct *p = (mmi_evtdb_java_get_entry_req_struct*) construct_local_para( sizeof(mmi_evtdb_java_get_entry_req_struct), TD_CTRL | TD_RESET); /*----------------------------------------------------------------*/ /* Code Body */ /*----------------------------------------------------------------*/ p->entry_ptr = entry; p->index = index; p->sort_type = MMI_EVTDB_SORT_BY_TIME; p->db_index = jpim_evtdb_transfer_tdl_db(db_type); p->count = 1; jpim_evtdb_result = MMI_EVTDB_JAVA_ERROR; jpim_evtdb_state = JPIM_EVTDB_STATE_GET_ENTRY; if (jpim_check_vm_state(0, vm_id)) { jpim_send_ilm(p, MSG_ID_MMI_EVTDB_JAVA_GET_ENTRY_REQ); kal_retrieve_eg_events(g_java_event_group_1, JAVA_EG_PIM_EVTDB_FETCH_INDEX, KAL_OR_CONSUME, &event_group, KAL_SUSPEND); JPIM_DEBUG(TRACE_GROUP_2, JPIM_EVTDB_FETCHBYINDEX, entry->handle, entry->index); } else { free_local_para((local_para_struct*) p); } if(jpim_transfer_error_code(JPIM_EVENTDB, jpim_evtdb_result) == JPIM_SUCCESS) { #ifdef JSR_75_PIM_EXTRA_ALARM_TIME_USER_DEFINE jpim_evtdb_adjustAlarmTime(entry, db_type, KAL_FALSE); #endif #ifndef __COSMOS_MMI_PACKAGE__ if (db_type == JPIM_EVTDB_REMINDER || db_type == JPIM_EVTDB_MEETING || db_type == JPIM_EVTDB_COURSE || db_type == JPIM_EVTDB_DATE || db_type == JPIM_EVTDB_CALL|| db_type == JPIM_EVTDB_ANNIVERSARY || db_type == JPIM_EVTDB_ALL) #else if (db_type == JPIM_EVTDB_PERSONAL || db_type == JPIM_EVTDB_MEETING || db_type == JPIM_EVTDB_SPECIALDAY || db_type == JPIM_EVTDB_BIRTHDAY || db_type == JPIM_EVTDB_OTHERS || db_type == JPIM_EVTDB_ALL) #endif { if (applib_dt_compare_time(&(entry->endTime), &(entry->startTime), NULL) == DT_TIME_LESS) { memcpy(&(entry->endTime), &(entry->startTime), sizeof(applib_time_struct)); } } if (db_type == JPIM_EVTDB_TASK) { #ifdef JSR_75_PIM_EXTRA_TODO if (entry->status == SRV_TDL_STATUS_UNDONE) { entry->complete_time.nYear = 0; entry->complete_time.nMonth = 0; entry->complete_time.nDay = 0; } #endif } } return jpim_transfer_error_code(JPIM_EVENTDB, jpim_evtdb_result); }
/************************************************************************* * FUNCTION * ccci_ipc_send_msg * * DESCRIPTION * This function is the internal api to send message * * PARAMETERS * ipc_task_id - * buffer_ptr - * msg_size - * wait_mode - * message_to_head - * * RETURNS * status - success/fail * *************************************************************************/ kal_bool ccci_ipc_send_msg(kal_uint32 ipc_task_id, void *buffer_ptr, kal_uint16 msg_size, kal_wait_mode wait_mode, kal_bool message_to_head) { kal_uint32 i, j ; kal_uint32 retrieved_events = 0, orig_local_addr = 0 , orig_peer_addr = 0, update_buff_addr=0; kal_int32 result = CCCI_SUCCESS; ipc_ilm_t *temp_ipc_ilm = (ipc_ilm_t *)buffer_ptr; ccci_io_request_t ior = {0}; CCCI_BUFF_T *p_ccci_buff; kal_uint32 len = 0; ccci_ipc_trace(CCCI_IPC_TRACE, CCCI_IPC_MOD_DATA, CCCI_SEND_MSG_FUNC_TRA); ccci_ipc_trace(CCCI_IPC_TRACE, CCCI_IPC_MOD_DATA, CCCI_SEND_MSG_TRA_ILM, temp_ipc_ilm, temp_ipc_ilm->src_mod_id, temp_ipc_ilm->dest_mod_id, temp_ipc_ilm->sap_id, temp_ipc_ilm->msg_id, temp_ipc_ilm->local_para_ptr, temp_ipc_ilm->peer_buff_ptr); /* get ext queue id from mapping table of task id - destnation*/ for (i = 0; i < MAX_CCCI_IPC_TASKS; i++) { if ( ccci_ipc_maptbl[i].task_id == ipc_task_id ) { break; } } /* get ext queue id from mapping table of task id - source*/ for (j = 0; j < MAX_CCCI_IPC_TASKS; j++) { if ( ccci_ipc_maptbl[j].task_id == temp_ipc_ilm->src_mod_id ) { break; } } /* check src mod id, if it's not defined in CCCI IPC, don't set used bit */ if(j >= MAX_CCCI_IPC_TASKS) { ccci_ipc_trace(CCCI_IPC_ERR, CCCI_IPC_MOD_DATA, CCCI_SEND_MSG_FUNC_TASKID_ERROR, ipc_task_id, temp_ipc_ilm->src_mod_id); return KAL_FALSE; } /* check if the extquque id can not be found */ if (i >= MAX_CCCI_IPC_TASKS) { ccci_ipc_trace(CCCI_IPC_ERR, CCCI_IPC_MOD_DATA, CCCI_SEND_MSG_FUNC_TASKID_ERROR, ipc_task_id, temp_ipc_ilm->src_mod_id); ((CCCI_IPC_ILM_T*)buffer_ptr)->used = 0; return KAL_FALSE; } /* check if the extquque id is to AP */ if ((ccci_ipc_maptbl[i].extq_id & AP_UINFY_ID_FLAG) == 0) { ccci_ipc_trace(CCCI_IPC_ERR, CCCI_IPC_MOD_DATA, CCCI_SEND_MSG_FUNC_DESTID_ERROR, ipc_task_id); ((CCCI_IPC_ILM_T*)buffer_ptr)->used = 0; return KAL_FALSE; } /* check if the ilm buffer is from ipc_msgsvc_allocate_ilm or not */ if (buffer_ptr != &ccci_ipc_ilm_arr[j].ipc_ilm){ ccci_ipc_trace(CCCI_IPC_ERR, CCCI_IPC_MOD_DATA, CCCI_SEND_MSG_FUNC_ILM_ERROR); return KAL_FALSE; } len = sizeof(CCCI_BUFF_T) + sizeof(ipc_ilm_t); if (temp_ipc_ilm->local_para_ptr != NULL){ len+= temp_ipc_ilm->local_para_ptr->msg_len ; } if( temp_ipc_ilm->peer_buff_ptr != NULL){ len+= sizeof(peer_buff_struct) + temp_ipc_ilm->peer_buff_ptr->pdu_len + temp_ipc_ilm->peer_buff_ptr->free_header_space + temp_ipc_ilm->peer_buff_ptr->free_tail_space; } //assert if ilm size > CCCI_IPC_GPD size EXT_ASSERT(len < CCCI_IPC_GPD_SIZE, len, CCCI_IPC_GPD_SIZE, 0); /* Use critical section to protect ENTER */ CCCI_IPC_ENTER_CRITICAL_SECTION if (KAL_TRUE == kal_query_systemInit()){ // polling mode ior.first_gpd = ccci_ipc_ch.p_polling_gpd; ior.last_gpd = ccci_ipc_ch.p_polling_gpd; } else{ #ifdef __SDIOC_PULL_Q_ENH_DL__ ior.num_gpd = #endif qbmt_alloc_q_no_tail( CCCI_IPC_GPD_TYPE, /* type */ 1, /* buff_num */ (void **)(&ior.first_gpd), /* pp_head */ (void **)(&ior.last_gpd)); /* pp_tail */ if(ior.first_gpd == NULL){ ccci_ipc_trace(CCCI_IPC_ERR, CCCI_IPC_MOD_DATA, CCCI_SEND_MSG_FUNC_ALLOC_GPD_ERROR); return KAL_FALSE; } } //initialize GPD CCCI_Header content p_ccci_buff = CCCIDEV_GET_QBM_DATAPTR(ior.first_gpd); p_ccci_buff->data[1] = (kal_uint32)len; p_ccci_buff->channel = (kal_uint32)ccci_ipc_ch.send_channel; p_ccci_buff->reserved = (kal_uint32)ccci_ipc_maptbl[i].extq_id; ccci_debug_add_seq(p_ccci_buff, CCCI_DEBUG_ASSERT_BIT); // add ccci seq QBM_DES_SET_DATALEN(ior.first_gpd, p_ccci_buff->data[1]); QBM_DES_SET_DATALEN(ior.first_gpd->p_data_tbd, p_ccci_buff->data[1]); qbm_cal_set_checksum((kal_uint8 *)ior.first_gpd); qbm_cal_set_checksum((kal_uint8 *)ior.first_gpd->p_data_tbd); QBM_CACHE_FLUSH(ior.first_gpd, sizeof(qbm_gpd)); QBM_CACHE_FLUSH(ior.first_gpd->p_data_tbd, sizeof(qbm_gpd)); //copy ilm to GPD temp_ipc_ilm->src_mod_id = ccci_ipc_maptbl[j].extq_id; update_buff_addr = (kal_uint32)p_ccci_buff; update_buff_addr += sizeof(CCCI_BUFF_T); CCCI_KAL_MSG_TO_AP_MSG(temp_ipc_ilm->msg_id, temp_ipc_ilm->msg_id); kal_mem_cpy((kal_uint8 *)update_buff_addr ,(kal_uint8 *)temp_ipc_ilm, sizeof(ipc_ilm_t)); if (temp_ipc_ilm->local_para_ptr != NULL){ //copy loca_para_struct to GPD update_buff_addr += sizeof(ipc_ilm_t); //24 bytes orig_local_addr = update_buff_addr; kal_mem_cpy((kal_uint8 *)update_buff_addr,(kal_uint8 *)temp_ipc_ilm->local_para_ptr, temp_ipc_ilm->local_para_ptr->msg_len); } if( temp_ipc_ilm->peer_buff_ptr != NULL){ //copy peer buff_struct to GPD if (temp_ipc_ilm->local_para_ptr != NULL){ update_buff_addr += temp_ipc_ilm->local_para_ptr->msg_len;//should be 4 bytes alignment?? } else{ update_buff_addr += sizeof(ipc_ilm_t); //24 bytes } orig_peer_addr = update_buff_addr; kal_mem_cpy((kal_uint8 *)update_buff_addr,(kal_uint8 *)temp_ipc_ilm->peer_buff_ptr, sizeof(peer_buff_struct) + temp_ipc_ilm->peer_buff_ptr->pdu_len + temp_ipc_ilm->peer_buff_ptr->free_header_space + temp_ipc_ilm->peer_buff_ptr->free_tail_space); } free_local_para(temp_ipc_ilm->local_para_ptr); temp_ipc_ilm->local_para_ptr = (local_para_struct *)orig_local_addr;//assign not NULL ptr to indicate there have content free_peer_buff(temp_ipc_ilm->peer_buff_ptr); temp_ipc_ilm->peer_buff_ptr = (peer_buff_struct *)orig_peer_addr;//assign not NULL ptr to indicate there have content QBM_CACHE_FLUSH(p_ccci_buff, len); if (KAL_TRUE == kal_query_systemInit()){ // polling mode result = ccci_polling_io(ccci_ipc_ch.send_channel, ccci_ipc_ch.p_polling_gpd, KAL_TRUE); CCCIDEV_RST_CCCI_COMM_GPD_LIST(ccci_ipc_ch.p_polling_gpd,ccci_ipc_ch.p_polling_gpd); } else{ result = ccci_ipc_ch.ccci_write_gpd(ccci_ipc_ch.send_channel, &ior, NULL); if (KAL_INFINITE_WAIT == wait_mode && CCCI_SUCCESS == result){ /* Wait for feedabck by retrieve event */ kal_retrieve_eg_events(ccci_ipc_ch.event, 1 << i, KAL_AND_CONSUME, &retrieved_events, KAL_SUSPEND); } } /* Exit critical section */ CCCI_IPC_EXIT_CRITICAL_SECTION ((CCCI_IPC_ILM_T*)buffer_ptr)->used = 0; ccci_ipc_trace(CCCI_IPC_TRACE, CCCI_IPC_MOD_DATA, CCCI_SEND_MSG_TRA_CCCI, p_ccci_buff->data[0], p_ccci_buff->data[1], p_ccci_buff->channel, p_ccci_buff->reserved); ccci_ipc_trace(CCCI_IPC_TRACE, CCCI_IPC_MOD_DATA, CCCI_SEND_MSG_FUNC_PASS_TRA); /* Finish */ if (result == CCCI_SUCCESS){ return KAL_TRUE; } else{ return KAL_FALSE; } }