summaryrefslogtreecommitdiff
path: root/sys/compat/linux32/common
diff options
context:
space:
mode:
authornjoly <njoly@NetBSD.org>2009-06-08 13:34:23 +0000
committernjoly <njoly@NetBSD.org>2009-06-08 13:34:23 +0000
commit9c8407cd8f6f74cd8b2e8312d2cbbf8b0e38cbec (patch)
treef14b069551dd5917af0eec4839fb0fa212d9b036 /sys/compat/linux32/common
parentd5203d274e1085b808f0de0ca63e23b53b6e3df0 (diff)
Add rt_queueinfo(2) support.
Diffstat (limited to 'sys/compat/linux32/common')
-rw-r--r--sys/compat/linux32/common/linux32_signal.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/sys/compat/linux32/common/linux32_signal.c b/sys/compat/linux32/common/linux32_signal.c
index efc141cef75..24569d2665f 100644
--- a/sys/compat/linux32/common/linux32_signal.c
+++ b/sys/compat/linux32/common/linux32_signal.c
@@ -1,4 +1,4 @@
-/* $NetBSD: linux32_signal.c,v 1.12 2009/06/02 16:54:39 njoly Exp $ */
+/* $NetBSD: linux32_signal.c,v 1.13 2009/06/08 13:34:23 njoly 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.12 2009/06/02 16:54:39 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux32_signal.c,v 1.13 2009/06/08 13:34:23 njoly Exp $");
#include <sys/param.h>
#include <sys/ucred.h>
@@ -448,3 +448,25 @@ linux32_sys_sigsetmask(struct lwp *l, const struct linux32_sys_sigsetmask_args *
*retval = olss;
return 0;
}
+
+int
+linux32_sys_rt_queueinfo(struct lwp *l, const struct linux32_sys_rt_queueinfo_args *uap, register_t *retval)
+{
+ /*
+ syscallarg(int) pid;
+ syscallarg(int) sig;
+ syscallarg(linux32_siginfop_t) uinfo;
+ */
+ int error;
+ linux32_siginfo_t info;
+
+ error = copyin(SCARG_P32(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. */
+ return linux32_sys_kill(l, (const void *)uap, retval);
+}