shithub: scc

ref: 98fca36162887f14d76aa2a8746cec529826c079
dir: /src/libc/arch/darwin/_getheap.c/

View raw version
#include <errno.h>
#include <stddef.h>

#include "../../syscall.h"

static char heap[16384];

/*
 * TODO: Temporary solution until we implement mmap in Darwin
 *       because it does not support any form of brk().
 */
void *
_getheap(void)
{
	return heap;
}

int
_brk(void *addr)
{
	static char *cur = heap;
	char *p = addr;

	if (p < heap || p > &heap[sizeof(heap) - 1]) {
		errno = ENOMEM;
		return -1;
	}
	cur = p;

	return 0;
}