Lines Matching defs:pr
176 * Is pr an inferior of parent?
179 inferior(struct process *pr, struct process *parent)
182 for (; pr != parent; pr = pr->ps_pptr)
183 if (pr->ps_pid == 0 || pr->ps_pid == 1)
206 tfind_user(pid_t tid, struct process *pr)
215 if (p != NULL && p->p_p != pr)
226 struct process *pr;
228 LIST_FOREACH(pr, PIDHASH(pid), ps_hash)
229 if (pr->ps_pid == pid)
230 return (pr);
254 struct process *pr;
256 LIST_FOREACH(pr, &zombprocess, ps_list)
257 if (pr->ps_pid == pid)
258 return (pr);
268 enternewpgrp(struct process *pr, struct pgrp *pgrp, struct session *newsess)
271 if (SESS_LEADER(pr))
280 newsess->s_leader = pr;
284 memcpy(newsess->s_login, pr->ps_session->s_login,
286 atomic_clearbits_int(&pr->ps_flags, PS_CONTROLT);
289 if (pr != curproc->p_p)
293 pgrp->pg_session = pr->ps_session;
296 pgrp->pg_id = pr->ps_pid;
299 LIST_INSERT_HEAD(PGRPHASH(pr->ps_pid), pgrp, pg_hash);
302 enterthispgrp(pr, pgrp);
309 enterthispgrp(struct process *pr, struct pgrp *pgrp)
311 struct pgrp *savepgrp = pr->ps_pgrp;
318 fixjobc(pr, pgrp, 1);
319 fixjobc(pr, savepgrp, 0);
321 LIST_REMOVE(pr, ps_pglist);
322 mtx_enter(&pr->ps_mtx);
323 pr->ps_pgrp = pgrp;
324 mtx_leave(&pr->ps_mtx);
325 LIST_INSERT_HEAD(&pgrp->pg_members, pr, ps_pglist);
334 leavepgrp(struct process *pr)
337 if (pr->ps_session->s_verauthppid == pr->ps_pid)
338 zapverauth(pr->ps_session);
339 LIST_REMOVE(pr, ps_pglist);
340 if (LIST_EMPTY(&pr->ps_pgrp->pg_members))
341 pgdelete(pr->ps_pgrp);
342 mtx_enter(&pr->ps_mtx);
343 pr->ps_pgrp = NULL;
344 mtx_leave(&pr->ps_mtx);
378 * entering == 0 => pr is leaving specified group.
379 * entering == 1 => pr is entering specified group.
383 fixjobc(struct process *pr, struct pgrp *pgrp, int entering)
389 * Check pr's parent to see whether pr qualifies its own process
390 * group; if so, adjust count for pr's process group.
392 if ((hispgrp = pr->ps_pptr->ps_pgrp) != pgrp &&
405 LIST_FOREACH(pr, &pr->ps_children, ps_sibling)
406 if ((hispgrp = pr->ps_pgrp) != pgrp &&
408 (pr->ps_flags & PS_ZOMBIE) == 0) {
417 killjobc(struct process *pr)
419 if (SESS_LEADER(pr)) {
420 struct session *sp = pr->ps_session;
455 fixjobc(pr, pr->ps_pgrp, 0);
466 struct process *pr;
468 LIST_FOREACH(pr, &pg->pg_members, ps_pglist) {
469 if (pr->ps_flags & PS_STOPPED) {
470 LIST_FOREACH(pr, &pg->pg_members, ps_pglist) {
471 prsignal(pr, SIGHUP);
472 prsignal(pr, SIGCONT);
482 int (*pr)(const char *, ...) __attribute__((__format__(__kprintf__,1,2))))
496 (*pr)("PROC (%s) tid=%d pid=%d tcnt=%d stat=%s\n", p->p_p->ps_comm,
498 (*pr)(" flags process=%b proc=%b\n",
500 (*pr)(" runpri=%u, usrpri=%u, slppri=%u, nice=%d\n",
502 (*pr)(" wchan=%p, wmesg=%s, ps_single=%p scnt=%d ecnt=%d\n",
505 (*pr)(" forw=%p, list=%p,%p\n",
507 (*pr)(" process=%p user=%p, vmspace=%p\n",
509 (*pr)(" estcpu=%u, cpticks=%d, pctcpu=%u.%u, "
521 struct process *pr;
524 pr = prfind(addr);
525 if (pr == NULL) {
530 p = TAILQ_FIRST(&pr->ps_threads);
543 struct process *pr, *ppr;
560 pr = LIST_FIRST(&allprocess);
583 while (pr != NULL) {
584 ppr = pr->ps_pptr;
586 TAILQ_FOREACH(p, &pr->ps_threads, p_thr_link) {
604 '*' : ' '), pr->ps_pid);
614 pr->ps_comm, p, p->p_addr, p->p_vmspace);
621 pr->ps_ucred->cr_ruid, p->p_stat,
622 p->p_flag | pr->ps_flags,
624 p->p_wmesg : "", pr->ps_comm);
629 pr->ps_comm, (pr->ps_pgrp ?
630 pr->ps_pgrp->pg_id : -1),
639 pr->ps_pid, pr->ps_ucred->cr_ruid,
640 pr->ps_flags, p->p_flag,
643 pr->ps_comm);
649 pr = LIST_NEXT(pr, ps_list);
650 if (pr == NULL && skipzomb == 0) {
652 pr = LIST_FIRST(&zombprocess);
663 struct process *pr;
674 LIST_FOREACH(pr, &pgrp->pg_members, ps_pglist) {
676 pr->ps_pid, pr, pr->ps_pgrp);