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