cvs commit: src/bin/ps extern.h keyword.c print.c ps.c ps.h src/contrib/ipfilter/ipsend sock.c src/lib/libkcore kcore_file.c src/lib/libkvm Makefile kvm.c kvm.h kvm_getprocs.3 kvm_private.h kvm_proc.c src/sys/conf files src/sys/kern imgact_aout.c ...
Simon Schubert
corecode at crater.dragonflybsd.org
Thu Feb 1 02:37:39 PST 2007
corecode 2007/02/01 02:33:26 PST
DragonFly src repository
Modified files:
bin/ps extern.h keyword.c print.c ps.c ps.h
contrib/ipfilter/ipsend sock.c
lib/libkcore kcore_file.c
lib/libkvm Makefile kvm.c kvm.h kvm_getprocs.3
kvm_private.h kvm_proc.c
sys/conf files
sys/kern imgact_aout.c kern_exit.c kern_proc.c
sys/sys jail.h kinfo.h proc.h sysctl.h user.h
usr.bin/fstat fstat.c
usr.bin/gcore gcore.c
usr.bin/killall killall.c
usr.bin/pkill pkill.c
usr.bin/sockstat sockstat.c
usr.bin/systat pigs.c
usr.bin/top machine.c
usr.bin/w extern.h proc_compare.c w.c
lib/libc/gen sysctl.3
Added files:
sys/kern kern_kinfo.c
Log:
Change kinfo_proc interface between kernel and userland.
Before, we were embedding a struct proc (among others) into struct
kinfo_proc. Every time we change implementation details in the kernel,
userland has to be adapted (recompiled). In preparation for the coming
LWP changes this interface has been reworked. Now kinfo_proc is a
structure which does not depend on other structures on the kernel which
are subject to change. Instead, the routines fill_kinfo_proc and
fill_kinfo_lwp copy all values which are of interest between the kernel
structure and the stable kinfo_proc structure.
Furthermore, this change adds infrastructure to export LWP-specific data.
If userland requests LWP data, it sets the flag KERN_PROC_FLAG_LWP in the
sysctl oid. This leads to multiple kinfo_procs being exported. If not
set, the first LWP will used. This is like FreeBSD do it, and it seems
easy and simple. Note that userland was not yet adjusted to actually
request LWPs and aggregate this information if necessary. Besides, the
kernel does not yet have more than one LWP per process anyways.
This introduces a new file, kern/kern_kinfo.c, which is shared between
kernel and libkvm. This was done to avoid and remove code duplication.
Now kvm_getprocs constructs a complete struct proc, including pointers,
and then calls fill_kinfo_proc to do its job.
In-collaboration-with: Thomas E. Spanjaard <tgen at netphreax.net>
Revision Changes Path
1.13 +2 -2 src/bin/ps/extern.h
1.25 +37 -34 src/bin/ps/keyword.c
1.26 +66 -87 src/bin/ps/print.c
1.22 +12 -30 src/bin/ps/ps.c
1.9 +3 -12 src/bin/ps/ps.h
1.4 +3 -12 src/contrib/ipfilter/ipsend/sock.c
1.4 +13 -8 src/lib/libkcore/kcore_file.c
1.4 +6 -2 src/lib/libkvm/Makefile
1.9 +4 -3 src/lib/libkvm/kvm.c
1.7 +1 -1 src/lib/libkvm/kvm.h
1.4 +6 -0 src/lib/libkvm/kvm_getprocs.3
1.4 +1 -0 src/lib/libkvm/kvm_private.h
1.10 +141 -106 src/lib/libkvm/kvm_proc.c
1.151 +1 -0 src/sys/conf/files
1.14 +1 -30 src/sys/kern/imgact_aout.c
1.68 +1 -1 src/sys/kern/kern_exit.c
1.32 +63 -65 src/sys/kern/kern_proc.c
1.11 +8 -2 src/sys/sys/jail.h
1.9 +114 -0 src/sys/sys/kinfo.h
1.91 +9 -11 src/sys/sys/proc.h
1.22 +3 -0 src/sys/sys/sysctl.h
1.17 +1 -47 src/sys/sys/user.h
1.22 +16 -13 src/usr.bin/fstat/fstat.c
1.8 +18 -23 src/usr.bin/gcore/gcore.c
1.9 +6 -6 src/usr.bin/killall/killall.c
1.9 +23 -23 src/usr.bin/pkill/pkill.c
1.7 +1 -1 src/usr.bin/sockstat/sockstat.c
1.12 +13 -16 src/usr.bin/systat/pigs.c
1.20 +50 -51 src/usr.bin/top/machine.c
1.4 +2 -2 src/usr.bin/w/extern.h
1.6 +12 -12 src/usr.bin/w/proc_compare.c
1.8 +8 -12 src/usr.bin/w/w.c
1.6 +5 -0 src/lib/libc/gen/sysctl.3
http://www.dragonflybsd.org/cvsweb/src/bin/ps/extern.h.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/bin/ps/keyword.c.diff?r1=1.24&r2=1.25&f=u
http://www.dragonflybsd.org/cvsweb/src/bin/ps/print.c.diff?r1=1.25&r2=1.26&f=u
http://www.dragonflybsd.org/cvsweb/src/bin/ps/ps.c.diff?r1=1.21&r2=1.22&f=u
http://www.dragonflybsd.org/cvsweb/src/bin/ps/ps.h.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/contrib/ipfilter/ipsend/sock.c.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libkcore/kcore_file.c.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libkvm/Makefile.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libkvm/kvm.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libkvm/kvm.h.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libkvm/kvm_getprocs.3.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libkvm/kvm_private.h.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libkvm/kvm_proc.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/conf/files.diff?r1=1.150&r2=1.151&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/imgact_aout.c.diff?r1=1.13&r2=1.14&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_exit.c.diff?r1=1.67&r2=1.68&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_proc.c.diff?r1=1.31&r2=1.32&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/jail.h.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/kinfo.h.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/proc.h.diff?r1=1.90&r2=1.91&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/sysctl.h.diff?r1=1.21&r2=1.22&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/user.h.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.bin/fstat/fstat.c.diff?r1=1.21&r2=1.22&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.bin/gcore/gcore.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.bin/killall/killall.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.bin/pkill/pkill.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.bin/sockstat/sockstat.c.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.bin/systat/pigs.c.diff?r1=1.11&r2=1.12&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.bin/top/machine.c.diff?r1=1.19&r2=1.20&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.bin/w/extern.h.diff?r1=1.3&r2=1.4&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.bin/w/proc_compare.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/usr.bin/w/w.c.diff?r1=1.7&r2=1.8&f=u
http://www.dragonflybsd.org/cvsweb/src/lib/libc/gen/sysctl.3.diff?r1=1.5&r2=1.6&f=u
More information about the Commits
mailing list