Lines Matching refs:pp

58 	struct process *pp;  in pchild()  local
83 for (pp = proclist.p_next; pp != PNULL; pp = pp->p_next) in pchild()
84 if (pid == pp->p_pid) in pchild()
90 pp->p_flags &= ~(PRUNNING|PSTOPPED|PREPORTED); in pchild()
92 pp->p_flags |= PSTOPPED; in pchild()
93 pp->p_reason = w.w_stopsig; in pchild()
95 if (pp->p_flags & (PTIME|PPTIME) || adrof(S_time /* "time" */)) in pchild()
96 (void) gettimeofday(&pp->p_etime, (struct timezone *)0); in pchild()
97 pp->p_rusage = ru; in pchild()
100 pp->p_flags |= PINTERRUPTED; in pchild()
102 pp->p_flags |= PSIGNALED; in pchild()
104 pp->p_flags |= PDUMPED; in pchild()
105 pp->p_reason = w.w_termsig; in pchild()
107 pp->p_reason = w.w_retcode; in pchild()
108 if (pp->p_reason != 0) in pchild()
109 pp->p_flags |= PAEXITED; in pchild()
111 pp->p_flags |= PNEXITED; in pchild()
115 fp = pp; in pchild()
123 } while ((fp = fp->p_friends) != pp); in pchild()
124 pp->p_flags &= ~PFOREGND; in pchild()
125 if (pp == pp->p_friends && (pp->p_flags & PPTIME)) { in pchild()
126 pp->p_flags &= ~PPTIME; in pchild()
127 pp->p_flags |= PTIME; in pchild()
130 fp = pp; in pchild()
134 } while ((fp = fp->p_friends) != pp); in pchild()
155 (void) pprint(pp, NUMBER|NAME|REASON); in pchild()
157 pflush(pp); in pchild()
170 struct process *pp; in pnote() local
177 for (pp = proclist.p_next; pp != PNULL; pp = pp->p_next) { in pnote()
178 if (pp->p_flags & PNEEDNOTE) { in pnote()
180 pp->p_flags &= ~PNEEDNOTE; in pnote()
181 flags = pprint(pp, NUMBER|NAME|REASON); in pnote()
183 pflush(pp); in pnote()
196 struct process *fp, *pp; in pwait() local
206 for (pp = (fp = &proclist)->p_next; pp != PNULL; pp = (fp = pp)->p_next) in pwait()
207 if (pp->p_pid == 0) { in pwait()
208 fp->p_next = pp->p_next; in pwait()
209 xfree(pp->p_command); in pwait()
210 if (pp->p_cwd && --pp->p_cwd->di_count == 0) in pwait()
211 if (pp->p_cwd->di_next == 0) in pwait()
212 dfree(pp->p_cwd); in pwait()
213 xfree((tchar *)pp); in pwait()
214 pp = fp; in pwait()
225 pjwait(struct process *pp) in pjwait() argument
233 while (pp->p_pid != pp->p_jobid) in pjwait()
234 pp = pp->p_friends; in pjwait()
235 fp = pp; in pjwait()
239 } while ((fp = fp->p_friends) != pp); in pjwait()
244 fp = pp; in pjwait()
250 while ((fp = (fp->p_friends)) != pp); in pjwait()
284 (void) pprint(pp, AREASON|SHELLDIR); in pjwait()
289 pflush(pp); in pjwait()
294 fp = pp; in pjwait()
299 } while ((fp = fp->p_friends) != pp); in pjwait()
303 pflush(pp); in pjwait()
312 struct process *pp; in dowait() local
321 for (pp = proclist.p_next; pp; pp = pp->p_next) in dowait()
322 if (pp->p_pid && /* pp->p_pid == pp->p_jobid && */ in dowait()
323 pp->p_flags&PRUNNING) { in dowait()
337 struct process *pp; in pflushall() local
342 for (pp = proclist.p_next; pp != PNULL; pp = pp->p_next) in pflushall()
343 if (pp->p_pid) in pflushall()
344 pflush(pp); in pflushall()
353 pflush(struct process *pp) in pflush() argument
361 if (pp->p_pid == 0) { in pflush()
365 while (pp->p_pid != pp->p_jobid) in pflush()
366 pp = pp->p_friends; in pflush()
367 pclrcurr(pp); in pflush()
368 if (pp == pcurrjob) in pflush()
370 index = pp->p_index; in pflush()
371 np = pp; in pflush()
375 } while ((np = np->p_friends) != pp); in pflush()
389 pclrcurr(struct process *pp) in pclrcurr() argument
395 if (pp == pcurrent) in pclrcurr()
398 pprevious = pgetcurr(pp); in pclrcurr()
400 pcurrent = pgetcurr(pp); in pclrcurr()
401 pprevious = pgetcurr(pp); in pclrcurr()
403 else if (pp == pprevious) in pclrcurr()
404 pprevious = pgetcurr(pp); in pclrcurr()
418 struct process *pp; in palloc() local
424 pp = (struct process *)xcalloc(1, sizeof (struct process)); in palloc()
425 pp->p_pid = pid; in palloc()
426 pp->p_flags = t->t_dflg & FAND ? PRUNNING : PRUNNING|PFOREGND; in palloc()
428 pp->p_flags |= PPTIME; in palloc()
434 pp->p_flags |= PPOU; in palloc()
436 pp->p_flags |= PDIAG; in palloc()
438 pp->p_command = savestr(command); in palloc()
442 pp->p_cwd = 0; in palloc()
443 pp->p_index = pcurrjob->p_index; in palloc()
444 pp->p_friends = pcurrjob; in palloc()
445 pp->p_jobid = pcurrjob->p_pid; in palloc()
448 fp->p_friends = pp; in palloc()
450 pcurrjob = pp; in palloc()
451 pp->p_jobid = pid; in palloc()
452 pp->p_friends = pp; in palloc()
453 pp->p_cwd = dcwd; in palloc()
456 pp->p_index = ++pmaxindex; in palloc()
464 pp->p_index = i; in palloc()
472 pcurrent = pp; in palloc()
474 pp->p_next = proclist.p_next; in palloc()
475 proclist.p_next = pp; in palloc()
476 (void) gettimeofday(&pp->p_btime, (struct timezone *)0); in palloc()
599 struct process *pp, *tp; in pendjob() local
605 pp = pcurrjob; in pendjob()
606 while (pp->p_pid != pp->p_jobid) in pendjob()
607 pp = pp->p_friends; in pendjob()
608 printf("[%d]", pp->p_index); in pendjob()
609 tp = pp; in pendjob()
611 printf(" %d", pp->p_pid); in pendjob()
612 pp = pp->p_friends; in pendjob()
613 } while (pp != tp); in pendjob()
623 pprint(struct process *pp, int flag) in pprint() argument
634 while (pp->p_pid != pp->p_jobid) in pprint()
635 pp = pp->p_friends; in pprint()
636 if (pp == pp->p_friends && (pp->p_flags & PPTIME)) { in pprint()
637 pp->p_flags &= ~PPTIME; in pprint()
638 pp->p_flags |= PTIME; in pprint()
640 tp = pp; in pprint()
644 jobflags |= pp->p_flags; in pprint()
645 pstatus = pp->p_flags & PALLSTATES; in pprint()
646 if (tp != pp && linp != linbuf && !(flag&FANCY) && in pprint()
647 (pstatus == status && pp->p_reason == reason || in pprint()
651 if (tp != pp && linp != linbuf) in pprint()
654 if (pp == tp) in pprint()
655 printf("[%d]%s %c ", pp->p_index, in pprint()
656 pp->p_index < 10 ? " " : "", in pprint()
657 pp == pcurrent ? '+' : in pprint()
658 (pp == pprevious ? (tchar) '-' in pprint()
663 printf("%5d ", pp->p_pid); in pprint()
670 if (pp->p_reason == reason) { in pprint()
674 reason = pp->p_reason; in pprint()
677 reason = pp->p_reason; in pprint()
692 strsignal(pp->p_reason)); in pprint()
698 if (pp->p_reason) in pprint()
699 printf("Exit %-16d", pp->p_reason); in pprint()
711 printf("%t", pp->p_command); in pprint()
712 if (pp->p_flags & PPOU) in pprint()
714 if (pp->p_flags & PDIAG) in pprint()
717 if (flag&(REASON|AREASON) && pp->p_flags&PDUMPED) in pprint()
719 if (tp == pp->p_friends) { in pprint()
729 if (pp->p_flags&PPTIME && !(status&(PSTOPPED|PRUNNING))) { in pprint()
733 prusage(&zru, &pp->p_rusage, &pp->p_etime, in pprint()
734 &pp->p_btime); in pprint()
737 if (tp == pp->p_friends) { in pprint()
746 } while ((pp = pp->p_friends) != tp); in pprint()
762 struct process *pp = tp; in ptprint() local
770 ruadd(&ru, &pp->p_rusage); in ptprint()
771 tvsub(&diff, &pp->p_etime, &pp->p_btime); in ptprint()
774 } while ((pp = pp->p_friends) != tp); in ptprint()
784 struct process *pp; in dojobs() local
799 for (pp = proclist.p_next; pp; pp = pp->p_next) in dojobs()
800 if (pp->p_index == i && pp->p_pid == pp->p_jobid) { in dojobs()
801 pp->p_flags &= ~PNEEDNOTE; in dojobs()
802 if (!(pprint(pp, flag) & (PRUNNING|PSTOPPED))) in dojobs()
803 pflush(pp); in dojobs()
814 struct process *pp; in dofg() local
822 pp = pfind(*v); in dofg()
823 pstart(pp, 1); in dofg()
824 pjwait(pp); in dofg()
834 struct process *pp; in dofg1() local
840 pp = pfind(v[0]); in dofg1()
841 pstart(pp, 1); in dofg1()
842 pjwait(pp); in dofg1()
851 struct process *pp; in dobg() local
859 pp = pfind(*v); in dobg()
860 pstart(pp, 0); in dobg()
870 struct process *pp; in dobg1() local
875 pp = pfind(v[0]); in dobg1()
876 pstart(pp, 0); in dobg1()
951 struct process *pp, *np; in pkill() local
966 np = pp = pfind(cp); in pkill()
969 while ((np = np->p_friends) != pp); in pkill()
983 if (killpg(pp->p_jobid, signum) < 0) { in pkill()
990 (void) killpg(pp->p_jobid, SIGCONT); in pkill()
1017 pstart(struct process *pp, int foregnd) in pstart() argument
1026 np = pp; in pstart()
1037 } while ((np = np->p_friends) != pp); in pstart()
1040 pclrcurr(pp); in pstart()
1050 pcurrent = pgetcurr(pp); in pstart()
1052 pcurrent = pp; in pstart()
1054 pprevious = pp; in pstart()
1057 (void) pprint(pp, foregnd ? NAME|JOBDIR : NUMBER|NAME|AMPERSAND); in pstart()
1059 (void) ioctl(FSHTTY, TIOCSPGRP, (char *)&pp->p_jobid); in pstart()
1061 (void) killpg(pp->p_jobid, SIGCONT); in pstart()
1068 struct process *pp; in panystop() local
1074 for (pp = proclist.p_next; pp; pp = pp->p_next) in panystop()
1075 if (pp->p_flags & PSTOPPED) in panystop()
1082 struct process *pp, *np; in pfind() local
1102 for (pp = proclist.p_next; pp; pp = pp->p_next) in pfind()
1103 if (pp->p_index == index && pp->p_pid == pp->p_jobid) in pfind()
1104 return (pp); in pfind()
1108 for (pp = proclist.p_next; pp; pp = pp->p_next) in pfind()
1109 if (pp->p_pid == pp->p_jobid) { in pfind()
1112 for (dp = pp->p_command; *dp; dp++) { in pfind()
1118 } else if (prefix(cp+1, pp->p_command)) { in pfind()
1122 np = pp; in pfind()
1138 pgetcurr(struct process *pp) in pgetcurr() argument
1147 if (np != pcurrent && np != pp && np->p_pid && in pgetcurr()
1163 struct process *pp; in donotify() local
1168 pp = pfind(*++v); in donotify()
1169 pp->p_flags |= PNOTIFY; in donotify()
1301 struct process *pp; in hupforegnd() local
1305 for (pp = (&proclist)->p_next; pp != PNULL; pp = pp->p_next) in hupforegnd()
1306 if (pp->p_pid > 0) { in hupforegnd()
1307 if (pp->p_flags & PFOREGND) in hupforegnd()
1308 (void) kill(pp->p_pid, SIGHUP); in hupforegnd()