/** * * end VMATRIXR module * **/ void vmatrix_r_end(const UINT32 vmatrixr_md_id) { VMATRIXR_MD *vmatrixr_md; UINT32 matrixr_md_id; UINT32 vmm_md_id; MOD_NODE *local_mod_node; vmatrixr_md = VMATRIXR_MD_GET(vmatrixr_md_id); if(NULL_PTR == vmatrixr_md) { sys_log(LOGSTDOUT,"error:vmatrix_r_end: vmatrixr_md_id = %ld is overflow.\n", vmatrixr_md_id); dbg_exit(MD_VMATRIXR, vmatrixr_md_id); } /* if the module is occupied by others,then decrease counter only */ if ( 1 < vmatrixr_md->usedcounter ) { vmatrixr_md->usedcounter --; return ; } if ( 0 == vmatrixr_md->usedcounter ) { sys_log(LOGSTDOUT,"error:vmatrix_r_end: vmatrixr_md_id = %ld is not started.\n", vmatrixr_md_id); dbg_exit(MD_VMATRIXR, vmatrixr_md_id); } //task_brd_mod_mgr_rmv(vmatrixr_md->task_brd, vmatrixr_md->mod_mgr); mod_mgr_free(vmatrixr_md->mod_mgr); vmatrixr_md->mod_mgr = NULL_PTR; vmatrixr_md->task_brd = NULL_PTR; local_mod_node = &(vmatrixr_md->local_mod_node); MOD_NODE_TCID(local_mod_node) = CMPI_ERROR_TCID; MOD_NODE_COMM(local_mod_node) = CMPI_ERROR_COMM; MOD_NODE_RANK(local_mod_node) = CMPI_ERROR_RANK; MOD_NODE_MODI(local_mod_node) = CMPI_ERROR_MODI; /* if nobody else occupied the module,then free its resource */ matrixr_md_id = vmatrixr_md->matrixr_md_id; vmm_md_id = vmatrixr_md->vmm_md_id; matrix_r_end(matrixr_md_id); vmm_end(vmm_md_id); vmatrixr_md->matrixr_md_id = ERR_MODULE_ID; vmatrixr_md->vmm_md_id = ERR_MODULE_ID; vmatrixr_md->usedcounter = 0; cbc_md_free(MD_VMATRIXR, vmatrixr_md_id); breathing_static_mem(); return ; }
/** * * end CCURL module * **/ void ccurl_end(const UINT32 ccurl_md_id) { CCURL_MD *ccurl_md; ccurl_md = CCURL_MD_GET(ccurl_md_id); if(NULL_PTR == ccurl_md) { dbg_log(SEC_0030_CCURL, 0)(LOGSTDOUT,"error:ccurl_end: ccurl_md_id = %u not exist.\n", ccurl_md_id); dbg_exit(MD_CCURL, ccurl_md_id); } /* if the module is occupied by others,then decrease counter only */ if ( 1 < ccurl_md->usedcounter ) { ccurl_md->usedcounter --; return ; } if ( 0 == ccurl_md->usedcounter ) { dbg_log(SEC_0030_CCURL, 0)(LOGSTDOUT,"error:ccurl_end: ccurl_md_id = %u is not started.\n", ccurl_md_id); dbg_exit(MD_CCURL, ccurl_md_id); } /* if nobody else occupied the module,then free its resource */ if(NULL_PTR != CCURL_MD_MOD_MGR(ccurl_md)) { mod_mgr_free(CCURL_MD_MOD_MGR(ccurl_md)); CCURL_MD_MOD_MGR(ccurl_md) = NULL_PTR; } /* free module : */ //ccurl_free_module_static_mem(ccurl_md_id); ccurl_md->usedcounter = 0; dbg_log(SEC_0030_CCURL, 5)(LOGSTDOUT, "ccurl_end: stop CCURL module #%u\n", ccurl_md_id); cbc_md_free(MD_CCURL, ccurl_md_id); return ; }