Lines Matching refs:pr
46 struct pr *
53 struct pr *pr; in start_pr() local
55 pr = xcalloc(1, sizeof(*pr)); in start_pr()
81 pr->ostdout = dup(STDOUT_FILENO); in start_pr()
89 pr->kq = kqueue(); in start_pr()
90 if (pr->kq == -1) in start_pr()
92 pr->e = xmalloc(sizeof(struct kevent)); in start_pr()
93 EV_SET(pr->e, pr_pd, EVFILT_PROCDESC, EV_ADD, NOTE_EXIT, 0, in start_pr()
95 if (kevent(pr->kq, pr->e, 1, NULL, 0, NULL) == -1) in start_pr()
98 return (pr); in start_pr()
103 stop_pr(struct pr *pr) in stop_pr() argument
107 if (pr == NULL) in stop_pr()
111 if (pr->ostdout != STDOUT_FILENO) { in stop_pr()
113 dup2(pr->ostdout, STDOUT_FILENO); in stop_pr()
114 close(pr->ostdout); in stop_pr()
116 if (kevent(pr->kq, NULL, 0, pr->e, 1, NULL) == -1) in stop_pr()
118 wstatus = pr->e[0].data; in stop_pr()
119 close(pr->kq); in stop_pr()
120 free(pr); in stop_pr()