kvm_getproc, kvm_nextproc, kvm_setproc - read system process structures
struct proc *kvm_getproc(kd, pid)
struct proc *kvm_nextproc(kd)
kvm_nextproc() may be used to sequentially read all of the system
process structures from the kernel identified by kd (see kvm_open(3K)).
Each call to kvm_nextproc() returns a pointer to the static memory area
that contains a copy of the next valid process table entry. There is
no guarantee that the data will remain valid across calls to
kvm_nextproc(), kvm_setproc(), or kvm_getproc(). Therefore, if the
process structure must be saved, it should be copied to non-volatile
For performance reasons, many implementations will cache a set of sys-
tem process structures. Since the system state is liable to change
between calls to kvm_nextproc(), and since the cache may contain obso-
lete information, there is no guarantee that every process structure
returned refers to an active process, nor is it certain that all pro-
cesses will be reported.
kvm_setproc() rewinds the process list, enabling kvm_nextproc() to res-
can from the beginning of the system process table. kvm_setproc() will
always flush the process structure cache, allowing an application to
re-scan the process table of a running system.
kvm_getproc() locates the proc structure of the process specified by
pid and returns a pointer to it. kvm_getproc() does not interact with
the process table pointer manipulated by kvm_nextproc, however, the
restrictions regarding the validity of the data still apply.
On success, kvm_nextproc() returns a pointer to a copy of the next
valid process table entry. On failure, it returns NULL.
On success, kvm_getproc() returns a pointer to the proc structure of
the process specified by pid. On failure, it returns NULL.
0 on success.
-1 on failure.
kvm_getu(3K), kvm_open(3K), kvm_read(3K)
21 January 1990 KVM_NEXTPROC(3K)