make CMPLX macros available in complex.h in non-c11 mode as well
[musl] / src / linux / sbrk.c
index 56f60d1..3643765 100644 (file)
@@ -1,7 +1,9 @@
-#include <stddef.h>
+#include <stdint.h>
 #include "syscall.h"
 
-void *sbrk(ptrdiff_t inc)
+void *sbrk(intptr_t inc)
 {
-       return (void *)syscall1(__NR_brk, syscall1(__NR_brk, 0)+inc);
+       unsigned long cur = syscall(SYS_brk, 0);
+       if (inc && syscall(SYS_brk, cur+inc) != cur+inc) return (void *)-1;
+       return (void *)cur;
 }