From fc00c656c96528112d05cf0edf8631bd5eaea446 Mon Sep 17 00:00:00 2001 From: Kacper Date: Sun, 7 Dec 2025 20:10:31 +0100 Subject: Add build system scaffolding and libc headers --- lib/libc/stdlib/posix_memalign.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 lib/libc/stdlib/posix_memalign.c (limited to 'lib/libc/stdlib/posix_memalign.c') diff --git a/lib/libc/stdlib/posix_memalign.c b/lib/libc/stdlib/posix_memalign.c new file mode 100644 index 00000000..a7cbd2a2 --- /dev/null +++ b/lib/libc/stdlib/posix_memalign.c @@ -0,0 +1,31 @@ +#include +#include + +int posix_memalign(void **memptr, size_t alignment, size_t size) +{ + if (memptr == NULL) { + return EINVAL; + } + + *memptr = NULL; + + if (alignment < sizeof(void *) || alignment % sizeof(void *) != 0 || + (alignment & (alignment - 1)) != 0) { + return EINVAL; + } + + if (size == 0) { + *memptr = NULL; + return 0; + } + + size_t aligned_size = (size + alignment - 1) & ~(alignment - 1); + + void *ptr = aligned_alloc(alignment, aligned_size); + if (ptr == NULL) { + return ENOMEM; + } + + *memptr = ptr; + return 0; +} -- cgit v1.2.3