diff options
author | deischen <deischen@FreeBSD.org> | 2004-02-22 17:57:10 +0000 |
---|---|---|
committer | deischen <deischen@FreeBSD.org> | 2004-02-22 17:57:10 +0000 |
commit | 6f8b1a92fb93583f2cf004b254ec2a947cb384c6 (patch) | |
tree | e95029578586626071438bcf18f43f50bf04737f | |
parent | 7d4838de1e98270717985faeb4575c75d07b9676 (diff) | |
download | FreeBSD-src-6f8b1a92fb93583f2cf004b254ec2a947cb384c6.zip FreeBSD-src-6f8b1a92fb93583f2cf004b254ec2a947cb384c6.tar.gz |
Teach kvm_getprocs() to recognize a sysctl flag for including threads.
-rw-r--r-- | lib/libkvm/kvm_proc.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/lib/libkvm/kvm_proc.c b/lib/libkvm/kvm_proc.c index 4d4fa19..a48dede 100644 --- a/lib/libkvm/kvm_proc.c +++ b/lib/libkvm/kvm_proc.c @@ -154,7 +154,7 @@ kvm_proclist(kd, what, arg, p, bp, maxcnt) kp->ki_uid = ucred.cr_uid; } - switch(what) { + switch(what & ~KERN_PROC_INC_THREAD) { case KERN_PROC_PID: if (proc.p_pid != (pid_t)arg) @@ -297,7 +297,7 @@ nopgrp: kp->ki_ssize = vmspace.vm_ssize; #endif - switch (what) { + switch (what & ~KERN_PROC_INC_THREAD) { case KERN_PROC_PGRP: if (kp->ki_pgid != (pid_t)arg) @@ -433,6 +433,7 @@ kvm_getprocs(kd, op, arg, cnt) { int mib[4], st, nprocs; size_t size; + int temp_op; if (kd->procbase != 0) { free((void *)kd->procbase); @@ -448,7 +449,9 @@ kvm_getprocs(kd, op, arg, cnt) mib[1] = KERN_PROC; mib[2] = op; mib[3] = arg; - st = sysctl(mib, op == KERN_PROC_ALL || op == KERN_PROC_PROC ? + temp_op = op & ~KERN_PROC_INC_THREAD; + st = sysctl(mib, + temp_op == KERN_PROC_ALL || temp_op == KERN_PROC_PROC ? 3 : 4, NULL, &size, NULL, 0); if (st == -1) { _kvm_syserr(kd, kd->program, "kvm_getprocs"); @@ -479,8 +482,8 @@ kvm_getprocs(kd, op, arg, cnt) _kvm_realloc(kd, kd->procbase, size); if (kd->procbase == 0) return (0); - st = sysctl(mib, op == KERN_PROC_ALL || - op == KERN_PROC_PROC ? 3 : 4, + st = sysctl(mib, temp_op == KERN_PROC_ALL || + temp_op == KERN_PROC_PROC ? 3 : 4, kd->procbase, &size, NULL, 0); } while (st == -1 && errno == ENOMEM); if (st == -1) { |