summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_event.c5
-rw-r--r--sys/kern/kern_exit.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c
index c22b248..46c8f26 100644
--- a/sys/kern/kern_event.c
+++ b/sys/kern/kern_event.c
@@ -264,6 +264,11 @@ filt_proc(struct knote *kn, long hint)
if (event == NOTE_EXIT) {
kn->kn_status |= KN_DETACHED;
kn->kn_flags |= (EV_EOF | EV_ONESHOT);
+ /*
+ * Return the 16 bits of the wait(2) value.
+ */
+ if (kn->kn_sfflags & NOTE_EXIT)
+ kn->kn_data = (intptr_t)hint & 0xffff;
return (1);
}
diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c
index 9115f97..0b16060 100644
--- a/sys/kern/kern_exit.c
+++ b/sys/kern/kern_exit.c
@@ -307,9 +307,10 @@ exit1(p, rv)
switchticks = ticks;
/*
- * notify interested parties of our demise.
+ * Notify interested parties of our demise. Pass the lower (only)
+ * 16 bits of our exit code along with it.
*/
- KNOTE(&p->p_klist, NOTE_EXIT);
+ KNOTE(&p->p_klist, NOTE_EXIT | (rv & 0xffff));
/*
* Notify parent that we're gone. If parent has the PS_NOCLDWAIT
OpenPOWER on IntegriCloud