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:
committed by
Adrien Destugues
parent
26ab0d051c
commit
6878792ae4
@@ -12,4 +12,9 @@
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
|
||||
#define _ISOC11_SOURCE
|
||||
#endif
|
||||
|
||||
|
||||
#endif // _FEATURES_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 */
|
||||
|
||||
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user