Lines Matching full:pd

124 	struct procdesc *pd;  in procdesc_find()  local
135 pd = fp->f_data; in procdesc_find()
137 if (pd->pd_proc != NULL) { in procdesc_find()
138 *p = pd->pd_proc; in procdesc_find()
155 struct procdesc *pd; in procdesc_pid() local
160 pd = fp_procdesc->f_data; in procdesc_pid()
161 return (pd->pd_pid); in procdesc_pid()
211 struct procdesc *pd; in procdesc_new() local
213 pd = malloc(sizeof(*pd), M_PROCDESC, M_WAITOK | M_ZERO); in procdesc_new()
214 pd->pd_proc = p; in procdesc_new()
215 pd->pd_pid = p->p_pid; in procdesc_new()
216 p->p_procdesc = pd; in procdesc_new()
217 pd->pd_flags = 0; in procdesc_new()
219 pd->pd_flags |= PDF_DAEMON; in procdesc_new()
220 PROCDESC_LOCK_INIT(pd); in procdesc_new()
221 knlist_init_mtx(&pd->pd_selinfo.si_note, &pd->pd_lock); in procdesc_new()
227 refcount_init(&pd->pd_refcount, 2); in procdesc_new()
257 procdesc_free(struct procdesc *pd) in procdesc_free() argument
266 if (refcount_release(&pd->pd_refcount)) { in procdesc_free()
267 KASSERT(pd->pd_proc == NULL, in procdesc_free()
269 KASSERT((pd->pd_flags & PDF_CLOSED), in procdesc_free()
272 knlist_destroy(&pd->pd_selinfo.si_note); in procdesc_free()
273 PROCDESC_LOCK_DESTROY(pd); in procdesc_free()
274 free(pd, M_PROCDESC); in procdesc_free()
286 struct procdesc *pd; in procdesc_exit() local
292 pd = p->p_procdesc; in procdesc_exit()
294 PROCDESC_LOCK(pd); in procdesc_exit()
295 KASSERT((pd->pd_flags & PDF_CLOSED) == 0 || p->p_pptr == p->p_reaper, in procdesc_exit()
298 pd->pd_flags |= PDF_EXITED; in procdesc_exit()
299 pd->pd_xstat = KW_EXITCODE(p->p_xexit, p->p_xsig); in procdesc_exit()
307 if (pd->pd_flags & PDF_CLOSED) { in procdesc_exit()
308 PROCDESC_UNLOCK(pd); in procdesc_exit()
309 pd->pd_proc = NULL; in procdesc_exit()
311 procdesc_free(pd); in procdesc_exit()
314 if (pd->pd_flags & PDF_SELECTED) { in procdesc_exit()
315 pd->pd_flags &= ~PDF_SELECTED; in procdesc_exit()
316 selwakeup(&pd->pd_selinfo); in procdesc_exit()
318 KNOTE_LOCKED(&pd->pd_selinfo.si_note, NOTE_EXIT); in procdesc_exit()
319 PROCDESC_UNLOCK(pd); in procdesc_exit()
330 struct procdesc *pd; in procdesc_reap() local
335 pd = p->p_procdesc; in procdesc_reap()
336 pd->pd_proc = NULL; in procdesc_reap()
338 procdesc_free(pd); in procdesc_reap()
350 struct procdesc *pd; in procdesc_close() local
355 pd = fp->f_data; in procdesc_close()
360 PROCDESC_LOCK(pd); in procdesc_close()
361 pd->pd_flags |= PDF_CLOSED; in procdesc_close()
362 PROCDESC_UNLOCK(pd); in procdesc_close()
363 p = pd->pd_proc; in procdesc_close()
389 pd->pd_proc = NULL; in procdesc_close()
391 procdesc_free(pd); in procdesc_close()
406 if ((pd->pd_flags & PDF_DAEMON) == 0) in procdesc_close()
416 procdesc_free(pd); in procdesc_close()
424 struct procdesc *pd; in procdesc_poll() local
428 pd = fp->f_data; in procdesc_poll()
429 PROCDESC_LOCK(pd); in procdesc_poll()
430 if (pd->pd_flags & PDF_EXITED) in procdesc_poll()
433 selrecord(td, &pd->pd_selinfo); in procdesc_poll()
434 pd->pd_flags |= PDF_SELECTED; in procdesc_poll()
436 PROCDESC_UNLOCK(pd); in procdesc_poll()
443 struct procdesc *pd; in procdesc_kqops_detach() local
445 pd = kn->kn_fp->f_data; in procdesc_kqops_detach()
446 knlist_remove(&pd->pd_selinfo.si_note, kn, 0); in procdesc_kqops_detach()
452 struct procdesc *pd; in procdesc_kqops_event() local
455 pd = kn->kn_fp->f_data; in procdesc_kqops_event()
461 event = pd->pd_flags & PDF_EXITED ? NOTE_EXIT : 0; in procdesc_kqops_event()
475 kn->kn_data = pd->pd_xstat; in procdesc_kqops_event()
493 struct procdesc *pd; in procdesc_kqfilter() local
495 pd = fp->f_data; in procdesc_kqfilter()
500 knlist_add(&pd->pd_selinfo.si_note, kn, 0); in procdesc_kqfilter()
510 struct procdesc *pd; in procdesc_stat() local
519 pd = fp->f_data; in procdesc_stat()
521 if (pd->pd_proc != NULL) { in procdesc_stat()
522 PROC_LOCK(pd->pd_proc); in procdesc_stat()
523 AUDIT_ARG_PROCESS(pd->pd_proc); in procdesc_stat()
526 pstart = pd->pd_proc->p_stats->p_start; in procdesc_stat()
533 if (pd->pd_proc->p_state != PRS_ZOMBIE) in procdesc_stat()
537 sb->st_uid = pd->pd_proc->p_ucred->cr_ruid; in procdesc_stat()
538 sb->st_gid = pd->pd_proc->p_ucred->cr_rgid; in procdesc_stat()
539 PROC_UNLOCK(pd->pd_proc); in procdesc_stat()