1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #include "jemalloc/internal/jemalloc_preamble.h"
- #include "jemalloc/internal/jemalloc_internal_includes.h"
- #include "jemalloc/internal/assert.h"
- #include "jemalloc/internal/extent_mmap.h"
- /******************************************************************************/
- /* Data. */
- bool opt_retain =
- #ifdef JEMALLOC_RETAIN
- true
- #else
- false
- #endif
- ;
- /******************************************************************************/
- void *
- extent_alloc_mmap(void *new_addr, size_t size, size_t alignment, bool *zero,
- bool *commit) {
- assert(alignment == ALIGNMENT_CEILING(alignment, PAGE));
- void *ret = pages_map(new_addr, size, alignment, commit);
- if (ret == NULL) {
- return NULL;
- }
- assert(ret != NULL);
- if (*commit) {
- *zero = true;
- }
- return ret;
- }
- bool
- extent_dalloc_mmap(void *addr, size_t size) {
- if (!opt_retain) {
- pages_unmap(addr, size);
- }
- return opt_retain;
- }
|