X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/863aeead864a309c494893a1b06ec33ed2b7daf1..78e4c652321b99db9784f18451e2ab5b818db009:/src/xbt/mmalloc/mm_module.c diff --git a/src/xbt/mmalloc/mm_module.c b/src/xbt/mmalloc/mm_module.c index eac80c81e8..ec21f2d7df 100644 --- a/src/xbt/mmalloc/mm_module.c +++ b/src/xbt/mmalloc/mm_module.c @@ -120,7 +120,8 @@ xbt_mheap_t xbt_mheap_new_options(int fd, void *baseaddr, int options) unsuccessful for some reason. */ struct mdesc newmd; - struct mdesc *mdptr = NULL, *mdptemp = NULL; + struct mdesc* mdptr = NULL; + struct mdesc* mdptemp = NULL; if (lseek(fd, 0L, SEEK_SET) != 0) return NULL; @@ -156,15 +157,13 @@ xbt_mheap_t xbt_mheap_new_options(int fd, void *baseaddr, int options) } } - /* NULL is not a valid baseaddr as we cannot map anything there. - C'mon, user. Think! */ + /* NULL is not a valid baseaddr as we cannot map anything there. C'mon, user. Think! */ if (baseaddr == NULL) return (NULL); - /* We start off with the malloc descriptor allocated on the stack, until - we build it up enough to call _mmalloc_mmap_morecore() to allocate the - first page of the region and copy it there. Ensure that it is zero'd and - then initialize the fields that we know values for. */ + /* We start off with the malloc descriptor allocated on the stack, until we build it up enough to + * call _mmalloc_mmap_morecore() to allocate the first page of the region and copy it there. Ensure that it is + * zero'd and then initialize the fields that we know values for. */ mdp = &mtemp; memset((char *) mdp, 0, sizeof(mtemp)); @@ -187,10 +186,9 @@ xbt_mheap_t xbt_mheap_new_options(int fd, void *baseaddr, int options) /* If we have not been passed a valid open file descriptor for the file to map to, then open /dev/zero and use that to map to. */ - /* Now try to map in the first page, copy the malloc descriptor structure - there, and arrange to return a pointer to this new copy. If the mapping - fails, then close the file descriptor if it was opened by us, and arrange - to return a NULL. */ + /* Now try to map in the first page, copy the malloc descriptor structure there, and arrange to return a pointer to + * this new copy. If the mapping fails, then close the file descriptor if it was opened by us, and arrange to return + * a NULL. */ if ((mbase = mmorecore(mdp, sizeof(mtemp))) != NULL) { memcpy(mbase, mdp, sizeof(mtemp)); @@ -229,41 +227,35 @@ void xbt_mheap_destroy_no_free(xbt_mheap_t md) } } -/** Terminate access to a mmalloc managed region by unmapping all memory pages - associated with the region, and closing the file descriptor if it is one - that we opened. +/** Terminate access to a mmalloc managed region by unmapping all memory pages associated with the region, and closing + * the file descriptor if it is one that we opened. Returns NULL on success. - Returns the malloc descriptor on failure, which can subsequently be used - for further action, such as obtaining more information about the nature of - the failure. + Returns the malloc descriptor on failure, which can subsequently be used for further action, such as obtaining more + information about the nature of the failure. - Note that the malloc descriptor that we are using is currently located in - region we are about to unmap, so we first make a local copy of it on the - stack and use the copy. */ + Note that the malloc descriptor that we are using is currently located in region we are about to unmap, so we first + make a local copy of it on the stack and use the copy. */ void *xbt_mheap_destroy(xbt_mheap_t mdp) { - struct mdesc mtemp, *mdptemp; - if (mdp != NULL) { /* Remove the heap from the linked list of heaps attached by mmalloc */ - mdptemp = __mmalloc_default_mdp; + struct mdesc* mdptemp = __mmalloc_default_mdp; while(mdptemp->next_mdesc != mdp ) mdptemp = mdptemp->next_mdesc; mdptemp->next_mdesc = mdp->next_mdesc; xbt_mheap_destroy_no_free(mdp); - mtemp = *mdp; + struct mdesc mtemp = *mdp; /* Now unmap all the pages associated with this region by asking for a negative increment equal to the current size of the region. */ if (mmorecore(&mtemp, (char *)mtemp.base - (char *)mtemp.breakval) == NULL) { - /* Deallocating failed. Update the original malloc descriptor - with any changes */ + /* Deallocating failed. Update the original malloc descriptor with any changes */ *mdp = mtemp; } else { if (mtemp.flags & MMALLOC_DEVZERO) { @@ -277,8 +269,7 @@ void *xbt_mheap_destroy(xbt_mheap_t mdp) } /* Safety gap from the heap's break address. - * Try to increase this first if you experience strange errors under - * valgrind. */ + * Try to increase this first if you experience strange errors under valgrind. */ #define HEAP_OFFSET (128UL<<20) xbt_mheap_t mmalloc_get_default_md(void) @@ -390,32 +381,3 @@ ssize_t mmalloc_get_busy_size(xbt_mheap_t heap, void *ptr){ } } - -void mmcheck(xbt_mheap_t heap) {return; - if (!heap->heapinfo) - return; - malloc_info* heapinfo = NULL; - for (size_t i=1; i < heap->heaplimit; i += mmalloc_get_increment(heapinfo)) { - heapinfo = heap->heapinfo + i; - switch (heapinfo->type) { - case MMALLOC_TYPE_HEAPINFO: - case MMALLOC_TYPE_FREE: - if (heapinfo->free_block.size==0) { - xbt_die("Block size == 0"); - } - break; - case MMALLOC_TYPE_UNFRAGMENTED: - if (heapinfo->busy_block.size==0) { - xbt_die("Block size == 0"); - } - if (heapinfo->busy_block.busy_size==0 && heapinfo->busy_block.size!=0) { - xbt_die("Empty busy block"); - } - break; - default: - if (heapinfo->type<0) { - xbt_die("Unkown mmalloc block type."); - } - } - } -}