Module Name: src Committed By: njoly Date: Sun May 4 10:08:53 UTC 2014
Modified Files: src/sys/compat/linux/arch/alpha: syscalls.master src/sys/compat/linux/arch/amd64: syscalls.master src/sys/compat/linux/arch/arm: syscalls.master src/sys/compat/linux/arch/i386: syscalls.master src/sys/compat/linux/arch/m68k: syscalls.master src/sys/compat/linux/arch/mips: syscalls.master src/sys/compat/linux/arch/powerpc: syscalls.master src/sys/compat/linux/common: linux_file.c src/sys/compat/linux32/arch/amd64: syscalls.master src/sys/compat/linux32/common: linux32_unistd.c Log Message: Fix pread/pwrite syscalls which need a 64bit offset argument. To generate a diff of this commit: cvs rdiff -u -r1.84 -r1.85 src/sys/compat/linux/arch/alpha/syscalls.master cvs rdiff -u -r1.47 -r1.48 src/sys/compat/linux/arch/amd64/syscalls.master cvs rdiff -u -r1.55 -r1.56 src/sys/compat/linux/arch/arm/syscalls.master cvs rdiff -u -r1.113 -r1.114 src/sys/compat/linux/arch/i386/syscalls.master cvs rdiff -u -r1.82 -r1.83 src/sys/compat/linux/arch/m68k/syscalls.master cvs rdiff -u -r1.50 -r1.51 src/sys/compat/linux/arch/mips/syscalls.master cvs rdiff -u -r1.59 -r1.60 src/sys/compat/linux/arch/powerpc/syscalls.master cvs rdiff -u -r1.108 -r1.109 src/sys/compat/linux/common/linux_file.c cvs rdiff -u -r1.65 -r1.66 src/sys/compat/linux32/arch/amd64/syscalls.master cvs rdiff -u -r1.36 -r1.37 src/sys/compat/linux32/common/linux32_unistd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/compat/linux/arch/alpha/syscalls.master diff -u src/sys/compat/linux/arch/alpha/syscalls.master:1.84 src/sys/compat/linux/arch/alpha/syscalls.master:1.85 --- src/sys/compat/linux/arch/alpha/syscalls.master:1.84 Tue Apr 8 16:48:01 2014 +++ src/sys/compat/linux/arch/alpha/syscalls.master Sun May 4 10:08:53 2014 @@ -1,4 +1,4 @@ - $NetBSD: syscalls.master,v 1.84 2014/04/08 16:48:01 njoly Exp $ + $NetBSD: syscalls.master,v 1.85 2014/05/04 10:08:53 njoly Exp $ ; ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 @@ -554,9 +554,9 @@ 347 UNIMPL query_module 348 UNIMPL prctl 349 STD { int|linux_sys||pread(int fd, char *buf, \ - size_t nbyte, linux_off_t offset); } + size_t nbyte, off_t offset); } 350 STD { int|linux_sys||pwrite(int fd, char *buf, \ - size_t nbyte, linux_off_t offset); } + size_t nbyte, off_t offset); } 351 STD { int|linux_sys||rt_sigreturn( \ struct linux_rt_sigframe *sfp); } 352 STD { int|linux_sys||rt_sigaction(int signum, \ Index: src/sys/compat/linux/arch/amd64/syscalls.master diff -u src/sys/compat/linux/arch/amd64/syscalls.master:1.47 src/sys/compat/linux/arch/amd64/syscalls.master:1.48 --- src/sys/compat/linux/arch/amd64/syscalls.master:1.47 Tue Apr 8 16:48:01 2014 +++ src/sys/compat/linux/arch/amd64/syscalls.master Sun May 4 10:08:53 2014 @@ -1,4 +1,4 @@ - $NetBSD: syscalls.master,v 1.47 2014/04/08 16:48:01 njoly Exp $ + $NetBSD: syscalls.master,v 1.48 2014/05/04 10:08:53 njoly Exp $ ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 @@ -99,9 +99,9 @@ 16 STD { int|linux_sys||ioctl(int fd, u_long com, \ void *data); } 17 STD { int|linux_sys||pread(int fd, char *buf, \ - size_t nbyte, linux_off_t offset); } + size_t nbyte, off_t offset); } 18 STD { int|linux_sys||pwrite(int fd, char *buf, \ - size_t nbyte, linux_off_t offset); } + size_t nbyte, off_t offset); } 19 NOARGS { ssize_t|sys||readv(int fd, \ const struct iovec *iovp, int iovcnt); } 20 NOARGS { ssize_t|sys||writev(int fd, \ Index: src/sys/compat/linux/arch/arm/syscalls.master diff -u src/sys/compat/linux/arch/arm/syscalls.master:1.55 src/sys/compat/linux/arch/arm/syscalls.master:1.56 --- src/sys/compat/linux/arch/arm/syscalls.master:1.55 Tue Apr 8 16:48:01 2014 +++ src/sys/compat/linux/arch/arm/syscalls.master Sun May 4 10:08:53 2014 @@ -1,4 +1,4 @@ - $NetBSD: syscalls.master,v 1.55 2014/04/08 16:48:01 njoly Exp $ + $NetBSD: syscalls.master,v 1.56 2014/05/04 10:08:53 njoly Exp $ ; Derived from sys/compat/linux/arch/*/syscalls.master ; and from Linux 2.4.12 arch/arm/kernel/calls.S @@ -316,9 +316,9 @@ 179 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ size_t sigsetsize); } 180 STD { int|linux_sys||pread(int fd, char *buf, \ - size_t nbyte, linux_off_t offset); } + size_t nbyte, off_t offset); } 181 STD { int|linux_sys||pwrite(int fd, char *buf, \ - size_t nbyte, linux_off_t offset); } + size_t nbyte, off_t offset); } 182 STD { int|linux_sys||chown16(const char *path, \ linux_uid16_t uid, linux_gid16_t gid); } 183 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } Index: src/sys/compat/linux/arch/i386/syscalls.master diff -u src/sys/compat/linux/arch/i386/syscalls.master:1.113 src/sys/compat/linux/arch/i386/syscalls.master:1.114 --- src/sys/compat/linux/arch/i386/syscalls.master:1.113 Tue Apr 8 16:48:01 2014 +++ src/sys/compat/linux/arch/i386/syscalls.master Sun May 4 10:08:53 2014 @@ -1,4 +1,4 @@ - $NetBSD: syscalls.master,v 1.113 2014/04/08 16:48:01 njoly Exp $ + $NetBSD: syscalls.master,v 1.114 2014/05/04 10:08:53 njoly Exp $ ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 @@ -317,9 +317,9 @@ 179 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ size_t sigsetsize); } 180 STD { int|linux_sys||pread(int fd, char *buf, \ - size_t nbyte, linux_off_t offset); } + size_t nbyte, off_t offset); } 181 STD { int|linux_sys||pwrite(int fd, char *buf, \ - size_t nbyte, linux_off_t offset); } + size_t nbyte, off_t offset); } 182 STD { int|linux_sys||chown16(const char *path, \ linux_uid16_t uid, linux_gid16_t gid); } 183 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } Index: src/sys/compat/linux/arch/m68k/syscalls.master diff -u src/sys/compat/linux/arch/m68k/syscalls.master:1.82 src/sys/compat/linux/arch/m68k/syscalls.master:1.83 --- src/sys/compat/linux/arch/m68k/syscalls.master:1.82 Tue Apr 8 16:48:01 2014 +++ src/sys/compat/linux/arch/m68k/syscalls.master Sun May 4 10:08:53 2014 @@ -1,4 +1,4 @@ - $NetBSD: syscalls.master,v 1.82 2014/04/08 16:48:01 njoly Exp $ + $NetBSD: syscalls.master,v 1.83 2014/05/04 10:08:53 njoly Exp $ ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 @@ -335,9 +335,9 @@ 179 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ size_t sigsetsize); } 180 STD { int|linux_sys||pread(int fd, char *buf, \ - size_t nbyte, linux_off_t offset); } + size_t nbyte, off_t offset); } 181 STD { int|linux_sys||pwrite(int fd, char *buf, \ - size_t nbyte, linux_off_t offset); } + size_t nbyte, off_t offset); } ;182 chown on i386; lchown on m68k. 182 STD { int|linux_sys||lchown16(const char *path, \ linux_uid16_t uid, linux_gid16_t gid); } Index: src/sys/compat/linux/arch/mips/syscalls.master diff -u src/sys/compat/linux/arch/mips/syscalls.master:1.50 src/sys/compat/linux/arch/mips/syscalls.master:1.51 --- src/sys/compat/linux/arch/mips/syscalls.master:1.50 Tue Apr 8 16:48:01 2014 +++ src/sys/compat/linux/arch/mips/syscalls.master Sun May 4 10:08:53 2014 @@ -1,4 +1,4 @@ - $NetBSD: syscalls.master,v 1.50 2014/04/08 16:48:01 njoly Exp $ + $NetBSD: syscalls.master,v 1.51 2014/05/04 10:08:53 njoly Exp $ ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 @@ -351,9 +351,9 @@ 199 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ size_t sigsetsize); } 200 STD { int|linux_sys||pread(int fd, char *buf, \ - size_t nbyte, linux_off_t offset); } + size_t nbyte, off_t offset); } 201 STD { int|linux_sys||pwrite(int fd, char *buf, \ - size_t nbyte, linux_off_t offset); } + size_t nbyte, off_t offset); } 202 NOARGS { int|sys||__posix_chown(const char *path, \ int uid, int gid); } 203 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } Index: src/sys/compat/linux/arch/powerpc/syscalls.master diff -u src/sys/compat/linux/arch/powerpc/syscalls.master:1.59 src/sys/compat/linux/arch/powerpc/syscalls.master:1.60 --- src/sys/compat/linux/arch/powerpc/syscalls.master:1.59 Tue Apr 8 16:48:01 2014 +++ src/sys/compat/linux/arch/powerpc/syscalls.master Sun May 4 10:08:53 2014 @@ -1,4 +1,4 @@ - $NetBSD: syscalls.master,v 1.59 2014/04/08 16:48:01 njoly Exp $ + $NetBSD: syscalls.master,v 1.60 2014/05/04 10:08:53 njoly Exp $ ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 @@ -339,9 +339,9 @@ 178 STD { int|linux_sys||rt_sigsuspend(linux_sigset_t *unewset, \ size_t sigsetsize); } 179 STD { int|linux_sys||pread(int fd, char *buf, \ - size_t nbyte, linux_off_t offset); } + size_t nbyte, off_t offset); } 180 STD { int|linux_sys||pwrite(int fd, char *buf, \ - size_t nbyte, linux_off_t offset); } + size_t nbyte, off_t offset); } 181 NOARGS { int|sys||__posix_chown(const char *path, \ int uid, int gid); } 182 NOARGS { int|sys||__getcwd(char *bufp, size_t length); } Index: src/sys/compat/linux/common/linux_file.c diff -u src/sys/compat/linux/common/linux_file.c:1.108 src/sys/compat/linux/common/linux_file.c:1.109 --- src/sys/compat/linux/common/linux_file.c:1.108 Sun Dec 8 15:55:10 2013 +++ src/sys/compat/linux/common/linux_file.c Sun May 4 10:08:53 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: linux_file.c,v 1.108 2013/12/08 15:55:10 njoly Exp $ */ +/* $NetBSD: linux_file.c,v 1.109 2014/05/04 10:08:53 njoly Exp $ */ /*- * Copyright (c) 1995, 1998, 2008 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux_file.c,v 1.108 2013/12/08 15:55:10 njoly Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux_file.c,v 1.109 2014/05/04 10:08:53 njoly Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -739,13 +739,14 @@ linux_sys_pread(struct lwp *l, const str syscallarg(int) fd; syscallarg(void *) buf; syscallarg(size_t) nbyte; - syscallarg(linux_off_t) offset; + syscallarg(off_t) offset; } */ struct sys_pread_args pra; SCARG(&pra, fd) = SCARG(uap, fd); SCARG(&pra, buf) = SCARG(uap, buf); SCARG(&pra, nbyte) = SCARG(uap, nbyte); + SCARG(&pra, PAD) = 0; SCARG(&pra, offset) = SCARG(uap, offset); return sys_pread(l, &pra, retval); @@ -768,6 +769,7 @@ linux_sys_pwrite(struct lwp *l, const st SCARG(&pra, fd) = SCARG(uap, fd); SCARG(&pra, buf) = SCARG(uap, buf); SCARG(&pra, nbyte) = SCARG(uap, nbyte); + SCARG(&pra, PAD) = 0; SCARG(&pra, offset) = SCARG(uap, offset); return sys_pwrite(l, &pra, retval); Index: src/sys/compat/linux32/arch/amd64/syscalls.master diff -u src/sys/compat/linux32/arch/amd64/syscalls.master:1.65 src/sys/compat/linux32/arch/amd64/syscalls.master:1.66 --- src/sys/compat/linux32/arch/amd64/syscalls.master:1.65 Mon Nov 18 19:23:27 2013 +++ src/sys/compat/linux32/arch/amd64/syscalls.master Sun May 4 10:08:53 2014 @@ -1,4 +1,4 @@ - $NetBSD: syscalls.master,v 1.65 2013/11/18 19:23:27 christos Exp $ + $NetBSD: syscalls.master,v 1.66 2014/05/04 10:08:53 njoly Exp $ ; NetBSD i386 COMPAT_LINUX32 system call name/number "master" file. ; (See syscalls.conf to see what it is processed into.) @@ -328,10 +328,10 @@ netbsd32_size_t sigsetsize); } 180 STD { netbsd32_ssize_t|linux32_sys||pread(int fd, \ netbsd32_voidp buf, netbsd32_size_t nbyte, \ - linux32_off_t offset); } + netbsd32_off_t offset); } 181 STD { netbsd32_ssize_t|linux32_sys||pwrite(int fd, \ netbsd32_voidp buf, netbsd32_size_t nbyte, \ - linux32_off_t offset); } + netbsd32_off_t offset); } 182 STD { int|linux32_sys||chown16(netbsd32_charp path, \ linux32_uid16_t uid, linux32_gid16_t gid); } 183 NOARGS { int|netbsd32||__getcwd(netbsd32_charp bufp, \ Index: src/sys/compat/linux32/common/linux32_unistd.c diff -u src/sys/compat/linux32/common/linux32_unistd.c:1.36 src/sys/compat/linux32/common/linux32_unistd.c:1.37 --- src/sys/compat/linux32/common/linux32_unistd.c:1.36 Mon Nov 18 01:35:22 2013 +++ src/sys/compat/linux32/common/linux32_unistd.c Sun May 4 10:08:53 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: linux32_unistd.c,v 1.36 2013/11/18 01:35:22 chs Exp $ */ +/* $NetBSD: linux32_unistd.c,v 1.37 2014/05/04 10:08:53 njoly Exp $ */ /*- * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved. @@ -33,7 +33,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: linux32_unistd.c,v 1.36 2013/11/18 01:35:22 chs Exp $"); +__KERNEL_RCSID(0, "$NetBSD: linux32_unistd.c,v 1.37 2014/05/04 10:08:53 njoly Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -723,13 +723,14 @@ linux32_sys_pread(struct lwp *l, syscallarg(int) fd; syscallarg(netbsd32_voidp) buf; syscallarg(netbsd32_size_t) nbyte; - syscallarg(linux32_off_t) offset; + syscallarg(netbsd32_off_t) offset; } */ struct sys_pread_args pra; SCARG(&pra, fd) = SCARG(uap, fd); SCARG(&pra, buf) = SCARG_P32(uap, buf); SCARG(&pra, nbyte) = SCARG(uap, nbyte); + SCARG(&pra, PAD) = 0; SCARG(&pra, offset) = SCARG(uap, offset); return sys_pread(l, &pra, retval); @@ -746,13 +747,14 @@ linux32_sys_pwrite(struct lwp *l, syscallarg(int) fd; syscallarg(const netbsd32_voidp) buf; syscallarg(netbsd32_size_t) nbyte; - syscallarg(linux32_off_t) offset; + syscallarg(netbsd32_off_t) offset; } */ struct sys_pwrite_args pra; SCARG(&pra, fd) = SCARG(uap, fd); SCARG(&pra, buf) = SCARG_P32(uap, buf); SCARG(&pra, nbyte) = SCARG(uap, nbyte); + SCARG(&pra, PAD) = 0; SCARG(&pra, offset) = SCARG(uap, offset); return sys_pwrite(l, &pra, retval);