From baf28b69f43f5e51a5182149c160618fc38669fb Mon Sep 17 00:00:00 2001 From: David Xu Date: Tue, 24 Aug 2010 07:22:24 +0000 Subject: [PATCH] - According to specification, SI_USER code should only be generated by standard kill(). On other systems, SI_LWP is generated by lwp_kill(). This will allow conforming applications to differentiate between signals generated by standard events and those generated by other implementation events in a manner compatible with existing practice. - Bump __FreeBSD_version --- sys/kern/kern_thr.c | 4 ++-- sys/sys/signal.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/kern/kern_thr.c b/sys/kern/kern_thr.c index d8f7a8eb0f8d..17b6cd5d3d1a 100644 --- a/sys/kern/kern_thr.c +++ b/sys/kern/kern_thr.c @@ -312,7 +312,7 @@ thr_kill(struct thread *td, struct thr_kill_args *uap) error = 0; ksiginfo_init(&ksi); ksi.ksi_signo = uap->sig; - ksi.ksi_code = SI_USER; + ksi.ksi_code = SI_LWP; ksi.ksi_pid = p->p_pid; ksi.ksi_uid = td->td_ucred->cr_ruid; PROC_LOCK(p); @@ -371,7 +371,7 @@ thr_kill2(struct thread *td, struct thr_kill2_args *uap) if (error == 0) { ksiginfo_init(&ksi); ksi.ksi_signo = uap->sig; - ksi.ksi_code = SI_USER; + ksi.ksi_code = SI_LWP; ksi.ksi_pid = td->td_proc->p_pid; ksi.ksi_uid = td->td_ucred->cr_ruid; if (uap->id == -1) { diff --git a/sys/sys/signal.h b/sys/sys/signal.h index a7ca96e37d29..a86205755722 100644 --- a/sys/sys/signal.h +++ b/sys/sys/signal.h @@ -338,6 +338,7 @@ struct sigaction { #define SI_MESGQ 0x10005 /* Signal generated by arrival of a */ /* message on an empty message queue. */ #define SI_KERNEL 0x10006 +#define SI_LWP 0x10007 /* Signal sent by thr_kill */ #endif #if __BSD_VISIBLE #define SI_UNDEFINED 0