diff options
author | "Steven J. Hill" <sjhill@realitydiluted.com> | 2005-08-17 14:48:11 +0000 |
---|---|---|
committer | "Steven J. Hill" <sjhill@realitydiluted.com> | 2005-08-17 14:48:11 +0000 |
commit | 54a7d559374ef72fa59bbe3a56d27ff5ec34d3aa (patch) | |
tree | 1fe7209313f2728c550d3eb75929b4af051fb349 /libc/sysdeps/linux/arm/brk.c | |
parent | b46868ff8b3d2fb592e3fca4a516695533eae9e5 (diff) | |
download | uClibc-alpine-54a7d559374ef72fa59bbe3a56d27ff5ec34d3aa.tar.bz2 uClibc-alpine-54a7d559374ef72fa59bbe3a56d27ff5ec34d3aa.tar.xz |
Merge/sync with trunk.
Diffstat (limited to 'libc/sysdeps/linux/arm/brk.c')
-rw-r--r-- | libc/sysdeps/linux/arm/brk.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/libc/sysdeps/linux/arm/brk.c b/libc/sysdeps/linux/arm/brk.c index fa0326a0e..82b9835ae 100644 --- a/libc/sysdeps/linux/arm/brk.c +++ b/libc/sysdeps/linux/arm/brk.c @@ -26,22 +26,14 @@ void *__curbrk = 0; int brk (void *addr) { - void *newbrk; + void *newbrk = (void*)INTERNAL_SYSCALL(brk, , 1, addr); - asm ("mov a1, %1\n" /* save the argment in r0 */ - "swi %2\n" /* do the system call */ - "mov %0, a1;" /* keep the return value */ - : "=r"(newbrk) - : "r"(addr), "i" (__NR_brk) - : "a1"); + __curbrk = newbrk; - __curbrk = newbrk; + if (newbrk < addr) { + __set_errno (ENOMEM); + return -1; + } - if (newbrk < addr) - { - __set_errno (ENOMEM); - return -1; - } - - return 0; + return 0; } |