Add the nonstandard, but often useful, zalloc() function.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
}
__extern __mallocfunc void *malloc(size_t);
+__extern __mallocfunc void *zalloc(size_t);
__extern __mallocfunc void *calloc(size_t, size_t);
__extern __mallocfunc void *realloc(void *, size_t);
__extern long strtol(const char *, char **, int);
strtoimax.o strtok.o strtol.o strtoll.o strtoul.o strtoull.o \
strtoumax.o vfprintf.o vprintf.o vsnprintf.o vsprintf.o \
asprintf.o vasprintf.o strlcpy.o strlcat.o \
- vsscanf.o \
+ vsscanf.o zalloc.o \
\
libgcc/__ashldi3.o libgcc/__udivdi3.o \
libgcc/__negdi2.o libgcc/__ashrdi3.o libgcc/__lshrdi3.o \
void *calloc(size_t nmemb, size_t size)
{
- void *ptr;
-
- size *= nmemb;
- ptr = malloc(size);
- if ( ptr )
- memset(ptr, 0, size);
-
- return ptr;
+ return zalloc(size*nmemb);
}
--- /dev/null
+/*
+ * zalloc.c
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+void *zalloc(size_t size)
+{
+ void *ptr;
+
+ ptr = malloc(size);
+ if ( ptr )
+ memset(ptr, 0, size);
+
+ return ptr;
+}