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,
122 struct proc proc;
123 struct proc pproc;
136 for (; cnt < maxcnt && p != NULL; p = LIST_NEXT(&proc, p_list)) {
138 if (KREAD(kd, (u_long)p, &proc)) {
139 _kvm_err(kd, kd->program, "can't read proc at %p", p);
142 if (proc.p_state == PRS_NEW)
144 if (KREAD(kd, (u_long)proc.p_ucred, &ucred) == 0) {
179 if (proc.p_pid != (pid_t)arg)
199 * We're going to add another proc to the set. If this
201 * nprocs (or the proc list) is corrupt and declare an error.
212 /* kp->ki_kstack = proc.p_thread.td_kstack; XXXKSE */
213 kp->ki_args = proc.p_args;
214 kp->ki_numthreads = proc.p_numthreads;
216 kp->ki_textvp = proc.p_textvp;
217 kp->ki_fd = proc.p_fd;
218 kp->ki_pd = proc.p_pd;
219 kp->ki_vmspace = proc.p_vmspace;
220 if (proc.p_sigacts != NULL) {
221 if (KREAD(kd, (u_long)proc.p_sigacts, &sigacts)) {
223 "can't read sigacts at %p", proc.p_sigacts);
230 if ((proc.p_flag & P_INMEM) && proc.p_stats != NULL) {
231 if (KREAD(kd, (u_long)proc.p_stats, &pstats)) {
233 "can't read stats at %x", proc.p_stats);
251 if (proc.p_oppid)
252 kp->ki_ppid = proc.p_oppid;
253 else if (proc.p_pptr) {
254 if (KREAD(kd, (u_long)proc.p_pptr, &pproc)) {
256 "can't read pproc at %p", proc.p_pptr);
262 if (proc.p_pgrp == NULL)
264 if (KREAD(kd, (u_long)proc.p_pgrp, &pgrp)) {
266 proc.p_pgrp);
279 if ((proc.p_flag & P_CONTROLT) && sess.s_ttyp != NULL) {
322 (void)kvm_read(kd, (u_long)proc.p_vmspace,
349 if ((proc.p_flag & P_CONTROLT) == 0 ||
354 if (proc.p_comm[0] != 0)
355 strlcpy(kp->ki_comm, proc.p_comm, MAXCOMLEN);
356 (void)kvm_read(kd, (u_long)proc.p_sysent, (char *)&sysent,
362 kp->ki_runtime = cputick2usec(proc.p_rux.rux_runtime);
363 kp->ki_pid = proc.p_pid;
364 kp->ki_xstat = KW_EXITCODE(proc.p_xexit, proc.p_xsig);
365 kp->ki_acflag = proc.p_acflag;
366 kp->ki_lock = proc.p_lock;
370 td = TAILQ_FIRST(&proc.p_threads);
374 if (proc.p_state != PRS_ZOMBIE) {
384 if ((proc.p_state != PRS_ZOMBIE) && mtd.td_wmesg)
389 if (proc.p_pgrp == NULL) {
396 if ((proc.p_state != PRS_ZOMBIE) &&
409 kp->ki_siglist = proc.p_siglist;
410 if (proc.p_state != PRS_ZOMBIE) {
413 kp->ki_swtime = (ticks - proc.p_swtick) / hz;
414 kp->ki_flag = proc.p_flag;
416 kp->ki_nice = proc.p_nice;
417 kp->ki_traceflag = proc.p_traceflag;
418 if (proc.p_state == PRS_NORMAL) {
425 if (P_SHOULDSTOP(&proc)) {
488 * Build proc info array by reading in proc list from a crash dump.
497 struct proc *p;