this change eliminates the internal __memalign function and makes the
memalign and posix_memalign functions completely independent of the
malloc implementation, written portably in terms of aligned_alloc.
hidden void *__expand_heap(size_t *);
-hidden void *__memalign(size_t, size_t);
-
struct chunk {
size_t psize, csize;
struct chunk *next, *prev;
#include <errno.h>
#include "malloc_impl.h"
-void *__memalign(size_t align, size_t len)
+void *aligned_alloc(size_t align, size_t len)
{
unsigned char *mem, *new;
__bin_chunk(c);
return new;
}
-
-weak_alias(__memalign, memalign);
+#define _BSD_SOURCE
#include <stdlib.h>
-#include "malloc_impl.h"
-void *aligned_alloc(size_t align, size_t len)
+void *memalign(size_t align, size_t len)
{
- return __memalign(align, len);
+ return aligned_alloc(align, len);
}
#include <stdlib.h>
#include <errno.h>
-#include "malloc_impl.h"
int posix_memalign(void **res, size_t align, size_t len)
{
if (align < sizeof(void *)) return EINVAL;
- void *mem = __memalign(align, len);
+ void *mem = aligned_alloc(align, len);
if (!mem) return errno;
*res = mem;
return 0;