about summary refs log tree commit diff
path: root/src/malloc/memalign.c
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2020-06-03 19:13:11 -0400
committerRich Felker <dalias@aerifal.cx>2020-06-03 19:13:11 -0400
commitfc18facf6e5a1ce344ba1f5c797cf1594f49bbd8 (patch)
tree76ce18a4c0270153783515c40ae35554f70f2943 /src/malloc/memalign.c
parentd1e6fdd3674eff0e09554c7ddc431acb8925232f (diff)
downloadmusl-fc18facf6e5a1ce344ba1f5c797cf1594f49bbd8.tar.gz
musl-fc18facf6e5a1ce344ba1f5c797cf1594f49bbd8.tar.xz
musl-fc18facf6e5a1ce344ba1f5c797cf1594f49bbd8.zip
rename aligned_alloc source file back to its proper name
Diffstat (limited to 'src/malloc/memalign.c')
-rw-r--r--src/malloc/memalign.c52
1 files changed, 0 insertions, 52 deletions
diff --git a/src/malloc/memalign.c b/src/malloc/memalign.c
deleted file mode 100644
index e06c76ed..00000000
--- a/src/malloc/memalign.c
+++ /dev/null
@@ -1,52 +0,0 @@
-#include <stdlib.h>
-#include <stdint.h>
-#include <errno.h>
-#include "malloc_impl.h"
-
-void *aligned_alloc(size_t align, size_t len)
-{
-	unsigned char *mem, *new;
-
-	if ((align & -align) != align) {
-		errno = EINVAL;
-		return 0;
-	}
-
-	if (len > SIZE_MAX - align || __malloc_replaced) {
-		errno = ENOMEM;
-		return 0;
-	}
-
-	if (align <= SIZE_ALIGN)
-		return malloc(len);
-
-	if (!(mem = malloc(len + align-1)))
-		return 0;
-
-	new = (void *)((uintptr_t)mem + align-1 & -align);
-	if (new == mem) return mem;
-
-	struct chunk *c = MEM_TO_CHUNK(mem);
-	struct chunk *n = MEM_TO_CHUNK(new);
-
-	if (IS_MMAPPED(c)) {
-		/* Apply difference between aligned and original
-		 * address to the "extra" field of mmapped chunk. */
-		n->psize = c->psize + (new-mem);
-		n->csize = c->csize - (new-mem);
-		return new;
-	}
-
-	struct chunk *t = NEXT_CHUNK(c);
-
-	/* Split the allocated chunk into two chunks. The aligned part
-	 * that will be used has the size in its footer reduced by the
-	 * difference between the aligned and original addresses, and
-	 * the resulting size copied to its header. A new header and
-	 * footer are written for the split-off part to be freed. */
-	n->psize = c->csize = C_INUSE | (new-mem);
-	n->csize = t->psize -= new-mem;
-
-	__bin_chunk(c);
-	return new;
-}