xref: /plan9/sys/src/lib9p/mem.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
1*9a747e4fSDavid du Colombier #include <u.h>
2*9a747e4fSDavid du Colombier #include <libc.h>
3*9a747e4fSDavid du Colombier #include <auth.h>
4*9a747e4fSDavid du Colombier #include <fcall.h>
5*9a747e4fSDavid du Colombier #include <thread.h>
6*9a747e4fSDavid du Colombier #include "9p.h"
7*9a747e4fSDavid du Colombier 
8*9a747e4fSDavid du Colombier void*
emalloc9p(ulong sz)9*9a747e4fSDavid du Colombier emalloc9p(ulong sz)
10*9a747e4fSDavid du Colombier {
11*9a747e4fSDavid du Colombier 	void *v;
12*9a747e4fSDavid du Colombier 
13*9a747e4fSDavid du Colombier 	if((v = malloc(sz)) == nil) {
14*9a747e4fSDavid du Colombier 		fprint(2, "out of memory allocating %lud\n", sz);
15*9a747e4fSDavid du Colombier 		exits("mem");
16*9a747e4fSDavid du Colombier 	}
17*9a747e4fSDavid du Colombier 	memset(v, 0, sz);
18*9a747e4fSDavid du Colombier 	setmalloctag(v, getcallerpc(&sz));
19*9a747e4fSDavid du Colombier 	return v;
20*9a747e4fSDavid du Colombier }
21*9a747e4fSDavid du Colombier 
22*9a747e4fSDavid du Colombier void*
erealloc9p(void * v,ulong sz)23*9a747e4fSDavid du Colombier erealloc9p(void *v, ulong sz)
24*9a747e4fSDavid du Colombier {
25*9a747e4fSDavid du Colombier 	void *nv;
26*9a747e4fSDavid du Colombier 
27*9a747e4fSDavid du Colombier 	if((nv = realloc(v, sz)) == nil) {
28*9a747e4fSDavid du Colombier 		fprint(2, "out of memory allocating %lud\n", sz);
29*9a747e4fSDavid du Colombier 		exits("mem");
30*9a747e4fSDavid du Colombier 	}
31*9a747e4fSDavid du Colombier 	if(v == nil)
32*9a747e4fSDavid du Colombier 		setmalloctag(nv, getcallerpc(&v));
33*9a747e4fSDavid du Colombier 	setrealloctag(nv, getcallerpc(&v));
34*9a747e4fSDavid du Colombier 	return nv;
35*9a747e4fSDavid du Colombier }
36*9a747e4fSDavid du Colombier 
37*9a747e4fSDavid du Colombier char*
estrdup9p(char * s)38*9a747e4fSDavid du Colombier estrdup9p(char *s)
39*9a747e4fSDavid du Colombier {
40*9a747e4fSDavid du Colombier 	char *t;
41*9a747e4fSDavid du Colombier 
42*9a747e4fSDavid du Colombier 	if((t = strdup(s)) == nil) {
43*9a747e4fSDavid du Colombier 		fprint(2, "out of memory in strdup(%.10s)\n", s);
44*9a747e4fSDavid du Colombier 		exits("mem");
45*9a747e4fSDavid du Colombier 	}
46*9a747e4fSDavid du Colombier 	setmalloctag(t, getcallerpc(&s));
47*9a747e4fSDavid du Colombier 	return t;
48*9a747e4fSDavid du Colombier }
49*9a747e4fSDavid du Colombier 
50