Lines Matching refs:pp

51 	struct process *pp;  in pchild()  local
77 for (pp = proclist.p_next; pp != PNULL; pp = pp->p_next) in pchild()
78 if (pid == pp->p_pid) in pchild()
84 pp->p_flags &= ~(PRUNNING|PSTOPPED|PREPORTED); in pchild()
86 pp->p_flags |= PSTOPPED; in pchild()
87 pp->p_reason = w.w_stopsig; in pchild()
89 if (pp->p_flags & (PTIME|PPTIME) || adrof(S_time /* "time" */)) in pchild()
90 (void) gettimeofday(&pp->p_etime, (struct timezone *)0); in pchild()
91 pp->p_rusage = ru; in pchild()
94 pp->p_flags |= PINTERRUPTED; in pchild()
96 pp->p_flags |= PSIGNALED; in pchild()
98 pp->p_flags |= PDUMPED; in pchild()
99 pp->p_reason = w.w_termsig; in pchild()
101 pp->p_reason = w.w_retcode; in pchild()
102 if (pp->p_reason != 0) in pchild()
103 pp->p_flags |= PAEXITED; in pchild()
105 pp->p_flags |= PNEXITED; in pchild()
109 fp = pp; in pchild()
117 } while ((fp = fp->p_friends) != pp); in pchild()
118 pp->p_flags &= ~PFOREGND; in pchild()
119 if (pp == pp->p_friends && (pp->p_flags & PPTIME)) { in pchild()
120 pp->p_flags &= ~PPTIME; in pchild()
121 pp->p_flags |= PTIME; in pchild()
124 fp = pp; in pchild()
128 } while ((fp = fp->p_friends) != pp); in pchild()
149 (void) pprint(pp, NUMBER|NAME|REASON); in pchild()
151 pflush(pp); in pchild()
164 struct process *pp; in pnote() local
171 for (pp = proclist.p_next; pp != PNULL; pp = pp->p_next) { in pnote()
172 if (pp->p_flags & PNEEDNOTE) { in pnote()
174 pp->p_flags &= ~PNEEDNOTE; in pnote()
175 flags = pprint(pp, NUMBER|NAME|REASON); in pnote()
177 pflush(pp); in pnote()
190 struct process *fp, *pp; in pwait() local
200 for (pp = (fp = &proclist)->p_next; pp != PNULL; pp = (fp = pp)->p_next) in pwait()
201 if (pp->p_pid == 0) { in pwait()
202 fp->p_next = pp->p_next; in pwait()
203 xfree(pp->p_command); in pwait()
204 if (pp->p_cwd && --pp->p_cwd->di_count == 0) in pwait()
205 if (pp->p_cwd->di_next == 0) in pwait()
206 dfree(pp->p_cwd); in pwait()
207 xfree((tchar *)pp); in pwait()
208 pp = fp; in pwait()
219 pjwait(struct process *pp) in pjwait() argument
227 while (pp->p_pid != pp->p_jobid) in pjwait()
228 pp = pp->p_friends; in pjwait()
229 fp = pp; in pjwait()
233 } while ((fp = fp->p_friends) != pp); in pjwait()
238 fp = pp; in pjwait()
244 while ((fp = (fp->p_friends)) != pp); in pjwait()
278 (void) pprint(pp, AREASON|SHELLDIR); in pjwait()
283 pflush(pp); in pjwait()
288 fp = pp; in pjwait()
293 } while ((fp = fp->p_friends) != pp); in pjwait()
297 pflush(pp); in pjwait()
306 struct process *pp; in dowait() local
315 for (pp = proclist.p_next; pp; pp = pp->p_next) in dowait()
316 if (pp->p_pid && /* pp->p_pid == pp->p_jobid && */ in dowait()
317 pp->p_flags&PRUNNING) { in dowait()
331 struct process *pp; in pflushall() local
336 for (pp = proclist.p_next; pp != PNULL; pp = pp->p_next) in pflushall()
337 if (pp->p_pid) in pflushall()
338 pflush(pp); in pflushall()
347 pflush(struct process *pp) in pflush() argument
355 if (pp->p_pid == 0) { in pflush()
359 while (pp->p_pid != pp->p_jobid) in pflush()
360 pp = pp->p_friends; in pflush()
361 pclrcurr(pp); in pflush()
362 if (pp == pcurrjob) in pflush()
364 index = pp->p_index; in pflush()
365 np = pp; in pflush()
369 } while ((np = np->p_friends) != pp); in pflush()
383 pclrcurr(struct process *pp) in pclrcurr() argument
389 if (pp == pcurrent) in pclrcurr()
392 pprevious = pgetcurr(pp); in pclrcurr()
394 pcurrent = pgetcurr(pp); in pclrcurr()
395 pprevious = pgetcurr(pp); in pclrcurr()
397 else if (pp == pprevious) in pclrcurr()
398 pprevious = pgetcurr(pp); in pclrcurr()
412 struct process *pp; in palloc() local
418 pp = (struct process *)xcalloc(1, sizeof (struct process)); in palloc()
419 pp->p_pid = pid; in palloc()
420 pp->p_flags = t->t_dflg & FAND ? PRUNNING : PRUNNING|PFOREGND; in palloc()
422 pp->p_flags |= PPTIME; in palloc()
428 pp->p_flags |= PPOU; in palloc()
430 pp->p_flags |= PDIAG; in palloc()
432 pp->p_command = savestr(command); in palloc()
436 pp->p_cwd = 0; in palloc()
437 pp->p_index = pcurrjob->p_index; in palloc()
438 pp->p_friends = pcurrjob; in palloc()
439 pp->p_jobid = pcurrjob->p_pid; in palloc()
442 fp->p_friends = pp; in palloc()
444 pcurrjob = pp; in palloc()
445 pp->p_jobid = pid; in palloc()
446 pp->p_friends = pp; in palloc()
447 pp->p_cwd = dcwd; in palloc()
450 pp->p_index = ++pmaxindex; in palloc()
458 pp->p_index = i; in palloc()
466 pcurrent = pp; in palloc()
468 pp->p_next = proclist.p_next; in palloc()
469 proclist.p_next = pp; in palloc()
470 (void) gettimeofday(&pp->p_btime, (struct timezone *)0); in palloc()
593 struct process *pp, *tp; in pendjob() local
599 pp = pcurrjob; in pendjob()
600 while (pp->p_pid != pp->p_jobid) in pendjob()
601 pp = pp->p_friends; in pendjob()
602 printf("[%d]", pp->p_index); in pendjob()
603 tp = pp; in pendjob()
605 printf(" %d", pp->p_pid); in pendjob()
606 pp = pp->p_friends; in pendjob()
607 } while (pp != tp); in pendjob()
617 pprint(struct process *pp, int flag) in pprint() argument
628 while (pp->p_pid != pp->p_jobid) in pprint()
629 pp = pp->p_friends; in pprint()
630 if (pp == pp->p_friends && (pp->p_flags & PPTIME)) { in pprint()
631 pp->p_flags &= ~PPTIME; in pprint()
632 pp->p_flags |= PTIME; in pprint()
634 tp = pp; in pprint()
638 jobflags |= pp->p_flags; in pprint()
639 pstatus = pp->p_flags & PALLSTATES; in pprint()
640 if (tp != pp && linp != linbuf && !(flag&FANCY) && in pprint()
641 (pstatus == status && pp->p_reason == reason || in pprint()
645 if (tp != pp && linp != linbuf) in pprint()
648 if (pp == tp) in pprint()
649 printf("[%d]%s %c ", pp->p_index, in pprint()
650 pp->p_index < 10 ? " " : "", in pprint()
651 pp == pcurrent ? '+' : in pprint()
652 (pp == pprevious ? (tchar) '-' in pprint()
657 printf("%5d ", pp->p_pid); in pprint()
664 if (pp->p_reason == reason) { in pprint()
668 reason = pp->p_reason; in pprint()
671 reason = pp->p_reason; in pprint()
686 strsignal(pp->p_reason)); in pprint()
692 if (pp->p_reason) in pprint()
693 printf("Exit %-16d", pp->p_reason); in pprint()
705 printf("%t", pp->p_command); in pprint()
706 if (pp->p_flags & PPOU) in pprint()
708 if (pp->p_flags & PDIAG) in pprint()
711 if (flag&(REASON|AREASON) && pp->p_flags&PDUMPED) in pprint()
713 if (tp == pp->p_friends) { in pprint()
723 if (pp->p_flags&PPTIME && !(status&(PSTOPPED|PRUNNING))) { in pprint()
727 prusage(&zru, &pp->p_rusage, &pp->p_etime, in pprint()
728 &pp->p_btime); in pprint()
731 if (tp == pp->p_friends) { in pprint()
740 } while ((pp = pp->p_friends) != tp); in pprint()
756 struct process *pp = tp; in ptprint() local
764 ruadd(&ru, &pp->p_rusage); in ptprint()
765 tvsub(&diff, &pp->p_etime, &pp->p_btime); in ptprint()
768 } while ((pp = pp->p_friends) != tp); in ptprint()
778 struct process *pp; in dojobs() local
793 for (pp = proclist.p_next; pp; pp = pp->p_next) in dojobs()
794 if (pp->p_index == i && pp->p_pid == pp->p_jobid) { in dojobs()
795 pp->p_flags &= ~PNEEDNOTE; in dojobs()
796 if (!(pprint(pp, flag) & (PRUNNING|PSTOPPED))) in dojobs()
797 pflush(pp); in dojobs()
808 struct process *pp; in dofg() local
816 pp = pfind(*v); in dofg()
817 pstart(pp, 1); in dofg()
818 pjwait(pp); in dofg()
828 struct process *pp; in dofg1() local
834 pp = pfind(v[0]); in dofg1()
835 pstart(pp, 1); in dofg1()
836 pjwait(pp); in dofg1()
845 struct process *pp; in dobg() local
853 pp = pfind(*v); in dobg()
854 pstart(pp, 0); in dobg()
864 struct process *pp; in dobg1() local
869 pp = pfind(v[0]); in dobg1()
870 pstart(pp, 0); in dobg1()
945 struct process *pp, *np; in pkill() local
960 np = pp = pfind(cp); in pkill()
963 while ((np = np->p_friends) != pp); in pkill()
977 if (killpg(pp->p_jobid, signum) < 0) { in pkill()
984 (void) killpg(pp->p_jobid, SIGCONT); in pkill()
1011 pstart(struct process *pp, int foregnd) in pstart() argument
1020 np = pp; in pstart()
1031 } while ((np = np->p_friends) != pp); in pstart()
1034 pclrcurr(pp); in pstart()
1044 pcurrent = pgetcurr(pp); in pstart()
1046 pcurrent = pp; in pstart()
1048 pprevious = pp; in pstart()
1051 (void) pprint(pp, foregnd ? NAME|JOBDIR : NUMBER|NAME|AMPERSAND); in pstart()
1053 (void) ioctl(FSHTTY, TIOCSPGRP, (char *)&pp->p_jobid); in pstart()
1055 (void) killpg(pp->p_jobid, SIGCONT); in pstart()
1062 struct process *pp; in panystop() local
1068 for (pp = proclist.p_next; pp; pp = pp->p_next) in panystop()
1069 if (pp->p_flags & PSTOPPED) in panystop()
1076 struct process *pp, *np; in pfind() local
1096 for (pp = proclist.p_next; pp; pp = pp->p_next) in pfind()
1097 if (pp->p_index == index && pp->p_pid == pp->p_jobid) in pfind()
1098 return (pp); in pfind()
1102 for (pp = proclist.p_next; pp; pp = pp->p_next) in pfind()
1103 if (pp->p_pid == pp->p_jobid) { in pfind()
1106 for (dp = pp->p_command; *dp; dp++) { in pfind()
1112 } else if (prefix(cp+1, pp->p_command)) { in pfind()
1116 np = pp; in pfind()
1132 pgetcurr(struct process *pp) in pgetcurr() argument
1141 if (np != pcurrent && np != pp && np->p_pid && in pgetcurr()
1157 struct process *pp; in donotify() local
1162 pp = pfind(*++v); in donotify()
1163 pp->p_flags |= PNOTIFY; in donotify()
1295 struct process *pp; in hupforegnd() local
1299 for (pp = (&proclist)->p_next; pp != PNULL; pp = pp->p_next) in hupforegnd()
1300 if (pp->p_pid > 0) { in hupforegnd()
1301 if (pp->p_flags & PFOREGND) in hupforegnd()
1302 (void) kill(pp->p_pid, SIGHUP); in hupforegnd()