X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5fa8d6780a107eb5ae1ff8a233b0dd23cb065f8a..d013cec453ee914baf3c62275ea2042c41e7c270:/src/xbt/mmalloc/mm_module.c diff --git a/src/xbt/mmalloc/mm_module.c b/src/xbt/mmalloc/mm_module.c index cd4ef278da..0dfd0279e1 100644 --- a/src/xbt/mmalloc/mm_module.c +++ b/src/xbt/mmalloc/mm_module.c @@ -330,6 +330,10 @@ void *mmalloc_preinit(void) } xbt_assert(__mmalloc_default_mdp != NULL); +#if defined(HAVE_GNU_LD) && defined(MMALLOC_WANT_OVERRIDE_LEGACY) + mm_gnuld_legacy_init(); +#endif + return __mmalloc_default_mdp; } @@ -339,3 +343,25 @@ void mmalloc_postexit(void) // mmalloc_detach(__mmalloc_default_mdp); xbt_mheap_destroy_no_free(__mmalloc_default_mdp); } + +size_t mmalloc_get_bytes_used(xbt_mheap_t heap){ + int i = 0, j = 0; + int bytes = 0; + + while(i<=((struct mdesc *)heap)->heaplimit){ + if(((struct mdesc *)heap)->heapinfo[i].type == 0){ + if(((struct mdesc *)heap)->heapinfo[i].busy_block.busy_size > 0) + bytes += ((struct mdesc *)heap)->heapinfo[i].busy_block.busy_size; + + }else if(((struct mdesc *)heap)->heapinfo[i].type > 0){ + for(j=0; j < (size_t) (BLOCKSIZE >> ((struct mdesc *)heap)->heapinfo[i].type); j++){ + if(((struct mdesc *)heap)->heapinfo[i].busy_frag.frag_size[j] > 0) + bytes += ((struct mdesc *)heap)->heapinfo[i].busy_frag.frag_size[j]; + } + } + i++; + } + + return bytes; +} +