diff options
Diffstat (limited to 'usr/klibc/brk.c')
-rw-r--r-- | usr/klibc/brk.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/usr/klibc/brk.c b/usr/klibc/brk.c new file mode 100644 index 0000000..df0bb7b --- /dev/null +++ b/usr/klibc/brk.c @@ -0,0 +1,29 @@ +/* brk.c - Change data segment size */ + +/* Written 2000 by Werner Almesberger */ + +#include <stddef.h> +#include <unistd.h> +#include <sys/types.h> +#include "malloc.h" + +#if !_KLIBC_NO_MMU /* uClinux doesn't have brk() */ + +char *__current_brk; + +/* + * The Linux brk() isn't what most people expect, so we call the + * system call __brk() and provide a wrapper. + */ +int brk(void *end_data_segment) +{ + char *new_brk; + + new_brk = __brk(end_data_segment); + if (new_brk != end_data_segment) + return -1; + __current_brk = new_brk; + return 0; +} + +#endif |