/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. * * Copyright (C) 1995, 1996, 1997, 2000, 2001, 05 by Ralf Baechle * Copyright (C) 1999, 2000 Silicon Graphics, Inc. * Copyright (C) 2001 MIPS Technologies, Inc.
*/ #include <linux/capability.h> #include <linux/errno.h> #include <linux/linkage.h> #include <linux/fs.h> #include <linux/smp.h> #include <linux/ptrace.h> #include <linux/string.h> #include <linux/syscalls.h> #include <linux/file.h> #include <linux/utsname.h> #include <linux/unistd.h> #include <linux/sem.h> #include <linux/msg.h> #include <linux/shm.h> #include <linux/compiler.h> #include <linux/ipc.h> #include <linux/uaccess.h> #include <linux/slab.h> #include <linux/elf.h> #include <linux/sched/task_stack.h>
/* * For historic reasons the pipe(2) syscall on MIPS has an unusual calling * convention. It returns results in registers $v0 / $v1 which means there * is no need for it to do verify the validity of a userspace pointer * argument. Historically that used to be expensive in Linux. These days * the performance advantage is negligible.
*/
asmlinkage int sysm_pipe(void)
{ int fd[2]; int error = do_pipe_flags(fd, 0); if (error) return error;
current_pt_regs()->regs[3] = fd[1]; return fd[0];
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.