Пример #1
0
/*------------------------------------------------------------------------------------------------------------------*/
CCONNP_MGR *cconnp_mgr_new()
{
    CCONNP_MGR *cconnp_mgr;
    alloc_static_mem(MM_CCONNP_MGR, &cconnp_mgr, LOC_CCONNP_0005);
    if(NULL_PTR == cconnp_mgr)
    {
        dbg_log(SEC_0154_CCONNP, 0)(LOGSTDOUT, "error:cconnp_mgr_new: failed to alloc CCONNP_MGR\n");
        return (NULL_PTR);
    }

    cconnp_mgr_init(cconnp_mgr);
    return (cconnp_mgr);
}
Пример #2
0
TASKC_NODE * taskc_node_new_0()
{
    TASKC_NODE *taskc_node;

    alloc_static_mem(MD_TASK, 0, MM_TASKC_NODE, &taskc_node, LOC_TCNODE_0002);
    if(NULL_PTR == taskc_node)
    {
        dbg_log(SEC_0088_TCNODE, 0)(LOGSTDOUT, "error:taskc_node_new_0: failed to alloc TASKC_NODE\n");
        return (NULL_PTR);
    }
    taskc_node_init(taskc_node);
    return (taskc_node);
}
Пример #3
0
EC_BOOL taskc_node_new(TASKC_NODE **ret_taskc_node)
{
    TASKC_NODE *taskc_node;

    alloc_static_mem(MD_TASK, 0, MM_TASKC_NODE, &taskc_node, LOC_TCNODE_0001);
    if(NULL_PTR == taskc_node)
    {
        dbg_log(SEC_0088_TCNODE, 0)(LOGSTDOUT, "error:taskc_node_new: failed to alloc TASKC_NODE\n");
        return (EC_FALSE);
    }
    taskc_node_init(taskc_node);
    (*ret_taskc_node) = taskc_node;
    return (EC_TRUE);
}
Пример #4
0
/*-------------------------------------------- interface of TASKC_MGR --------------------------------------------*/
TASKC_MGR * taskc_mgr_new()
{
    TASKC_MGR *taskc_mgr;

    alloc_static_mem(MD_TASK, 0, MM_TASKC_MGR, &(taskc_mgr), LOC_TCNODE_0004);
    if(NULL_PTR == taskc_mgr)
    {
        dbg_log(SEC_0088_TCNODE, 0)(LOGSTDOUT, "error:taskc_mgr_new: failed to alloc TASKC_MGR\n");
        return (NULL_PTR);
    }

    taskc_mgr_init(taskc_mgr);
    return (taskc_mgr);
}
Пример #5
0
EC_BOOL cextsrv_req_decode(CEXTSRV *cextsrv, const UINT8 *in_buff, const UINT32 in_buff_len, TASK_FUNC *task_req_func)
{
    UINT32 recv_comm;

    FUNC_ADDR_NODE *func_addr_node;
    TYPE_CONV_ITEM *type_conv_item;

    UINT32 position;

    recv_comm = CMPI_ANY_COMM;

    position = 0;

    cmpi_decode_uint32(recv_comm, in_buff, in_buff_len, &(position), &(task_req_func->func_id));
    cmpi_decode_uint32(recv_comm, in_buff, in_buff_len, &(position), &(task_req_func->func_para_num));

    if(0 != dbg_fetch_func_addr_node_by_index(task_req_func->func_id, &func_addr_node))
    {
        dbg_log(SEC_0069_CEXTSRV, 0)(LOGSTDOUT, "error:cextsrv_req_decode: failed to fetch func addr node by func id %lx\n", task_req_func->func_id);
        return (EC_FALSE);
    }

    type_conv_item = dbg_query_type_conv_item_by_type(func_addr_node->func_ret_type);
    if( NULL_PTR == type_conv_item )
    {
        dbg_log(SEC_0069_CEXTSRV, 0)(LOGSTDOUT,"error:cextsrv_req_decode: ret type %ld conv item is not defined\n", func_addr_node->func_ret_type);
        return (EC_FALSE);
    }
    if(EC_TRUE == TYPE_CONV_ITEM_VAR_POINTER_FLAG(type_conv_item))
    {
        alloc_static_mem(MD_TASK, 0, TYPE_CONV_ITEM_VAR_MM_TYPE(type_conv_item), (void **)&(task_req_func->func_ret_val), LOC_CEXTSRV_0007);
        dbg_tiny_caller(2, TYPE_CONV_ITEM_VAR_INIT_FUNC(type_conv_item), CMPI_ANY_MODI, task_req_func->func_ret_val);
    }

    if(EC_FALSE == task_req_func_para_decode(recv_comm, in_buff, in_buff_len, &(position),
                                              &(task_req_func->func_para_num), (FUNC_PARA *)task_req_func->func_para,
                                              func_addr_node))
    {
        dbg_log(SEC_0069_CEXTSRV, 0)(LOGSTDOUT, "error:cextsrv_req_decode: decode func paras failed\n");

        if(EC_TRUE == TYPE_CONV_ITEM_VAR_POINTER_FLAG(type_conv_item) && 0 != task_req_func->func_ret_val)
        {
            free_static_mem(MD_TASK, 0, TYPE_CONV_ITEM_VAR_MM_TYPE(type_conv_item), (void *)(task_req_func->func_ret_val), LOC_CEXTSRV_0008);
        }
        return (EC_FALSE);
    }

    return (EC_TRUE);
}
Пример #6
0
VMM_NODE * vmatrix_r_alloc_vmm_node(const UINT32 vmatrixr_md_id)
{
    VMM_NODE *vmm_node;

#if ( SWITCH_ON == MATRIX_DEBUG_SWITCH )
    if ( VMATRIXR_MD_ID_CHECK_INVALID(vmatrixr_md_id) )
    {
        sys_log(LOGSTDOUT,
                "error:vmatrix_r_alloc_vmm_node: vmatrixr module #0x%lx not started.\n",
                vmatrixr_md_id);
        dbg_exit(MD_MATRIXR, vmatrixr_md_id);
    }
#endif/*MATRIX_DEBUG_SWITCH*/

    alloc_static_mem(MD_VMATRIXR, vmatrixr_md_id, MM_VMM_NODE, &vmm_node, LOC_VMATRIXR_0001);
    return (vmm_node);
}
Пример #7
0
CSEM *csem_named_new(const uint8_t *name, const UINT32 location)
{
    CSEM  *csem;
    
    alloc_static_mem(MD_TBD, CMPI_ANY_MODI, MM_CSEM, &csem, location);
    if(NULL_PTR == csem)
    {
        dbg_log(SEC_0029_CSEM, 0)(LOGSTDOUT, "error:csem_named_new: new csem failed\n");
        return (NULL_PTR);
    }

    if(EC_FALSE == csem_named_init(csem, name, location))
    {
        dbg_log(SEC_0029_CSEM, 0)(LOGSTDOUT, "error:csem_named_new: init csem %p with name %s failed\n", csem, name);
        free_static_mem(MD_TBD, CMPI_ANY_MODI, MM_CSEM, csem, location);
        return (NULL_PTR);
    }

    return (csem);
}
Пример #8
0
UINT32 vmatrix_r_new_matrix_skeleton(const UINT32 vmatrixr_md_id, const UINT32 row_num, const UINT32 col_num, MATRIX *matrix)
{
    VMATRIXR_MD *vmatrixr_md;

    UINT32 blocks_row_num;
    UINT32 blocks_col_num;

    UINT32 block_row_idx;
    UINT32 block_col_idx;

    UINT32 sub_row_num;
    UINT32 sub_col_num;

    //VMATRIX_BLOCK  *vmatrix_block;
    CVECTOR *blocks;

    TASK_MGR *task_mgr;
    MOD_NODE *send_mod_node;

    UINT32 ret;

#if ( SWITCH_ON == MATRIX_DEBUG_SWITCH )
    if ( VMATRIXR_MD_ID_CHECK_INVALID(vmatrixr_md_id) )
    {
        sys_log(LOGSTDOUT,
                "error:vmatrix_r_new_matrix_skeleton: matrixr module #0x%lx not started.\n",
                vmatrixr_md_id);
        dbg_exit(MD_VMATRIXR, vmatrixr_md_id);
    }
#endif/*MATRIX_DEBUG_SWITCH*/

    if( NULL_PTR == matrix )
    {
        sys_log(LOGSTDERR,"error:vmatrix_r_new_matrix_skeleton: matrix is null pointer\n");
        return ((UINT32)(-1));
    }

    vmatrixr_md = VMATRIXR_MD_GET(vmatrixr_md_id);

    send_mod_node = &(vmatrixr_md->local_mod_node);

    /*set rotated_flag to default 0*/
    MATRIX_SET_ROTATED_FLAG(matrix, 0);

    /*set row num and col num to matrix. not sure if it is suitable or not here*/
    MATRIX_SET_ROW_NUM(matrix, row_num);
    MATRIX_SET_COL_NUM(matrix, col_num);

    blocks_row_num = MATRIX_GET_ROW_BLOCKS_NUM(matrix);
    blocks_col_num = MATRIX_GET_COL_BLOCKS_NUM(matrix);

    /*create matrix header*/
    blocks = cvector_new(blocks_row_num * blocks_col_num, MM_VMM_NODE, LOC_VMATRIXR_0006);
    MATRIX_SET_BLOCKS(matrix, blocks);

    task_mgr = task_new(vmatrixr_md->mod_mgr, TASK_PRIO_NORMAL, TASK_NEED_RSP_FLAG, TASK_NEED_ALL_RSP);
    VMATRIX_ROW_COL_BLOCKS_LOOP_NEXT(matrix, block_row_idx, block_col_idx)
    {
        VMM_NODE *matrix_block_vmm;

        //vmm_alloc(vmatrixr_md->vmm_md_id, MD_VMATRIXR, MOD_NODE_MODI(recv_mod_node), MM_VMM_NODE, &vmm_node);
        alloc_static_mem(MD_VMATRIXR, vmatrixr_md_id, MM_VMM_NODE, &matrix_block_vmm, LOC_VMATRIXR_0007);
        cvector_push((CVECTOR *)blocks, (void *)matrix_block_vmm);

        task_inc(task_mgr, &ret, FI_vmatrix_r_alloc_block, ERR_MODULE_ID, matrix_block_vmm);/*alloc matrix block from virtual memory*/
    }