ref: fd8a2d81c3ddf6584d2b47f1b8efe30b66beb7b5
dir: /sys/src/libc/9sys/sbrk.c/
#include <u.h> #include <libc.h> extern char end[]; static char *bloc = { end }; extern int brk_(void*); enum { Round = 7 }; int brk(void *p) { uintptr bl; bl = ((uintptr)p + Round) & ~Round; if(brk_((void*)bl) < 0) return -1; bloc = (char*)bl; return 0; } void* sbrk(usize n) { uintptr bl; bl = ((uintptr)bloc + Round) & ~Round; if(brk_((void*)(bl+n)) < 0) return (void*)-1; bloc = (char*)bl + n; return (void*)bl; }