C11: add aligned_alloc()

Change-Id: If648c0e27ed946874d393e8e33a4548b70c8ecdb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3377
Reviewed-by: Adrien Destugues <[email protected]>
This commit is contained in:
Jérôme Duval
2020-11-04 21:01:42 +00:00
committed by Adrien Destugues
parent 26ab0d051c
commit 6878792ae4
3 changed files with 19 additions and 0 deletions
+5
View File
@@ -12,4 +12,9 @@
#endif
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
#define _ISOC11_SOURCE
#endif
#endif // _FEATURES_H
+3
View File
@@ -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 */
@@ -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)
{