fluffos-1.22/
fluffos-1.22/Win32/
fluffos-1.22/compat/
fluffos-1.22/testsuite/
fluffos-1.22/testsuite/clone/
fluffos-1.22/testsuite/command/
fluffos-1.22/testsuite/data/
fluffos-1.22/testsuite/etc/
fluffos-1.22/testsuite/include/
fluffos-1.22/testsuite/inherit/
fluffos-1.22/testsuite/inherit/master/
fluffos-1.22/testsuite/log/
fluffos-1.22/testsuite/single/
fluffos-1.22/testsuite/single/tests/compiler/
fluffos-1.22/testsuite/single/tests/efuns/
fluffos-1.22/testsuite/single/tests/operators/
fluffos-1.22/testsuite/u/
fluffos-1.22/tmp/
#include <sys/mman.h>
#include <unistd.h>

void *mmalloc(size_t size){
  register int *res = mmap(0,size+4,PROT_READ|PROT_WRITE,MAP_PRIVATE|MAP_ANONYMOUS,0,0);
  *res=size;
  return &res[1];
}

void mfree(void *p){
  register int *mem = p;
  mem--;
  munmap(mem, 4+*mem);
}

void *mrealloc(void *p, int size){
  register int *mem = p;
  int oldsize;
  mem--;
  oldsize = 4 + *mem;
  mem = mremap(mem, oldsize, size+4, 1);
  *mem = size;
  return &mem[1];
}
  
void *mcalloc(size_t num, size_t size){
  register void *p;

  size *= num;
  if ((p = mmalloc(size)))
    memset(p, 0, size);
  return (p);
}