diff --git a/headers/posix/stdlib.h b/headers/posix/stdlib.h index 3ffec9578a..05f96b6c14 100644 --- a/headers/posix/stdlib.h +++ b/headers/posix/stdlib.h @@ -49,6 +49,7 @@ extern void *calloc(size_t nmemb, size_t size); extern void free(void *pointer); extern void *malloc(size_t size); extern void *realloc(void * ptr, size_t size); +extern int posix_memalign(void **memptr, size_t alignment, size_t size); /* process termination */ extern void abort(void); diff --git a/src/system/libroot/posix/malloc/wrapper.cpp b/src/system/libroot/posix/malloc/wrapper.cpp index ca2702dc20..7ef6393faf 100644 --- a/src/system/libroot/posix/malloc/wrapper.cpp +++ b/src/system/libroot/posix/malloc/wrapper.cpp @@ -274,6 +274,18 @@ memalign(size_t alignment, size_t size) } +extern "C" int +posix_memalign(void **memptr, size_t alignment, size_t size) +{ + if (!memptr) + return EINVAL; + *memptr = memalign(alignment, size); + if (memptr == NULL) + return ENOMEM; + return 0; +} + + extern "C" void * valloc(size_t size) {