diff options
author | Eric Andersen <andersen@codepoet.org> | 2003-01-30 23:46:32 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2003-01-30 23:46:32 +0000 |
commit | e77dfaab537fb6e94bf5c799ec8a845252f4cbd4 (patch) | |
tree | f85ebe5ea9ef821a136e49f4ff95c265a154eff9 /libc/sysdeps/linux/mips/pipe.S | |
parent | 53686db34d817e51245e6621e99236cedd41b9e1 (diff) |
Patch from Marshall M. Midden @ brecis.com:
pipe.c for mips was broken with freeswan. No error checking.
Diffstat (limited to 'libc/sysdeps/linux/mips/pipe.S')
-rw-r--r-- | libc/sysdeps/linux/mips/pipe.S | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/mips/pipe.S b/libc/sysdeps/linux/mips/pipe.S new file mode 100644 index 000000000..039b24305 --- /dev/null +++ b/libc/sysdeps/linux/mips/pipe.S @@ -0,0 +1,39 @@ +/* pipe system call for Linux/MIPS */ + +/*see uClibc's sh/pipe.c and glibc-2.2.4's mips/pipe.S */ + +#include <features.h> +#include <asm/asm.h> +#include <asm/unistd.h> +#include <asm/mipsregs.h> +#include <asm/regdef.h> + + .globl pipe + .ent pipe, 0 +pipe: +#ifdef PROF + .set noat + move $1,ra + subu sp,sp,8 # _mcount pops 2 words from stack + jal _mcount + .set at +#endif + addiu sp,sp,-24 + sw a0,16(sp) + li v0,__NR_pipe + syscall + beqz a3, 1f + la t3, errno + sw v0, (t3) + li v0, -1 + b 2f +1: + lw a0, 16(sp) + sw v0, 0(a0) + sw v1, 4(a0) + li v0, 0 +2: + addiu sp,sp,24 + j ra + .end pipe + .size pipe,.-pipe |