diff options
| author | Mike Frysinger <vapier@gentoo.org> | 2008-12-11 10:08:00 +0000 | 
|---|---|---|
| committer | Mike Frysinger <vapier@gentoo.org> | 2008-12-11 10:08:00 +0000 | 
| commit | 6ff6eb1350c00bde1e64eeabd676e477402d5b9c (patch) | |
| tree | 2d1b841b2a21b919e83087361c5dce106ec586a2 | |
| parent | a3368fd4fbb42eff5ca5b364218204f751e27e0d (diff) | |
create arch-generic brk() based on blackfin one
| -rw-r--r-- | libc/sysdeps/linux/bfin/Makefile.arch | 2 | ||||
| -rw-r--r-- | libc/sysdeps/linux/common/brk.c (renamed from libc/sysdeps/linux/bfin/brk.c) | 28 | 
2 files changed, 13 insertions, 17 deletions
| diff --git a/libc/sysdeps/linux/bfin/Makefile.arch b/libc/sysdeps/linux/bfin/Makefile.arch index cdb588a36..81fca3295 100644 --- a/libc/sysdeps/linux/bfin/Makefile.arch +++ b/libc/sysdeps/linux/bfin/Makefile.arch @@ -5,7 +5,7 @@  # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.  # -CSRC := brk.c bsdsetjmp.c clone.c syscall.c \ +CSRC := bsdsetjmp.c clone.c syscall.c \  	sram-alloc.c sram-free.c dma-memcpy.c  SSRC := __longjmp.S setjmp.S bsd-_setjmp.S vfork.S diff --git a/libc/sysdeps/linux/bfin/brk.c b/libc/sysdeps/linux/common/brk.c index 88b82cf64..18836ba59 100644 --- a/libc/sysdeps/linux/bfin/brk.c +++ b/libc/sysdeps/linux/common/brk.c @@ -8,29 +8,25 @@  #include <unistd.h>  #include <sys/syscall.h> -/* libc_hidden_proto(brk) */ +libc_hidden_proto(brk) + +#define __NR___syscall_brk __NR_brk +static inline _syscall1(void *, __syscall_brk, void *, end)  /* This must be initialized data because commons can't have aliases.  */  void * __curbrk attribute_hidden = 0; -int brk (void *addr) +int brk(void *addr)  { -    void *newbrk; - -	__asm__ __volatile__( -		"P0 = %2;\n\t" -		"excpt 0;\n\t" -		: "=q0" (newbrk) -		: "q0" (addr), "i" (__NR_brk): "P0" ); +	void *newbrk = __syscall_brk(addr); -    __curbrk = newbrk; +	__curbrk = newbrk; -    if (newbrk < addr) -    { -	__set_errno (ENOMEM); -	return -1; -    } +	if (newbrk < addr) { +		__set_errno (ENOMEM); +		return -1; +	} -    return 0; +	return 0;  }  libc_hidden_def(brk) | 
