diff --git a/core/include/oneway_malloc.h b/core/include/oneway_malloc.h index 4e64615ef6..76946dfd04 100644 --- a/core/include/oneway_malloc.h +++ b/core/include/oneway_malloc.h @@ -13,6 +13,7 @@ void *_malloc(size_t size); void *_realloc(void *ptr, size_t size); +void *_calloc(int size, size_t cnt); void _free(void *ptr); /** @} */ diff --git a/core/oneway_malloc.c b/core/oneway_malloc.c index 4c3e9eba17..c8e8fd5c2e 100644 --- a/core/oneway_malloc.c +++ b/core/oneway_malloc.c @@ -47,6 +47,15 @@ void *_realloc(void *ptr, size_t size) return newptr; } +void *_calloc(int size, size_t cnt) +{ + void *mem = _malloc(size * cnt); + if (mem) { + memset(mem, 0, size * cnt); + } + return mem; +} + void _free(void *ptr) { /* who cares about pointers? */