hrev54698 adds 1 changeset to branch 'master'
old head: 26ab0d051c56a0cf0b0b80db465d13b8a5a4fa60
new head: 6878792ae42c0df120477b1bb8340802b0080374
overview:
https://git.haiku-os.org/haiku/log/?qt=range&q=6878792ae42c+%5E26ab0d051c56
----------------------------------------------------------------------------
6878792ae42c: C11: add aligned_alloc()
Change-Id: If648c0e27ed946874d393e8e33a4548b70c8ecdb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3377
Reviewed-by: Adrien Destugues <pulkomandy@xxxxxxxxx>
[ Jérôme Duval <jerome.duval@xxxxxxxxx> ]
----------------------------------------------------------------------------
Revision: hrev54698
Commit: 6878792ae42c0df120477b1bb8340802b0080374
URL: https://git.haiku-os.org/haiku/commit/?id=6878792ae42c
Author: Jérôme Duval <jerome.duval@xxxxxxxxx>
Date: Sat Oct 31 19:34:20 2020 UTC
Committer: Adrien Destugues <pulkomandy@xxxxxxxxx>
Commit-Date: Wed Nov 4 21:01:42 2020 UTC
----------------------------------------------------------------------------
3 files changed, 19 insertions(+)
headers/compatibility/bsd/features.h | 5 +++++
headers/posix/stdlib.h | 3 +++
src/system/libroot/posix/malloc_hoard2/wrapper.cpp | 11 +++++++++++
----------------------------------------------------------------------------
diff --git a/headers/compatibility/bsd/features.h
b/headers/compatibility/bsd/features.h
index 4513b500e4..1450c56e50 100644
--- a/headers/compatibility/bsd/features.h
+++ b/headers/compatibility/bsd/features.h
@@ -12,4 +12,9 @@
#endif
+#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
+ #define _ISOC11_SOURCE
+#endif
+
+
#endif // _FEATURES_H
diff --git a/headers/posix/stdlib.h b/headers/posix/stdlib.h
index 4890caf0a2..ebaa9ec96a 100644
--- a/headers/posix/stdlib.h
+++ b/headers/posix/stdlib.h
@@ -49,6 +49,9 @@ extern void *calloc(size_t numElements, size_t
size);
extern void free(void *pointer);
extern void *malloc(size_t size);
extern int posix_memalign(void **_pointer, size_t alignment,
size_t size);
+#ifdef _ISOC11_SOURCE
+extern void *aligned_alloc(size_t alignment, size_t size);
+#endif
extern void *realloc(void *oldPointer, size_t newSize);
/* process termination */
diff --git a/src/system/libroot/posix/malloc_hoard2/wrapper.cpp
b/src/system/libroot/posix/malloc_hoard2/wrapper.cpp
index b1ce8008e3..c5e8c43c1a 100644
--- a/src/system/libroot/posix/malloc_hoard2/wrapper.cpp
+++ b/src/system/libroot/posix/malloc_hoard2/wrapper.cpp
@@ -443,6 +443,17 @@ memalign(size_t alignment, size_t size)
}
+extern "C" void *
+aligned_alloc(size_t alignment, size_t size)
+{
+ if (size % alignment != 0) {
+ __set_errno(B_BAD_VALUE);
+ return NULL;
+ }
+ return memalign(alignment, size);
+}
+
+
extern "C" int
posix_memalign(void **_pointer, size_t alignment, size_t size)
{