From 31564a9bdd88be9f20b458975fc9dc09138d08dc Mon Sep 17 00:00:00 2001 From: jzlv Date: Tue, 19 Oct 2021 20:06:47 +0800 Subject: [PATCH] [feat][bsp_common/platform] complete calloc function that float print needs --- bsp/bsp_common/platform/syscalls.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/bsp/bsp_common/platform/syscalls.c b/bsp/bsp_common/platform/syscalls.c index 0d2ebca7..3ddbdc2a 100644 --- a/bsp/bsp_common/platform/syscalls.c +++ b/bsp/bsp_common/platform/syscalls.c @@ -232,14 +232,19 @@ void *_realloc_r(struct _reent *ptr, void *old, size_t newlen) if (result == NULL) { ptr->_errno = -ENOMEM; } - return result; } void *_calloc_r(struct _reent *ptr, size_t size, size_t len) { - /* return "not supported" */ - return 0; + void *result; + + result = (void *)mmheap_calloc(&mmheap_root, size, len); + if (result == NULL) { + ptr->_errno = -ENOMEM; + } + + return result; } void _free_r(struct _reent *ptr, void *addr) @@ -249,7 +254,11 @@ void _free_r(struct _reent *ptr, void *addr) void *_sbrk_r(struct _reent *ptr, ptrdiff_t incr) { - return 0; + void *ret; + ptr->_errno = ENOMEM; + ret = (void *)-1; + + return ret; } /* for exit() and abort() */