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