Module Name:    src
Committed By:   riz
Date:           Sat May 19 15:19:43 UTC 2012

Modified Files:
        src/sys/compat/linux32/arch/amd64 [netbsd-6]: linux32_syscall.h
            linux32_syscallargs.h linux32_syscalls.c linux32_sysent.c
            syscalls.master
        src/sys/compat/linux32/common [netbsd-6]: linux32_signal.c

Log Message:
Pull up following revision(s) (requested by christos in ticket #263):
        sys/compat/linux32/arch/amd64/linux32_syscallargs.h: revision 1.66
        sys/compat/linux32/arch/amd64/syscalls.master: revision 1.61
        sys/compat/linux32/common/linux32_signal.c: revision 1.16
        sys/compat/linux32/arch/amd64/linux32_syscall.h: revision 1.66
        sys/compat/linux32/arch/amd64/linux32_sysent.c: revision 1.66
        sys/compat/linux32/arch/amd64/linux32_syscalls.c: revision 1.66
regen
Fix rt_sigtimedwait():
It is wishful thinking that:
    1. declaring a 32 bit syscall with 64 bit pointers
    2. passing a struct with 32 bit pointers to a 64 bit function
is going to work.


To generate a diff of this commit:
cvs rdiff -u -r1.65 -r1.65.6.1 \
    src/sys/compat/linux32/arch/amd64/linux32_syscall.h \
    src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h \
    src/sys/compat/linux32/arch/amd64/linux32_syscalls.c \
    src/sys/compat/linux32/arch/amd64/linux32_sysent.c
cvs rdiff -u -r1.60 -r1.60.6.1 \
    src/sys/compat/linux32/arch/amd64/syscalls.master
cvs rdiff -u -r1.15 -r1.15.6.1 src/sys/compat/linux32/common/linux32_signal.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/linux32/arch/amd64/linux32_syscall.h
diff -u src/sys/compat/linux32/arch/amd64/linux32_syscall.h:1.65 src/sys/compat/linux32/arch/amd64/linux32_syscall.h:1.65.6.1
--- src/sys/compat/linux32/arch/amd64/linux32_syscall.h:1.65	Fri Nov 18 04:20:16 2011
+++ src/sys/compat/linux32/arch/amd64/linux32_syscall.h	Sat May 19 15:19:42 2012
@@ -1,10 +1,10 @@
-/* $NetBSD: linux32_syscall.h,v 1.65 2011/11/18 04:20:16 christos Exp $ */
+/* $NetBSD: linux32_syscall.h,v 1.65.6.1 2012/05/19 15:19:42 riz Exp $ */
 
 /*
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.60 2011/11/18 04:08:56 christos Exp
+ * created from	NetBSD: syscalls.master,v 1.61 2012/05/10 19:40:46 christos Exp
  */
 
 #ifndef _LINUX32_SYS_SYSCALL_H_
@@ -445,7 +445,7 @@
 /* syscall: "rt_sigpending" ret: "int" args: "linux32_sigsetp_t" "netbsd32_size_t" */
 #define	LINUX32_SYS_rt_sigpending	176
 
-/* syscall: "rt_sigtimedwait" ret: "int" args: "const linux32_sigset_t *" "linux32_siginfo_t *" "const struct linux_timespec32 *" */
+/* syscall: "rt_sigtimedwait" ret: "int" args: "const linux32_sigsetp_t" "linux32_siginfop_t" "const linux32_timespecp_t" */
 #define	LINUX32_SYS_rt_sigtimedwait	177
 
 /* syscall: "rt_queueinfo" ret: "int" args: "int" "int" "linux32_siginfop_t" */
Index: src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h
diff -u src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h:1.65 src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h:1.65.6.1
--- src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h:1.65	Fri Nov 18 04:20:16 2011
+++ src/sys/compat/linux32/arch/amd64/linux32_syscallargs.h	Sat May 19 15:19:42 2012
@@ -1,10 +1,10 @@
-/* $NetBSD: linux32_syscallargs.h,v 1.65 2011/11/18 04:20:16 christos Exp $ */
+/* $NetBSD: linux32_syscallargs.h,v 1.65.6.1 2012/05/19 15:19:42 riz Exp $ */
 
 /*
  * System call argument lists.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.60 2011/11/18 04:08:56 christos Exp
+ * created from	NetBSD: syscalls.master,v 1.61 2012/05/10 19:40:46 christos Exp
  */
 
 #ifndef _LINUX32_SYS_SYSCALLARGS_H_
@@ -605,9 +605,9 @@ struct linux32_sys_rt_sigpending_args {
 check_syscall_args(linux32_sys_rt_sigpending)
 
 struct linux32_sys_rt_sigtimedwait_args {
-	syscallarg(const linux32_sigset_t *) set;
-	syscallarg(linux32_siginfo_t *) info;
-	syscallarg(const struct linux_timespec32 *) timeout;
+	syscallarg(const linux32_sigsetp_t) set;
+	syscallarg(linux32_siginfop_t) info;
+	syscallarg(const linux32_timespecp_t) timeout;
 };
 check_syscall_args(linux32_sys_rt_sigtimedwait)
 
Index: src/sys/compat/linux32/arch/amd64/linux32_syscalls.c
diff -u src/sys/compat/linux32/arch/amd64/linux32_syscalls.c:1.65 src/sys/compat/linux32/arch/amd64/linux32_syscalls.c:1.65.6.1
--- src/sys/compat/linux32/arch/amd64/linux32_syscalls.c:1.65	Fri Nov 18 04:20:16 2011
+++ src/sys/compat/linux32/arch/amd64/linux32_syscalls.c	Sat May 19 15:19:43 2012
@@ -1,14 +1,14 @@
-/* $NetBSD: linux32_syscalls.c,v 1.65 2011/11/18 04:20:16 christos Exp $ */
+/* $NetBSD: linux32_syscalls.c,v 1.65.6.1 2012/05/19 15:19:43 riz Exp $ */
 
 /*
  * System call names.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.60 2011/11/18 04:08:56 christos Exp
+ * created from	NetBSD: syscalls.master,v 1.61 2012/05/10 19:40:46 christos Exp
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux32_syscalls.c,v 1.65 2011/11/18 04:20:16 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_syscalls.c,v 1.65.6.1 2012/05/19 15:19:43 riz Exp $");
 
 #if defined(_KERNEL_OPT)
 #include <sys/param.h>
Index: src/sys/compat/linux32/arch/amd64/linux32_sysent.c
diff -u src/sys/compat/linux32/arch/amd64/linux32_sysent.c:1.65 src/sys/compat/linux32/arch/amd64/linux32_sysent.c:1.65.6.1
--- src/sys/compat/linux32/arch/amd64/linux32_sysent.c:1.65	Fri Nov 18 04:20:16 2011
+++ src/sys/compat/linux32/arch/amd64/linux32_sysent.c	Sat May 19 15:19:43 2012
@@ -1,14 +1,14 @@
-/* $NetBSD: linux32_sysent.c,v 1.65 2011/11/18 04:20:16 christos Exp $ */
+/* $NetBSD: linux32_sysent.c,v 1.65.6.1 2012/05/19 15:19:43 riz Exp $ */
 
 /*
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * created from	NetBSD: syscalls.master,v 1.60 2011/11/18 04:08:56 christos Exp
+ * created from	NetBSD: syscalls.master,v 1.61 2012/05/10 19:40:46 christos Exp
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux32_sysent.c,v 1.65 2011/11/18 04:20:16 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_sysent.c,v 1.65.6.1 2012/05/19 15:19:43 riz Exp $");
 
 #include <sys/param.h>
 #include <sys/poll.h>

Index: src/sys/compat/linux32/arch/amd64/syscalls.master
diff -u src/sys/compat/linux32/arch/amd64/syscalls.master:1.60 src/sys/compat/linux32/arch/amd64/syscalls.master:1.60.6.1
--- src/sys/compat/linux32/arch/amd64/syscalls.master:1.60	Fri Nov 18 04:08:56 2011
+++ src/sys/compat/linux32/arch/amd64/syscalls.master	Sat May 19 15:19:42 2012
@@ -1,4 +1,4 @@
-	$NetBSD: syscalls.master,v 1.60 2011/11/18 04:08:56 christos Exp $
+	$NetBSD: syscalls.master,v 1.60.6.1 2012/05/19 15:19:42 riz Exp $
 
 ; NetBSD i386 COMPAT_LINUX32 system call name/number "master" file.
 ; (See syscalls.conf to see what it is processed into.)
@@ -318,9 +318,9 @@
 176	STD	{ int|linux32_sys||rt_sigpending(linux32_sigsetp_t set, \
 		    netbsd32_size_t sigsetsize); }
 177	STD	{ int|linux32_sys||rt_sigtimedwait( \
-		    const linux32_sigset_t *set, \
-		    linux32_siginfo_t *info, \
-		    const struct linux_timespec32 *timeout); }
+		    const linux32_sigsetp_t set, \
+		    linux32_siginfop_t info, \
+		    const linux32_timespecp_t timeout); }
 178	STD	{ int|linux32_sys||rt_queueinfo(int pid, int sig, \
 		    linux32_siginfop_t uinfo); }
 179	STD	{ int|linux32_sys||rt_sigsuspend(linux32_sigsetp_t unewset, \

Index: src/sys/compat/linux32/common/linux32_signal.c
diff -u src/sys/compat/linux32/common/linux32_signal.c:1.15 src/sys/compat/linux32/common/linux32_signal.c:1.15.6.1
--- src/sys/compat/linux32/common/linux32_signal.c:1.15	Fri Nov 18 15:46:29 2011
+++ src/sys/compat/linux32/common/linux32_signal.c	Sat May 19 15:19:43 2012
@@ -1,4 +1,4 @@
-/*	$NetBSD: linux32_signal.c,v 1.15 2011/11/18 15:46:29 christos Exp $ */
+/*	$NetBSD: linux32_signal.c,v 1.15.6.1 2012/05/19 15:19:43 riz Exp $ */
 
 /*-
  * Copyright (c) 2006 Emmanuel Dreyfus, all rights reserved.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux32_signal.c,v 1.15 2011/11/18 15:46:29 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_signal.c,v 1.15.6.1 2012/05/19 15:19:43 riz Exp $");
 
 #include <sys/param.h>
 #include <sys/ucred.h>
@@ -484,8 +484,13 @@ linux32_sys_rt_sigtimedwait(struct lwp *
 		syscallarg(linux32_siginfo_t *) info);
 		syscallarg(const struct linux32_timespec *) timeout;
 	} */
+	struct sys_____sigtimedwait50_args ap;
 
-	return sigtimedwait1(l, (const struct sys_____sigtimedwait50_args *)uap,
+	SCARG(&ap, set) = SCARG_P32(uap, set);
+	SCARG(&ap, info) = SCARG_P32(uap, info);
+	SCARG(&ap, timeout) = SCARG_P32(uap, timeout);
+
+	return sigtimedwait1(l, &ap,
 	    retval, fetchss, storeinfo, fetchts, fakestorets);
 }
 

Reply via email to