Needed for newer glibc, okay?

Index: linux_signal.c
===================================================================
RCS file: /cvs/src/sys/compat/linux/linux_signal.c,v
retrieving revision 1.14
diff -u -p -r1.14 linux_signal.c
--- linux_signal.c      9 Dec 2009 16:29:56 -0000       1.14
+++ linux_signal.c      19 Jun 2012 08:32:24 -0000
@@ -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));
+}
Index: syscalls.master
===================================================================
RCS file: /cvs/src/sys/compat/linux/syscalls.master,v
retrieving revision 1.69
diff -u -p -r1.69 syscalls.master
--- syscalls.master     8 Jun 2012 14:28:23 -0000       1.69
+++ syscalls.master     19 Jun 2012 08:32:24 -0000
@@ -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

Reply via email to