Esempio n. 1
0
srv_ies_result srv_ies_job_init(srv_ies_app_session_handle hApp)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    kal_uint32 taskID;
    kal_int32  index;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    if (0 == g_srv_ies_hdl_mutex)
    {
        g_srv_ies_hdl_mutex = kal_create_mutex("IESHDLMX");
        ASSERT(0 != g_srv_ies_hdl_mutex);
    }

    kal_take_mutex(g_srv_ies_hdl_mutex);
    if (0 == g_srv_ies_job_user)
    {
        kal_get_my_task_index(&taskID);
        if(INDX_MMI == taskID)
        {
            mmi_frm_set_protocol_event_handler(MSG_ID_IES_JOB_RSP,
                                               &_srv_ies_job_response_handler,
                                               MMI_FALSE);
        }

        memset(g_srv_ies_curr_job, 0x0, sizeof(srv_ies_job*) * SRV_IES_JOB_MAX_JOB_COUNT);
   
        for (index = 0; index < SRV_IES_JOB_MAX_JOB_COUNT; index++)
        {
            g_srv_ies_job_pool[index].jobID = index;
        }
    }

    hApp->appState |= SRV_IES_APP_STATE_JOB_INITED;

    g_srv_ies_job_user++;
    kal_give_mutex(g_srv_ies_hdl_mutex);

    g_srv_ies_job_deinit = KAL_FALSE;

    return SRV_IES_OK;
}
Esempio n. 2
0
static  void vuart_task_main(task_entry_struct *task_entry_ptr)
{
    ilm_struct current_ilm;

    kal_uint32   my_index;

    kal_get_my_task_index(&my_index);
    stack_set_active_module_id (my_index, MOD_VUART);

    while (1)
    {
        receive_msg_ext_q( task_info_g[task_entry_ptr->task_indx].task_ext_qid,
                           &current_ilm);
        vuart_main(&current_ilm);
        free_ilm(&current_ilm);

    }

}
/*****************************************************************************
 * FUNCTION
 *  CalHighTaskMain
 * DESCRIPTION
 *  This function is main function of CAL HIGH task.
 * PARAMETERS
 *  task_entry_ptr      [?]
 * RETURNS
 *  void
 *****************************************************************************/
void CalHighTaskMain(task_entry_struct *pTaskEntry)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    ilm_struct CurrentIlm;
    kal_uint32 CalHighTaskIndex;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_get_my_task_index(&CalHighTaskIndex);

    while (1)
    {
        receive_msg_ext_q_for_stack(task_info_g[CalHighTaskIndex].task_ext_qid, &CurrentIlm);
        stack_set_active_module_id(CalHighTaskIndex, CurrentIlm.dest_mod_id);

        CalHighMsgHandle(&CurrentIlm);

        free_ilm(&CurrentIlm);
    }
} /* CalHighTaskMain() */
Esempio n. 4
0
/*****************************************************************************
 * FUNCTION
 *  vcodec_v2_task_main
 * DESCRIPTION
 *  Vcodec task main
 * PARAMETERS
 *  task_entry_ptr      [IN]        task struct pointer
 * RETURNS
 *  void
 *****************************************************************************/
static void vcodec_v2_task_main(task_entry_struct *task_entry_ptr)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    ilm_struct current_ilm;
    kal_uint32 my_index;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    kal_get_my_task_index(&my_index);

    while (1)
    {
        receive_msg_ext_q_for_stack(task_info_g[task_entry_ptr->task_indx].task_ext_qid, &current_ilm);
        stack_set_active_module_id(my_index, current_ilm.dest_mod_id);

        vcodec_v2_main((void*)&current_ilm);

        free_ilm(&current_ilm);
    }

}
Esempio n. 5
0
srv_ies_result srv_ies_job_deinit(srv_ies_app_session_handle hApp)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    srv_ies_job             *pJob;
    kal_int32               index;
    SRV_IES_JOB_STATE_ENUM  state;
    kal_uint32              taskID;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    hApp->appState &= ~SRV_IES_APP_STATE_JOB_INITED;

    for (index = 0; index < SRV_IES_JOB_MAX_JOB_COUNT; index++)
    {
        kal_take_mutex(g_srv_ies_hdl_mutex);
        pJob = g_srv_ies_curr_job[index];
        kal_give_mutex(g_srv_ies_hdl_mutex);
        if (pJob)
        {
            kal_take_mutex(g_srv_ies_job_mutex);
            state = pJob->state;
            kal_give_mutex(g_srv_ies_job_mutex);

            if ((pJob->pParent == hApp) &&
                (SRV_IES_JOB_STATE_INVALID  != state) &&
                (SRV_IES_JOB_STATE_FINISHED != state))
            {
                srv_ies_job_cancel(pJob);
            }
            else if ((pJob->pParent == hApp) &&
                     (SRV_IES_JOB_STATE_FINISHED == state))
            {
               g_srv_ies_curr_job[index] = NULL;
               pJob->seqNum = 0;
               TYPED_FREE(pJob, srv_ies_job);
            }

            pJob->state = SRV_IES_JOB_STATE_INVALID;
        }
    }

    kal_take_mutex(g_srv_ies_hdl_mutex);

    g_srv_ies_job_user--;
    ASSERT(g_srv_ies_job_user >= 0);

    if (0 == g_srv_ies_job_user)
    {
        kal_get_my_task_index(&taskID);
        if(INDX_MMI == taskID)
        {
            mmi_frm_clear_protocol_event_handler(MSG_ID_IES_JOB_RSP,
                                                 &_srv_ies_job_response_handler);
        }

        g_srv_ies_job_deinit = KAL_TRUE;
    }
    kal_give_mutex(g_srv_ies_hdl_mutex);

    return SRV_IES_OK;
}