/*------------------------------------------------------------------------------------------------------------------*/ 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); }
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); }
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); }
/*-------------------------------------------- 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); }
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); }
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); }
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); }
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*/ }