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