diff options
author | Adrian Chadd <adrian@FreeBSD.org> | 2014-10-18 19:36:11 +0000 |
---|---|---|
committer | Adrian Chadd <adrian@FreeBSD.org> | 2014-10-18 19:36:11 +0000 |
commit | e77f9fed15f3bd8e320e1d4544b7600bf7413832 (patch) | |
tree | 001cb1730d8c530fa2dede702f8a9a45fb21aef9 /lib/libkvm | |
parent | 7c26b0a7c8954a82b1250b6dbb2e793bf3da8e91 (diff) | |
download | src-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.c | 18 |
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; } |