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);