EC_BOOL csrv_req_clean(struct _TASK_FUNC *task_req_func) { FUNC_ADDR_NODE *func_addr_node; TYPE_CONV_ITEM *type_conv_item; UINT32 para_idx; if(0 != dbg_fetch_func_addr_node_by_index(task_req_func->func_id, &func_addr_node)) { dbg_log(SEC_0112_CSRV, 0)(LOGSTDOUT, "error:csrv_req_clean: failed to fetch func addr node by func id %lx\n", task_req_func->func_id); return (EC_FALSE); } if(e_dbg_void != func_addr_node->func_ret_type) { 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_0112_CSRV, 0)(LOGSTDOUT,"error:csrv_req_clean: 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) && 0 != task_req_func->func_ret_val) { free_static_mem(TYPE_CONV_ITEM_VAR_MM_TYPE(type_conv_item), (void *)(task_req_func->func_ret_val), LOC_CSRV_0008); task_req_func->func_ret_val = 0; } } for( para_idx = 0; para_idx < task_req_func->func_para_num; para_idx ++ ) { FUNC_PARA *func_para; func_para = &(task_req_func->func_para[ para_idx ]); type_conv_item = dbg_query_type_conv_item_by_type(func_addr_node->func_para_type[ para_idx ]); if( NULL_PTR == type_conv_item ) { dbg_log(SEC_0112_CSRV, 0)(LOGSTDOUT,"error:csrv_req_clean: para %ld type %ld conv item is not defined\n", para_idx, func_addr_node->func_para_type[ para_idx ]); return (EC_FALSE); } if(EC_TRUE == TYPE_CONV_ITEM_VAR_POINTER_FLAG(type_conv_item) && 0 != func_para->para_val) { free_static_mem(TYPE_CONV_ITEM_VAR_MM_TYPE(type_conv_item), (void *)(func_para->para_val), LOC_CSRV_0009); func_para->para_val = 0; } } return (EC_TRUE); }
EC_BOOL cconnp_free(CCONNP *cconnp) { if(NULL_PTR != cconnp) { cconnp_clean(cconnp); free_static_mem(MM_CCONNP, cconnp, LOC_CCONNP_0004); } return (EC_TRUE); }
EC_BOOL cconnp_mgr_free(CCONNP_MGR *cconnp_mgr) { if(NULL_PTR != cconnp_mgr) { cconnp_mgr_clean(cconnp_mgr); free_static_mem(MM_CCONNP_MGR, cconnp_mgr, LOC_CCONNP_0006); } return (EC_TRUE); }
EC_BOOL cparacfg_free(CPARACFG *cparacfg) { if(NULL_PTR != cparacfg) { cparacfg_clean(cparacfg); free_static_mem(MD_TBD, CMPI_ANY_MODI, MM_CPARACFG, cparacfg, LOC_CPARACFG_0002); } return (EC_TRUE); }
EC_BOOL csem_named_free(CSEM *csem, const UINT32 location) { if(NULL_PTR != csem) { csem_named_clean(csem, location); free_static_mem(MD_TBD, CMPI_ANY_MODI, MM_CSEM, csem, location); } return (EC_TRUE);
EC_BOOL chfsnp_mgr_free(CHFSNP_MGR *chfsnp_mgr) { if(NULL_PTR != chfsnp_mgr) { chfsnp_mgr_clean(chfsnp_mgr); free_static_mem(MD_CHFS, CMPI_ANY_MODI, MM_CHFSNP_MGR, chfsnp_mgr, LOC_CHFSNPMGR_0010); } return (EC_TRUE); }
EC_BOOL csrv_free(CSRV *csrv) { if(NULL_PTR != csrv) { csrv_clean(csrv); free_static_mem(MM_CSRV, csrv, LOC_CSRV_0002); } return (EC_TRUE); }
EC_BOOL cextsrv_rsp_encode(CEXTSRV *cextsrv, UINT8 *out_buff, const UINT32 out_buff_max_len, UINT32 *out_buff_len, TASK_FUNC *task_rsp_func) { UINT32 send_comm; FUNC_ADDR_NODE *func_addr_node; TYPE_CONV_ITEM *type_conv_item; UINT32 position; send_comm = CMPI_ANY_COMM; position = 0; if(0 != dbg_fetch_func_addr_node_by_index(task_rsp_func->func_id, &func_addr_node)) { dbg_log(SEC_0069_CEXTSRV, 0)(LOGSTDOUT, "error:cextsrv_rsp_encode: failed to fetch func addr node by func id %lx\n", task_rsp_func->func_id); return (EC_FALSE); } if(e_dbg_void != func_addr_node->func_ret_type) { 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_rsp_encode: ret type %ld conv item is not defined\n", func_addr_node->func_ret_type); return (EC_FALSE); } dbg_tiny_caller(5, TYPE_CONV_ITEM_VAR_ENCODE_FUNC(type_conv_item), send_comm, task_rsp_func->func_ret_val, out_buff, out_buff_max_len, &(position)); if(EC_TRUE == TYPE_CONV_ITEM_VAR_POINTER_FLAG(type_conv_item) && 0 != task_rsp_func->func_ret_val) { dbg_tiny_caller(2, TYPE_CONV_ITEM_VAR_CLEAN_FUNC(type_conv_item), CMPI_ANY_MODI, task_rsp_func->func_ret_val);/*WARNING: SHOULD NOT BE 0*/ free_static_mem(MD_TASK, CMPI_ANY_MODI, TYPE_CONV_ITEM_VAR_MM_TYPE(type_conv_item), (void *)task_rsp_func->func_ret_val, LOC_CEXTSRV_0009);/*clean up*/ task_rsp_func->func_ret_val = 0; } } task_rsp_func_para_encode(send_comm, task_rsp_func->func_para_num, (FUNC_PARA *)task_rsp_func->func_para, func_addr_node, out_buff, out_buff_max_len, &(position)); (*out_buff_len) = position;/*set to real length*/ return (EC_TRUE); }
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); }
EC_BOOL vmatrix_r_free_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_free_vmm_node: vmatrixr module #0x%lx not started.\n", vmatrixr_md_id); dbg_exit(MD_MATRIXR, vmatrixr_md_id); } #endif/*MATRIX_DEBUG_SWITCH*/ if(0 != VMM_NODE_ADDR(vmm_node)) { sys_log(LOGSTDOUT, "error:vmatrix_r_free_vmm_node: vmm_node %lx mount pointer %lx\n", vmm_node, VMM_NODE_ADDR(vmm_node)); } free_static_mem(MD_VMATRIXR, vmatrixr_md_id, MM_VMM_NODE, vmm_node, LOC_VMATRIXR_0002); return (EC_TRUE); }
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_free_block(const UINT32 vmatrixr_md_id, VMM_NODE *matrix_block_vmm) { VMATRIXR_MD *vmatrixr_md; MATRIX_BLOCK *matrix_block; TASK_BRD *task_brd; #if ( SWITCH_ON == MATRIX_DEBUG_SWITCH ) if ( VMATRIXR_MD_ID_CHECK_INVALID(vmatrixr_md_id) ) { sys_log(LOGSTDOUT, "error:vmatrix_r_free_block: vmatrixr module #0x%lx not started.\n", vmatrixr_md_id); dbg_exit(MD_MATRIXR, vmatrixr_md_id); } #endif/*MATRIX_DEBUG_SWITCH*/ vmatrixr_md = VMATRIXR_MD_GET(vmatrixr_md_id); if(0 != VMM_NODE_ADDR(matrix_block_vmm)) { matrix_block = (MATRIX_BLOCK *)VMM_NODE_ADDR(matrix_block_vmm); sys_log(LOGSTDOUT, "vmatrix_r_free_block: free matrix_block %lx\n", matrix_block); matrix_r_clean_block(vmatrixr_md->matrixr_md_id, matrix_block); free_static_mem(MD_VMATRIXR, vmatrixr_md_id, MM_MATRIX_BLOCK, matrix_block, LOC_VMATRIXR_0004); } else { sys_log(LOGSTDOUT, "vmatrix_r_free_block: matrix_block is null\n"); } task_brd = vmatrixr_md->task_brd; VMM_NODE_LOAD(matrix_block_vmm) = task_brd_rank_load_tbl_get_que(task_brd, TASK_BRD_TCID(task_brd), TASK_BRD_RANK(task_brd)); VMM_NODE_ADDR(matrix_block_vmm) = 0; return (0); }
EC_BOOL crouter_node_free(CROUTER_NODE *crouter_node) { crouter_node_clean(crouter_node); free_static_mem(MD_TASK, 0, MM_CROUTER_NODE, crouter_node, LOC_CROUTER_0004); return (EC_TRUE); }
EC_BOOL crouter_cfg_free(CROUTER_CFG *crouter_cfg) { crouter_cfg_clean(crouter_cfg); free_static_mem(MD_TASK, 0, MM_CROUTER_CFG, crouter_cfg, LOC_CROUTER_0038); return (EC_TRUE); }
EC_BOOL crouter_node_vec_free(CROUTER_NODE_VEC *crouter_node_vec) { crouter_node_vec_clean(crouter_node_vec); free_static_mem(MD_TASK, 0, MM_CROUTER_NODE_VEC, crouter_node_vec, LOC_CROUTER_0020); return (EC_TRUE); }
void taskc_node_free(TASKC_NODE *taskc_node) { free_static_mem(MD_TASK, 0, MM_TASKC_NODE, taskc_node, LOC_TCNODE_0003); return; }
void taskc_mgr_free(TASKC_MGR *taskc_mgr) { taskc_mgr_clean(taskc_mgr); free_static_mem(MD_TASK, 0, MM_TASKC_MGR, (void *)(taskc_mgr), LOC_TCNODE_0005); return; }