summaryrefslogtreecommitdiffstats
path: root/lib/libc/mips
diff options
context:
space:
mode:
authorbrooks <brooks@FreeBSD.org>2016-06-22 21:11:27 +0000
committerbrooks <brooks@FreeBSD.org>2016-06-22 21:11:27 +0000
commitecead64b414c307960363fbbb9925c7dd8a20fdd (patch)
tree140928f4a0a736777b084ada0a5c3d1ccc4401e4 /lib/libc/mips
parenta8b2bf94923e9d19ec8834944663693093600a6b (diff)
downloadFreeBSD-src-ecead64b414c307960363fbbb9925c7dd8a20fdd.zip
FreeBSD-src-ecead64b414c307960363fbbb9925c7dd8a20fdd.tar.gz
Replace use of the pipe(2) system call with pipe2(2) with a zero flags
value. This eliminates the need for machine dependant assembly wrappers for pipe(2). It also make passing an invalid address to pipe(2) return EFAULT rather than triggering a segfault. Document this behavior (which was already true for pipe2(2), but undocumented). Reviewed by: andrew Approved by: re (gjb) Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D6815
Diffstat (limited to 'lib/libc/mips')
-rw-r--r--lib/libc/mips/sys/Makefile.inc2
-rw-r--r--lib/libc/mips/sys/pipe.S57
2 files changed, 1 insertions, 58 deletions
diff --git a/lib/libc/mips/sys/Makefile.inc b/lib/libc/mips/sys/Makefile.inc
index c0bd5ad9..fb6bdf6 100644
--- a/lib/libc/mips/sys/Makefile.inc
+++ b/lib/libc/mips/sys/Makefile.inc
@@ -3,7 +3,7 @@
SRCS+= trivial-vdso_tc.c
MDASM= Ovfork.S brk.S cerror.S exect.S \
- pipe.S ptrace.S sbrk.S syscall.S
+ ptrace.S sbrk.S syscall.S
# Don't generate default code for these syscalls:
NOASM= break.o exit.o getlogin.o openbsd_poll.o sstk.o vfork.o yield.o
diff --git a/lib/libc/mips/sys/pipe.S b/lib/libc/mips/sys/pipe.S
deleted file mode 100644
index 0146532..0000000
--- a/lib/libc/mips/sys/pipe.S
+++ /dev/null
@@ -1,57 +0,0 @@
-/* $NetBSD: pipe.S,v 1.11 2005/04/22 06:58:01 simonb Exp $ */
-
-/*-
- * Copyright (c) 1991, 1993
- * The Regents of the University of California. All rights reserved.
- *
- * This code is derived from software contributed to Berkeley by
- * Ralph Campbell.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include <machine/asm.h>
-__FBSDID("$FreeBSD$");
-#include "SYS.h"
-
-#if defined(LIBC_SCCS) && !defined(lint)
- ASMSTR("from: @(#)pipe.s 8.1 (Berkeley) 6/4/93")
- ASMSTR("$NetBSD: pipe.S,v 1.11 2005/04/22 06:58:01 simonb Exp $")
-#endif /* LIBC_SCCS and not lint */
-
-LEAF(__sys_pipe)
- WEAK_ALIAS(pipe, __sys_pipe)
- WEAK_ALIAS(_pipe, __sys_pipe)
- PIC_PROLOGUE(__sys_pipe)
- li v0, SYS_pipe # pipe(fildes) int fildes[2];
- syscall
- bne a3, zero, 1f
- sw v0, 0(a0) # store the two file descriptors
- sw v1, 4(a0)
- move v0, zero
- PIC_RETURN()
-1:
- PIC_TAILCALL(__cerror)
-END(__sys_pipe)
OpenPOWER on IntegriCloud