Lines Matching full:proc

38  * Proc traversal interface for kvm.  ps and w are (probably) the exclusive
53 #include <sys/proc.h>
101 * Read proc's from memory file into buffer bp, which has space to hold
105 kvm_proclist(kvm_t *kd, int what, int arg, struct proc *p, in kvm_proclist()
122 struct proc proc; in kvm_proclist() local
123 struct proc pproc; in kvm_proclist()
136 for (; cnt < maxcnt && p != NULL; p = LIST_NEXT(&proc, p_list)) { in kvm_proclist()
138 if (KREAD(kd, (u_long)p, &proc)) { in kvm_proclist()
139 _kvm_err(kd, kd->program, "can't read proc at %p", p); in kvm_proclist()
142 if (proc.p_state == PRS_NEW) in kvm_proclist()
144 if (KREAD(kd, (u_long)proc.p_ucred, &ucred) == 0) { in kvm_proclist()
180 if (proc.p_pid != (pid_t)arg) in kvm_proclist()
200 * We're going to add another proc to the set. If this in kvm_proclist()
202 * nprocs (or the proc list) is corrupt and declare an error. in kvm_proclist()
213 /* kp->ki_kstack = proc.p_thread.td_kstack; XXXKSE */ in kvm_proclist()
214 kp->ki_args = proc.p_args; in kvm_proclist()
215 kp->ki_numthreads = proc.p_numthreads; in kvm_proclist()
217 kp->ki_textvp = proc.p_textvp; in kvm_proclist()
218 kp->ki_fd = proc.p_fd; in kvm_proclist()
219 kp->ki_pd = proc.p_pd; in kvm_proclist()
220 kp->ki_vmspace = proc.p_vmspace; in kvm_proclist()
221 if (proc.p_sigacts != NULL) { in kvm_proclist()
222 if (KREAD(kd, (u_long)proc.p_sigacts, &sigacts)) { in kvm_proclist()
224 "can't read sigacts at %p", proc.p_sigacts); in kvm_proclist()
231 if ((proc.p_flag & P_INMEM) && proc.p_stats != NULL) { in kvm_proclist()
232 if (KREAD(kd, (u_long)proc.p_stats, &pstats)) { in kvm_proclist()
234 "can't read stats at %x", proc.p_stats); in kvm_proclist()
252 if (proc.p_oppid) in kvm_proclist()
253 kp->ki_ppid = proc.p_oppid; in kvm_proclist()
254 else if (proc.p_pptr) { in kvm_proclist()
255 if (KREAD(kd, (u_long)proc.p_pptr, &pproc)) { in kvm_proclist()
257 "can't read pproc at %p", proc.p_pptr); in kvm_proclist()
263 if (proc.p_pgrp == NULL) in kvm_proclist()
265 if (KREAD(kd, (u_long)proc.p_pgrp, &pgrp)) { in kvm_proclist()
267 proc.p_pgrp); in kvm_proclist()
280 if ((proc.p_flag & P_CONTROLT) && sess.s_ttyp != NULL) { in kvm_proclist()
323 (void)kvm_read(kd, (u_long)proc.p_vmspace, in kvm_proclist()
350 if ((proc.p_flag & P_CONTROLT) == 0 || in kvm_proclist()
355 if (proc.p_comm[0] != 0) in kvm_proclist()
356 strlcpy(kp->ki_comm, proc.p_comm, MAXCOMLEN); in kvm_proclist()
357 (void)kvm_read(kd, (u_long)proc.p_sysent, (char *)&sysent, in kvm_proclist()
363 kp->ki_runtime = cputick2usec(proc.p_rux.rux_runtime); in kvm_proclist()
364 kp->ki_pid = proc.p_pid; in kvm_proclist()
365 kp->ki_xstat = KW_EXITCODE(proc.p_xexit, proc.p_xsig); in kvm_proclist()
366 kp->ki_acflag = proc.p_acflag; in kvm_proclist()
367 kp->ki_lock = proc.p_lock; in kvm_proclist()
371 td = TAILQ_FIRST(&proc.p_threads); in kvm_proclist()
375 if (proc.p_state != PRS_ZOMBIE) { in kvm_proclist()
385 if ((proc.p_state != PRS_ZOMBIE) && mtd.td_wmesg) in kvm_proclist()
390 if (proc.p_pgrp == NULL) { in kvm_proclist()
397 if ((proc.p_state != PRS_ZOMBIE) && in kvm_proclist()
410 kp->ki_siglist = proc.p_siglist; in kvm_proclist()
411 if (proc.p_state != PRS_ZOMBIE) { in kvm_proclist()
414 kp->ki_swtime = (ticks - proc.p_swtick) / hz; in kvm_proclist()
415 kp->ki_flag = proc.p_flag; in kvm_proclist()
417 kp->ki_nice = proc.p_nice; in kvm_proclist()
418 kp->ki_traceflag = proc.p_traceflag; in kvm_proclist()
419 if (proc.p_state == PRS_NORMAL) { in kvm_proclist()
426 if (P_SHOULDSTOP(&proc)) { in kvm_proclist()
489 * Build proc info array by reading in proc list from a crash dump.
498 struct proc *p; in kvm_deadprocs()