From 8d0ced206951f35d5caab61969344b0ab259e5fb Mon Sep 17 00:00:00 2001 From: arvinzzz Date: Tue, 28 Dec 2021 16:12:26 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=85=AC=E7=89=88gcc?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E5=86=85=E6=A0=B8=EF=BC=8C=E8=B0=83=E7=94=A8?= =?UTF-8?q?calloc=E5=B4=A9=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 使用内核提供的calloc接口替换工具链的实现 close: #I4OFG6 Signed-off-by: arvinzzz Change-Id: Ia979f2b613c8bab89b5df3aa4bd340f6cc6fabd7 --- kal/libc/newlib/porting/src/malloc.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/kal/libc/newlib/porting/src/malloc.c b/kal/libc/newlib/porting/src/malloc.c index 3a980844..ec8ef278 100644 --- a/kal/libc/newlib/porting/src/malloc.c +++ b/kal/libc/newlib/porting/src/malloc.c @@ -94,3 +94,20 @@ void *__wrap__realloc_r(struct _reent *reent, void *aptr, size_t nbytes) return LOS_MemRealloc(OS_SYS_MEM_ADDR, aptr, nbytes); } + +void *__wrap__calloc_r(struct _reent *reent, size_t nitems, size_t size) +{ + size_t real_size; + void *ptr = NULL; + + if (nitems == 0 || size == 0) { + return NULL; + } + + real_size = (size_t)(nitems * size); + ptr = LOS_MemAlloc(OS_SYS_MEM_ADDR, real_size); + if (ptr != NULL) { + (void)memset_s(ptr, real_size, 0, real_size); + } + return ptr; +}