[haiku-commits] haiku: hrev54698 - src/system/libroot/posix/malloc_hoard2 headers/compatibility/bsd headers/posix

  • From: Adrien Destugues <pulkomandy@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 4 Nov 2020 16:01:49 -0500 (EST)

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)
 {


Other related posts:

  • » [haiku-commits] haiku: hrev54698 - src/system/libroot/posix/malloc_hoard2 headers/compatibility/bsd headers/posix - Adrien Destugues