libc: move calloc() into its own compilation unit
move calloc() in its own compilation unit to avoid code duplication. also, calloc() is used rarely in plan9 programs.
This commit is contained in:
parent
bf9bada0c2
commit
5c1feb0ef0
|
@ -286,15 +286,6 @@ msize(void *v)
|
||||||
return poolmsize(mainmem, (ulong*)v-Npadlong)-Npadlong*sizeof(ulong);
|
return poolmsize(mainmem, (ulong*)v-Npadlong)-Npadlong*sizeof(ulong);
|
||||||
}
|
}
|
||||||
|
|
||||||
void*
|
|
||||||
calloc(ulong n, ulong szelem)
|
|
||||||
{
|
|
||||||
void *v;
|
|
||||||
if(v = mallocz(n*szelem, 1))
|
|
||||||
setmalloctag(v, getcallerpc(&n));
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* secret memory, used to back cryptographic keys and cipher states */
|
/* secret memory, used to back cryptographic keys and cipher states */
|
||||||
void*
|
void*
|
||||||
secalloc(ulong size)
|
secalloc(ulong size)
|
||||||
|
|
13
sys/src/libc/port/calloc.c
Normal file
13
sys/src/libc/port/calloc.c
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
#include <u.h>
|
||||||
|
#include <libc.h>
|
||||||
|
|
||||||
|
void*
|
||||||
|
calloc(ulong n, ulong s)
|
||||||
|
{
|
||||||
|
void *v;
|
||||||
|
if(n > 1 && ((ulong)-1)/n < s)
|
||||||
|
return nil;
|
||||||
|
if(v = mallocz(n*s, 1))
|
||||||
|
setmalloctag(v, getcallerpc(&n));
|
||||||
|
return v;
|
||||||
|
}
|
|
@ -279,18 +279,6 @@ msize(void *v)
|
||||||
return poolmsize(mainmem, (ulong*)v-Npadlong)-Npadlong*sizeof(ulong);
|
return poolmsize(mainmem, (ulong*)v-Npadlong)-Npadlong*sizeof(ulong);
|
||||||
}
|
}
|
||||||
|
|
||||||
void*
|
|
||||||
calloc(ulong n, ulong s)
|
|
||||||
{
|
|
||||||
void *v;
|
|
||||||
|
|
||||||
if(n > 1 && ((ulong)-1)/n < s)
|
|
||||||
return nil;
|
|
||||||
if(v = mallocz(n*s, 1))
|
|
||||||
setmalloctag(v, getcallerpc(&n));
|
|
||||||
return v;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
setmalloctag(void *v, uintptr pc)
|
setmalloctag(void *v, uintptr pc)
|
||||||
{
|
{
|
||||||
|
|
|
@ -12,6 +12,7 @@ CFILES=\
|
||||||
atof.c\
|
atof.c\
|
||||||
atol.c\
|
atol.c\
|
||||||
atoll.c\
|
atoll.c\
|
||||||
|
calloc.c\
|
||||||
cistrcmp.c\
|
cistrcmp.c\
|
||||||
cistrncmp.c\
|
cistrncmp.c\
|
||||||
cistrstr.c\
|
cistrstr.c\
|
||||||
|
|
Loading…
Reference in a new issue