Module Name: src
Committed By: njoly
Date: Mon Jun 8 13:23:16 UTC 2009
Modified Files:
src/sys/compat/linux/common: linux_signal.c
Log Message:
Small rt_queueinfo(2) update, to require a linux_siginfo structure.
While here, cleanup ifdef out argument types.
To generate a diff of this commit:
cvs rdiff -u -r1.68 -r1.69 src/sys/compat/linux/common/linux_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/linux/common/linux_signal.c
diff -u src/sys/compat/linux/common/linux_signal.c:1.68 src/sys/compat/linux/common/linux_signal.c:1.69
--- src/sys/compat/linux/common/linux_signal.c:1.68 Fri May 29 14:19:13 2009
+++ src/sys/compat/linux/common/linux_signal.c Mon Jun 8 13:23:16 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_signal.c,v 1.68 2009/05/29 14:19:13 njoly Exp $ */
+/* $NetBSD: linux_signal.c,v 1.69 2009/06/08 13:23:16 njoly Exp $ */
/*-
* Copyright (c) 1995, 1998 The NetBSD Foundation, Inc.
@@ -48,7 +48,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_signal.c,v 1.68 2009/05/29 14:19:13 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_signal.c,v 1.69 2009/06/08 13:23:16 njoly Exp $");
#define COMPAT_LINUX 1
@@ -498,14 +498,19 @@
int
linux_sys_rt_queueinfo(struct lwp *l, const struct linux_sys_rt_queueinfo_args *uap, register_t *retval)
{
- /* XXX XAX This isn't this really int, int, siginfo_t *, is it? */
-#if 0
- struct linux_sys_rt_queueinfo_args /* {
+ /*
syscallarg(int) pid;
syscallarg(int) signum;
- syscallarg(siginfo_t *) uinfo;
- } */ *uap = v;
-#endif
+ syscallarg(linix_siginfo_t *) uinfo;
+ */
+ int error;
+ linux_siginfo_t info;
+
+ error = copyin(SCARG(uap, uinfo), &info, sizeof(info));
+ if (error)
+ return error;
+ if (info.lsi_code >= 0)
+ return EPERM;
/* XXX To really implement this we need to */
/* XXX keep a list of queued signals somewhere. */