diff options
author | davidxu <davidxu@FreeBSD.org> | 2010-08-24 07:22:24 +0000 |
---|---|---|
committer | davidxu <davidxu@FreeBSD.org> | 2010-08-24 07:22:24 +0000 |
commit | 6616b254f2075a009cda27d1126639df51d92860 (patch) | |
tree | 8fc996224144de0a3eef647ba48bffd0526917cd /sys | |
parent | 177089b4f1088d7e3816a8eafe63fad1c6d14be9 (diff) | |
download | FreeBSD-src-6616b254f2075a009cda27d1126639df51d92860.zip FreeBSD-src-6616b254f2075a009cda27d1126639df51d92860.tar.gz |
- 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
Diffstat (limited to 'sys')
-rw-r--r-- | sys/kern/kern_thr.c | 4 | ||||
-rw-r--r-- | 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 d8f7a8e..17b6cd5 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 a7ca96e..a862057 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 |