diff options
author | H. Peter Anvin <hpa@linux.intel.com> | 2012-05-10 15:01:23 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2012-05-10 15:01:23 -0700 |
commit | 26cebd536042c9ec00eb5cc44c83bd2079751426 (patch) | |
tree | c6f1153f554a492e38ee353cbbb4a25c9aaee71a | |
parent | 7649a96452442acaccf14498293676ef2c445504 (diff) | |
download | klibc-26cebd536042c9ec00eb5cc44c83bd2079751426.tar.gz |
[klibc] Add zalloc() function
Although not standard, the zalloc() function is so useful and
common that we might as well include it.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r-- | usr/include/malloc.h | 1 | ||||
-rw-r--r-- | usr/klibc/calloc.c | 9 | ||||
-rw-r--r-- | usr/klibc/zalloc.c | 17 |
3 files changed, 19 insertions, 8 deletions
diff --git a/usr/include/malloc.h b/usr/include/malloc.h index 277316704b713..eb5fe340599d8 100644 --- a/usr/include/malloc.h +++ b/usr/include/malloc.h @@ -15,6 +15,7 @@ __extern void free(void *); __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); diff --git a/usr/klibc/calloc.c b/usr/klibc/calloc.c index 3db76649dccba..53dcc6b2f6bf6 100644 --- a/usr/klibc/calloc.c +++ b/usr/klibc/calloc.c @@ -9,12 +9,5 @@ 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(nmemb * size); } diff --git a/usr/klibc/zalloc.c b/usr/klibc/zalloc.c new file mode 100644 index 0000000000000..0a5e823ac502c --- /dev/null +++ b/usr/klibc/zalloc.c @@ -0,0 +1,17 @@ +/* + * 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; +} |