From 8f4d76850854f003f42b98f876ab47a93bf932bc Mon Sep 17 00:00:00 2001 From: Paul Irofti Date: Tue, 19 Jun 2012 11:35:30 +0000 Subject: Implement linux_sys_tgkill. Nobody calls linux_sys_tkill anymore so code for that is not needed. If this will become an issue in the future a simple wrapper will fix that. Okay jasper@. --- sys/compat/linux/linux_signal.c | 27 ++++++++++++++++++++++++++- sys/compat/linux/syscalls.master | 4 ++-- 2 files changed, 28 insertions(+), 3 deletions(-) (limited to 'sys/compat') diff --git a/sys/compat/linux/linux_signal.c b/sys/compat/linux/linux_signal.c index a3de140578c..67af421caef 100644 --- a/sys/compat/linux/linux_signal.c +++ b/sys/compat/linux/linux_signal.c @@ -1,4 +1,4 @@ -/* $OpenBSD: linux_signal.c,v 1.14 2009/12/09 16:29:56 jsg Exp $ */ +/* $OpenBSD: linux_signal.c,v 1.15 2012/06/19 11:35:29 pirofti Exp $ */ /* $NetBSD: linux_signal.c,v 1.10 1996/04/04 23:51:36 christos Exp $ */ /* @@ -919,3 +919,28 @@ linux_sys_kill(p, v, retval) SCARG(&ka, signum) = linux_to_bsd_sig[SCARG(uap, signum)]; return (sys_kill(p, &ka, retval)); } + +int +linux_sys_tgkill(struct proc *p, void *v, register_t *retval) +{ + struct linux_sys_tgkill_args /* { + syscallarg(int) tgid; + syscallarg(int) tid; + syscallarg(int) sig; + }; */ *uap = v; + + int error; + int sig; + struct sys_kill_args ka; + + if (SCARG(uap, tgid) < 0 || SCARG(uap, tid) < 0) + return (EINVAL); + + if ((error = linux_to_bsd_signal(SCARG(uap, sig), &sig))) + return (error); + + /* XXX: Ignoring tgid, behaving like the obsolete linux_sys_tkill */ + SCARG(&ka, pid) = SCARG(uap, tid); + SCARG(&ka, signum) = sig; + return (sys_kill(p, &ka, retval)); +} diff --git a/sys/compat/linux/syscalls.master b/sys/compat/linux/syscalls.master index 9e190a7d365..b80bd9c9cf5 100644 --- a/sys/compat/linux/syscalls.master +++ b/sys/compat/linux/syscalls.master @@ -1,4 +1,4 @@ - $OpenBSD: syscalls.master,v 1.70 2012/06/19 11:31:39 pirofti Exp $ + $OpenBSD: syscalls.master,v 1.71 2012/06/19 11:35:29 pirofti Exp $ ; $NetBSD: syscalls.master,v 1.15 1995/12/18 14:35:10 fvdl Exp $ ; @(#)syscalls.master 8.1 (Berkeley) 7/19/93 @@ -420,7 +420,7 @@ struct linux_statfs64 *sp); } 269 STD { int linux_sys_fstatfs64(int fd, \ struct linux_statfs64 *sp); } -270 UNIMPL linux_sys_tgkill +270 STD { int linux_sys_tgkill(int tgid, int tid, int sig); } 271 UNIMPL linux_sys_utimes 272 UNIMPL linux_sys_fadvise64_64 273 UNIMPL linux_sys_vserver -- cgit v1.2.3