summaryrefslogtreecommitdiffstats
path: root/sys/kern/sys_process.c
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2004-08-08 22:26:11 +0000
committerdavidxu <davidxu@FreeBSD.org>2004-08-08 22:26:11 +0000
commit6412ad5b2e1e497180ded0b4e5d9c99f9416d91a (patch)
tree9e1981e868076e52c9eefabd3262c4b3711b352d /sys/kern/sys_process.c
parentb337473ecd472257d9df25550d249e600f5b98c4 (diff)
downloadFreeBSD-src-6412ad5b2e1e497180ded0b4e5d9c99f9416d91a.zip
FreeBSD-src-6412ad5b2e1e497180ded0b4e5d9c99f9416d91a.tar.gz
Add pl_flags to ptrace_lwpinfo, two flags PL_FLAG_SA and PL_FLAG_BOUND
indicate that a thread is in UTS critical region. Reviewed by: deischen Approved by: marcel
Diffstat (limited to 'sys/kern/sys_process.c')
-rw-r--r--sys/kern/sys_process.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c
index 9dad83a..7063ed3 100644
--- a/sys/kern/sys_process.c
+++ b/sys/kern/sys_process.c
@@ -807,6 +807,13 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data)
else
pl->pl_event = 0;
}
+ if (td2->td_pflags & TDP_SA) {
+ pl->pl_flags = PL_FLAG_SA;
+ if (td2->td_upcall && !TD_CAN_UNBIND(td2))
+ pl->pl_flags |= PL_FLAG_BOUND;
+ } else {
+ pl->pl_flags = 0;
+ }
_PRELE(p);
PROC_UNLOCK(p);
return (0);
OpenPOWER on IntegriCloud