Module Name: src
Committed By: christos
Date: Fri Nov 18 03:34:14 UTC 2011
Modified Files:
src/sys/compat/common: kern_time_50.c
src/sys/compat/netbsd32: netbsd32_compat_50.c netbsd32_signal.c
src/sys/kern: sys_sig.c
src/sys/sys: signalvar.h
Log Message:
add a copyin function for sigset so that we can use sigtimedwait1 from
emulations.
To generate a diff of this commit:
cvs rdiff -u -r1.19 -r1.20 src/sys/compat/common/kern_time_50.c
cvs rdiff -u -r1.19 -r1.20 src/sys/compat/netbsd32/netbsd32_compat_50.c
cvs rdiff -u -r1.35 -r1.36 src/sys/compat/netbsd32/netbsd32_signal.c
cvs rdiff -u -r1.35 -r1.36 src/sys/kern/sys_sig.c
cvs rdiff -u -r1.81 -r1.82 src/sys/sys/signalvar.h
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/common/kern_time_50.c
diff -u src/sys/compat/common/kern_time_50.c:1.19 src/sys/compat/common/kern_time_50.c:1.20
--- src/sys/compat/common/kern_time_50.c:1.19 Thu Mar 3 20:36:56 2011
+++ src/sys/compat/common/kern_time_50.c Thu Nov 17 22:34:13 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_time_50.c,v 1.19 2011/03/04 01:36:56 christos Exp $ */
+/* $NetBSD: kern_time_50.c,v 1.20 2011/11/18 03:34:13 christos Exp $ */
/*-
* Copyright (c) 2008, 2009 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_time_50.c,v 1.19 2011/03/04 01:36:56 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_time_50.c,v 1.20 2011/11/18 03:34:13 christos Exp $");
#ifdef _KERNEL_OPT
#include "opt_aio.h"
@@ -480,8 +480,8 @@ compat_50_sys___sigtimedwait(struct lwp
int res;
res = sigtimedwait1(l,
- (const struct sys_____sigtimedwait50_args *)uap, retval, copyout,
- tscopyin, tscopyout);
+ (const struct sys_____sigtimedwait50_args *)uap, retval, copyin,
+ copyout, tscopyin, tscopyout);
if (!res)
*retval = 0; /* XXX NetBSD<=5 was not POSIX compliant */
return res;
Index: src/sys/compat/netbsd32/netbsd32_compat_50.c
diff -u src/sys/compat/netbsd32/netbsd32_compat_50.c:1.19 src/sys/compat/netbsd32/netbsd32_compat_50.c:1.20
--- src/sys/compat/netbsd32/netbsd32_compat_50.c:1.19 Mon May 23 17:34:47 2011
+++ src/sys/compat/netbsd32/netbsd32_compat_50.c Thu Nov 17 22:34:13 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_compat_50.c,v 1.19 2011/05/23 21:34:47 joerg Exp $ */
+/* $NetBSD: netbsd32_compat_50.c,v 1.20 2011/11/18 03:34:13 christos Exp $ */
/*-
* Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.19 2011/05/23 21:34:47 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_compat_50.c,v 1.20 2011/11/18 03:34:13 christos Exp $");
#if defined(_KERNEL_OPT)
#include "opt_sysv.h"
@@ -501,6 +501,7 @@ compat_50_netbsd32___sigtimedwait(struct
NETBSD32TOP_UAP(timeout, struct timespec);
res = sigtimedwait1(l, &ua, retval,
+ copyin,
compat_50_netbsd32_sigtimedwait_put_info,
compat_50_netbsd32_sigtimedwait_fetch_timeout,
compat_50_netbsd32_sigtimedwait_put_timeout);
Index: src/sys/compat/netbsd32/netbsd32_signal.c
diff -u src/sys/compat/netbsd32/netbsd32_signal.c:1.35 src/sys/compat/netbsd32/netbsd32_signal.c:1.36
--- src/sys/compat/netbsd32/netbsd32_signal.c:1.35 Thu Feb 3 16:45:31 2011
+++ src/sys/compat/netbsd32/netbsd32_signal.c Thu Nov 17 22:34:13 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: netbsd32_signal.c,v 1.35 2011/02/03 21:45:31 joerg Exp $ */
+/* $NetBSD: netbsd32_signal.c,v 1.36 2011/11/18 03:34:13 christos Exp $ */
/*
* Copyright (c) 1998, 2001 Matthew R. Green
@@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: netbsd32_signal.c,v 1.35 2011/02/03 21:45:31 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: netbsd32_signal.c,v 1.36 2011/11/18 03:34:13 christos Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -483,6 +483,7 @@ netbsd32_____sigtimedwait50(struct lwp *
NETBSD32TOP_UAP(timeout, struct timespec);
return sigtimedwait1(l, &ua, retval,
+ copyin,
netbsd32_sigtimedwait_put_info,
netbsd32_sigtimedwait_fetch_timeout,
netbsd32_sigtimedwait_put_timeout);
Index: src/sys/kern/sys_sig.c
diff -u src/sys/kern/sys_sig.c:1.35 src/sys/kern/sys_sig.c:1.36
--- src/sys/kern/sys_sig.c:1.35 Sun May 29 18:14:53 2011
+++ src/sys/kern/sys_sig.c Thu Nov 17 22:34:13 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: sys_sig.c,v 1.35 2011/05/29 22:14:53 christos Exp $ */
+/* $NetBSD: sys_sig.c,v 1.36 2011/11/18 03:34:13 christos Exp $ */
/*-
* Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sys_sig.c,v 1.35 2011/05/29 22:14:53 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sys_sig.c,v 1.36 2011/11/18 03:34:13 christos Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -365,7 +365,7 @@ sys_____sigtimedwait50(struct lwp *l,
const struct sys_____sigtimedwait50_args *uap, register_t *retval)
{
- return sigtimedwait1(l, uap, retval, copyout, copyin, copyout);
+ return sigtimedwait1(l, uap, retval, copyin, copyout, copyin, copyout);
}
int
@@ -697,7 +697,8 @@ sigaltstack1(struct lwp *l, const struct
int
sigtimedwait1(struct lwp *l, const struct sys_____sigtimedwait50_args *uap,
- register_t *retval, copyout_t storeinf, copyin_t fetchts, copyout_t storets)
+ register_t *retval, copyin_t fetchss, copyout_t storeinf, copyin_t fetchts,
+ copyout_t storets)
{
/* {
syscallarg(const sigset_t *) set;
@@ -734,7 +735,7 @@ sigtimedwait1(struct lwp *l, const struc
timo = 0;
}
- error = copyin(SCARG(uap, set), &l->l_sigwaitset,
+ error = (*fetchss)(SCARG(uap, set), &l->l_sigwaitset,
sizeof(l->l_sigwaitset));
if (error)
return error;
Index: src/sys/sys/signalvar.h
diff -u src/sys/sys/signalvar.h:1.81 src/sys/sys/signalvar.h:1.82
--- src/sys/sys/signalvar.h:1.81 Sat May 28 11:33:41 2011
+++ src/sys/sys/signalvar.h Thu Nov 17 22:34:13 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: signalvar.h,v 1.81 2011/05/28 15:33:41 christos Exp $ */
+/* $NetBSD: signalvar.h,v 1.82 2011/11/18 03:34:13 christos Exp $ */
/*
* Copyright (c) 1991, 1993
@@ -180,7 +180,7 @@ void ksiginfo_queue_drain0(ksiginfoq_t *
struct sys_____sigtimedwait50_args;
int sigtimedwait1(struct lwp *, const struct sys_____sigtimedwait50_args *,
- register_t *, copyout_t, copyin_t, copyout_t);
+ register_t *, copyin_t, copyout_t, copyin_t, copyout_t);
void signotify(struct lwp *);
int sigispending(struct lwp *, int);