xref: /plan9-contrib/sys/src/cmd/9l/compat.c (revision fbadb1c4d4463e58337ffb1ed396c9caee5d1889)
1*fbadb1c4SDavid du Colombier #include	"l.h"
2*fbadb1c4SDavid du Colombier 
3*fbadb1c4SDavid du Colombier /*
4*fbadb1c4SDavid du Colombier  * fake malloc
5*fbadb1c4SDavid du Colombier  */
6*fbadb1c4SDavid du Colombier void*
malloc(ulong n)7*fbadb1c4SDavid du Colombier malloc(ulong n)
8*fbadb1c4SDavid du Colombier {
9*fbadb1c4SDavid du Colombier 	void *p;
10*fbadb1c4SDavid du Colombier 
11*fbadb1c4SDavid du Colombier 	while(n & 7)
12*fbadb1c4SDavid du Colombier 		n++;
13*fbadb1c4SDavid du Colombier 	while(nhunk < n)
14*fbadb1c4SDavid du Colombier 		gethunk();
15*fbadb1c4SDavid du Colombier 	p = hunk;
16*fbadb1c4SDavid du Colombier 	nhunk -= n;
17*fbadb1c4SDavid du Colombier 	hunk += n;
18*fbadb1c4SDavid du Colombier 	return p;
19*fbadb1c4SDavid du Colombier }
20*fbadb1c4SDavid du Colombier 
21*fbadb1c4SDavid du Colombier void
free(void * p)22*fbadb1c4SDavid du Colombier free(void *p)
23*fbadb1c4SDavid du Colombier {
24*fbadb1c4SDavid du Colombier 	USED(p);
25*fbadb1c4SDavid du Colombier }
26*fbadb1c4SDavid du Colombier 
27*fbadb1c4SDavid du Colombier void*
calloc(ulong m,ulong n)28*fbadb1c4SDavid du Colombier calloc(ulong m, ulong n)
29*fbadb1c4SDavid du Colombier {
30*fbadb1c4SDavid du Colombier 	void *p;
31*fbadb1c4SDavid du Colombier 
32*fbadb1c4SDavid du Colombier 	n *= m;
33*fbadb1c4SDavid du Colombier 	p = malloc(n);
34*fbadb1c4SDavid du Colombier 	memset(p, 0, n);
35*fbadb1c4SDavid du Colombier 	return p;
36*fbadb1c4SDavid du Colombier }
37*fbadb1c4SDavid du Colombier 
38*fbadb1c4SDavid du Colombier void*
realloc(void *,ulong)39*fbadb1c4SDavid du Colombier realloc(void*, ulong)
40*fbadb1c4SDavid du Colombier {
41*fbadb1c4SDavid du Colombier 	fprint(2, "realloc called\n");
42*fbadb1c4SDavid du Colombier 	abort();
43*fbadb1c4SDavid du Colombier 	return 0;
44*fbadb1c4SDavid du Colombier }
45*fbadb1c4SDavid du Colombier 
46*fbadb1c4SDavid du Colombier void*
mysbrk(ulong size)47*fbadb1c4SDavid du Colombier mysbrk(ulong size)
48*fbadb1c4SDavid du Colombier {
49*fbadb1c4SDavid du Colombier 	return sbrk(size);
50*fbadb1c4SDavid du Colombier }
51*fbadb1c4SDavid du Colombier 
52*fbadb1c4SDavid du Colombier void
setmalloctag(void * v,ulong pc)53*fbadb1c4SDavid du Colombier setmalloctag(void *v, ulong pc)
54*fbadb1c4SDavid du Colombier {
55*fbadb1c4SDavid du Colombier 	USED(v, pc);
56*fbadb1c4SDavid du Colombier }
57*fbadb1c4SDavid du Colombier 
58*fbadb1c4SDavid du Colombier int
fileexists(char * s)59*fbadb1c4SDavid du Colombier fileexists(char *s)
60*fbadb1c4SDavid du Colombier {
61*fbadb1c4SDavid du Colombier 	uchar dirbuf[400];
62*fbadb1c4SDavid du Colombier 
63*fbadb1c4SDavid du Colombier 	/* it's fine if stat result doesn't fit in dirbuf, since even then the file exists */
64*fbadb1c4SDavid du Colombier 	return stat(s, dirbuf, sizeof(dirbuf)) >= 0;
65*fbadb1c4SDavid du Colombier }
66