From b8b61dc070c17585ada10f88986b1192d097872a Mon Sep 17 00:00:00 2001 From: Xiang Xiao Date: Mon, 1 Jun 2020 14:21:15 +0800 Subject: [PATCH] lib/stdlib: Implement aligned_alloc and posix_memalign https://linux.die.net/man/3/aligned_alloc Signed-off-by: Xiang Xiao Change-Id: I73db1c982e2c3eb73e5960e91c0d471ab967be51 --- include/stdlib.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/include/stdlib.h b/include/stdlib.h index 388cb858db..b49723ead5 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -29,6 +29,7 @@ #include #include +#include #include #include @@ -255,6 +256,21 @@ FAR void *memalign(size_t, size_t); FAR void *zalloc(size_t); FAR void *calloc(size_t, size_t); +#ifdef __cplusplus +inline FAR void *aligned_alloc(size_t a, size_t s) +{ + return memalign(a, s); +} + +inline int posix_memalign(FAR void **m, size_t a, size_t s) +{ + return (*m = memalign(a, s)) ? OK : ENOMEM; +} +#else +#define aligned_alloc(a, s) memalign((a), (s)) +#define posix_memalign(m, a, s) ((*(m) = memalign((a), (s))) ? OK : ENOMEM) +#endif + struct mallinfo mallinfo(void); /* Pseudo-Terminals */