aboutsummaryrefslogtreecommitdiff
path: root/lib/libkvm
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2014-10-18 19:36:11 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2014-10-18 19:36:11 +0000
commite77f9fed15f3bd8e320e1d4544b7600bf7413832 (patch)
tree001cb1730d8c530fa2dede702f8a9a45fb21aef9 /lib/libkvm
parent7c26b0a7c8954a82b1250b6dbb2e793bf3da8e91 (diff)
downloadsrc-e77f9fed15f3bd8e320e1d4544b7600bf7413832.tar.gz
src-e77f9fed15f3bd8e320e1d4544b7600bf7413832.zip
Update the ULE scheduler + thread and kinfo structs to use int for cpuid
rather than u_char. To try and play nice with the ABI, the u_char CPU ID values are clamped at 254. The new fields now contain the full CPU ID, or -1 for no cpu. Differential Revision: D955 Reviewed by: jhb, kib Sponsored by: Norse Corp, Inc.
Notes
Notes: svn path=/head/; revision=273266
Diffstat (limited to 'lib/libkvm')
-rw-r--r--lib/libkvm/kvm_proc.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/libkvm/kvm_proc.c b/lib/libkvm/kvm_proc.c
index 31258d7a09be..aed61a854919 100644
--- a/lib/libkvm/kvm_proc.c
+++ b/lib/libkvm/kvm_proc.c
@@ -431,6 +431,24 @@ nopgrp:
strlcpy(kp->ki_tdname, mtd.td_name, sizeof(kp->ki_tdname));
kp->ki_pctcpu = 0;
kp->ki_rqindex = 0;
+
+ /*
+ * Note: legacy fields; wraps at NO_CPU_OLD or the
+ * old max CPU value as appropriate
+ */
+ if (mtd.td_lastcpu == NOCPU)
+ kp->ki_lastcpu_old = NOCPU_OLD;
+ else if (mtd.td_lastcpu > MAXCPU_OLD)
+ kp->ki_lastcpu_old = MAXCPU_OLD;
+ else
+ kp->ki_lastcpu_old = mtd.td_lastcpu;
+
+ if (mtd.td_oncpu == NOCPU)
+ kp->ki_oncpu_old = NOCPU_OLD;
+ else if (mtd.td_oncpu > MAXCPU_OLD)
+ kp->ki_oncpu_old = MAXCPU_OLD;
+ else
+ kp->ki_oncpu_old = mtd.td_oncpu;
} else {
kp->ki_stat = SZOMB;
}