17edc7532SDavid du Colombier #include "l.h"
27edc7532SDavid du Colombier
37edc7532SDavid du Colombier /*
47edc7532SDavid du Colombier * fake malloc
57edc7532SDavid du Colombier */
67edc7532SDavid du Colombier void*
malloc(ulong n)77edc7532SDavid du Colombier malloc(ulong n)
87edc7532SDavid du Colombier {
97edc7532SDavid du Colombier void *p;
107edc7532SDavid du Colombier
117edc7532SDavid du Colombier while(n & 7)
127edc7532SDavid du Colombier n++;
137edc7532SDavid du Colombier while(nhunk < n)
147edc7532SDavid du Colombier gethunk();
157edc7532SDavid du Colombier p = hunk;
167edc7532SDavid du Colombier nhunk -= n;
177edc7532SDavid du Colombier hunk += n;
187edc7532SDavid du Colombier return p;
197edc7532SDavid du Colombier }
207edc7532SDavid du Colombier
217edc7532SDavid du Colombier void
free(void * p)227edc7532SDavid du Colombier free(void *p)
237edc7532SDavid du Colombier {
247edc7532SDavid du Colombier USED(p);
257edc7532SDavid du Colombier }
267edc7532SDavid du Colombier
277edc7532SDavid du Colombier void*
calloc(ulong m,ulong n)287edc7532SDavid du Colombier calloc(ulong m, ulong n)
297edc7532SDavid du Colombier {
307edc7532SDavid du Colombier void *p;
317edc7532SDavid du Colombier
327edc7532SDavid du Colombier n *= m;
337edc7532SDavid du Colombier p = malloc(n);
347edc7532SDavid du Colombier memset(p, 0, n);
357edc7532SDavid du Colombier return p;
367edc7532SDavid du Colombier }
377edc7532SDavid du Colombier
387edc7532SDavid du Colombier void*
realloc(void *,ulong)39*f8bc6aafSDavid du Colombier realloc(void*, ulong)
407edc7532SDavid du Colombier {
41*f8bc6aafSDavid du Colombier fprint(2, "realloc called\n");
427edc7532SDavid du Colombier abort();
437edc7532SDavid du Colombier return 0;
447edc7532SDavid du Colombier }
45*f8bc6aafSDavid du Colombier
467edc7532SDavid du Colombier void*
mysbrk(ulong size)477edc7532SDavid du Colombier mysbrk(ulong size)
487edc7532SDavid du Colombier {
497edc7532SDavid du Colombier return sbrk(size);
507edc7532SDavid du Colombier }
51*f8bc6aafSDavid du Colombier
52*f8bc6aafSDavid du Colombier void
setmalloctag(void * v,ulong pc)53*f8bc6aafSDavid du Colombier setmalloctag(void *v, ulong pc)
54*f8bc6aafSDavid du Colombier {
55*f8bc6aafSDavid du Colombier USED(v, pc);
56*f8bc6aafSDavid du Colombier }
57*f8bc6aafSDavid du Colombier
58*f8bc6aafSDavid du Colombier int
fileexists(char * s)59*f8bc6aafSDavid du Colombier fileexists(char *s)
60*f8bc6aafSDavid du Colombier {
61*f8bc6aafSDavid du Colombier uchar dirbuf[400];
62*f8bc6aafSDavid du Colombier
63*f8bc6aafSDavid du Colombier /* it's fine if stat result doesn't fit in dirbuf, since even then the file exists */
64*f8bc6aafSDavid du Colombier return stat(s, dirbuf, sizeof(dirbuf)) >= 0;
65*f8bc6aafSDavid du Colombier }
66