diff options
| author | Mike Frysinger <vapier@gentoo.org> | 2006-02-28 23:47:41 +0000 | 
|---|---|---|
| committer | Mike Frysinger <vapier@gentoo.org> | 2006-02-28 23:47:41 +0000 | 
| commit | c09d1712ed076b259ba3babf8aa21df60650d2cb (patch) | |
| tree | 6685774df93909743f0ae3c42761e9c72b894cab /libc/sysdeps | |
| parent | 0e0e8dde81ff408a621bbf8165f55125b6f06c86 (diff) | |
add pipe from glibc to fix popen test
Diffstat (limited to 'libc/sysdeps')
| -rw-r--r-- | libc/sysdeps/linux/alpha/Makefile.arch | 5 | ||||
| -rw-r--r-- | libc/sysdeps/linux/alpha/pipe.S | 48 | 
2 files changed, 51 insertions, 2 deletions
diff --git a/libc/sysdeps/linux/alpha/Makefile.arch b/libc/sysdeps/linux/alpha/Makefile.arch index 84e0561ec..0a0fbdba4 100644 --- a/libc/sysdeps/linux/alpha/Makefile.arch +++ b/libc/sysdeps/linux/alpha/Makefile.arch @@ -1,6 +1,6 @@  # Makefile for uClibc  # -# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org> +# Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>  #  # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.  # @@ -9,6 +9,7 @@ CSRC := __syscall_error.c sigprocmask.c  SSRC := \  	__longjmp.S brk.S bsd-_setjmp.S bsd-setjmp.S clone.S \ -	divl.S divq.S reml.S remq.S rt_sigaction.S setjmp.S syscall.S +	divl.S divq.S pipe.S reml.S remq.S rt_sigaction.S setjmp.S \ +	syscall.S  include $(top_srcdir)libc/sysdeps/linux/Makefile.commonarch diff --git a/libc/sysdeps/linux/alpha/pipe.S b/libc/sysdeps/linux/alpha/pipe.S new file mode 100644 index 000000000..8a9236bc5 --- /dev/null +++ b/libc/sysdeps/linux/alpha/pipe.S @@ -0,0 +1,48 @@ +/* Copyright (C) 1993, 1995, 1997, 2002 Free Software Foundation, Inc. +   This file is part of the GNU C Library. +   Contributed by David Mosberger (davidm@cs.arizona.edu). + +   The GNU C Library is free software; you can redistribute it and/or +   modify it under the terms of the GNU Lesser General Public +   License as published by the Free Software Foundation; either +   version 2.1 of the License, or (at your option) any later version. + +   The GNU C Library is distributed in the hope that it will be useful, +   but WITHOUT ANY WARRANTY; without even the implied warranty of +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU +   Lesser General Public License for more details. + +   You should have received a copy of the GNU Lesser General Public +   License along with the GNU C Library; if not, write to the Free +   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +   02111-1307 USA.  */ + +#include <features.h> +#include <sys/syscall.h> +#include <sys/regdef.h> +#include <asm/pal.h> + +/* __pipe is a special syscall since it returns two values.  */ + +.globl pipe +.align 4 +.ent pipe, 0 +pipe: +	.frame sp, 0, ra +	ldgp gp,0(pv) +	.prologue 1 +	lda v0, __NR_pipe +	call_pal PAL_callsys +	bne a3, $syscall_error + +	stl	r0, 0(a0) +	stl	r1, 4(a0) +	mov	zero, v0 +	ret + +$syscall_error: +	jmp	zero,__syscall_error + +.end pipe + +libc_hidden_def (pipe)  | 
