diff --git a/src/plugins/e-acsl/contrib/libdlmalloc/dlmalloc.c b/src/plugins/e-acsl/contrib/libdlmalloc/dlmalloc.c index bab900b6b2b06a64fc7eabcf61257fcdc1d65afb..9e4b146d305d6c6108370ea7b1a5cba920392356 100644 --- a/src/plugins/e-acsl/contrib/libdlmalloc/dlmalloc.c +++ b/src/plugins/e-acsl/contrib/libdlmalloc/dlmalloc.c @@ -820,6 +820,7 @@ extern "C" { #define mspace_realloc_in_place mspace_prefix(mspace_realloc_in_place) #define mspace_memalign mspace_prefix(mspace_memalign) #define mspace_aligned_alloc mspace_prefix(mspace_aligned_alloc) +#define mspace_posix_memalign mspace_prefix(mspace_posix_memalign) #define mspace_independent_calloc mspace_prefix(mspace_independent_calloc) #define mspace_independent_comalloc mspace_prefix(mspace_independent_comalloc) #define mspace_bulk_free mspace_prefix(mspace_bulk_free) @@ -1399,6 +1400,12 @@ DLMALLOC_EXPORT void* mspace_memalign(mspace msp, size_t alignment, size_t bytes */ DLMALLOC_EXPORT void* mspace_aligned_alloc(mspace msp, size_t alignment, size_t bytes); +/* + mspace_posix_memalign behaves as posix_memalign, but operates within + the given space. +*/ +DLMALLOC_EXPORT int mspace_posix_memalign(mspace msp, void **pp, size_t alignment, size_t bytes); + /* mspace_independent_calloc behaves as independent_calloc, but operates within the given space. @@ -5877,6 +5884,19 @@ void* mspace_aligned_alloc(mspace msp, size_t alignment, size_t bytes) { return mspace_aligned_alloc(msp, alignment, bytes); } +int mspace_posix_memalign(mspace msp, void **memptr, size_t alignment, size_t bytes) { + if (bytes == 0) { + *memptr = NULL; + return 0; + } + void *res = mspace_aligned_alloc(msp, alignment, bytes); + if (res) { + *memptr = res; + return 0; + } + return 1; +} + void** mspace_independent_calloc(mspace msp, size_t n_elements, size_t elem_size, void* chunks[]) { size_t sz = elem_size; /* serves as 1-element array */