Home | History | Annotate | Line # | Download | only in src
      1 #include "jemalloc/internal/jemalloc_preamble.h"
      2 #include "jemalloc/internal/jemalloc_internal_includes.h"
      3 
      4 #include "jemalloc/internal/assert.h"
      5 #include "jemalloc/internal/extent_mmap.h"
      6 
      7 /******************************************************************************/
      8 /* Data. */
      9 
     10 bool	opt_retain =
     11 #ifdef JEMALLOC_RETAIN
     12     true
     13 #else
     14     false
     15 #endif
     16     ;
     17 
     18 /******************************************************************************/
     19 
     20 void *
     21 extent_alloc_mmap(void *new_addr, size_t size, size_t alignment, bool *zero,
     22     bool *commit) {
     23 	assert(alignment == ALIGNMENT_CEILING(alignment, PAGE));
     24 	void *ret = pages_map(new_addr, size, alignment, commit);
     25 	if (ret == NULL) {
     26 		return NULL;
     27 	}
     28 	assert(ret != NULL);
     29 	if (*commit) {
     30 		*zero = true;
     31 	}
     32 	return ret;
     33 }
     34 
     35 bool
     36 extent_dalloc_mmap(void *addr, size_t size) {
     37 	if (!opt_retain) {
     38 		pages_unmap(addr, size);
     39 	}
     40 	return opt_retain;
     41 }
     42