Lines Matching refs:pd

127 	struct procdesc *pd;  in procdesc_find()  local
138 pd = fp->f_data; in procdesc_find()
140 if (pd->pd_proc != NULL) { in procdesc_find()
141 *p = pd->pd_proc; in procdesc_find()
158 struct procdesc *pd; in procdesc_pid() local
163 pd = fp_procdesc->f_data; in procdesc_pid()
164 return (pd->pd_pid); in procdesc_pid()
214 struct procdesc *pd; in procdesc_new() local
216 pd = malloc(sizeof(*pd), M_PROCDESC, M_WAITOK | M_ZERO); in procdesc_new()
217 pd->pd_proc = p; in procdesc_new()
218 pd->pd_pid = p->p_pid; in procdesc_new()
219 p->p_procdesc = pd; in procdesc_new()
220 pd->pd_flags = 0; in procdesc_new()
222 pd->pd_flags |= PDF_DAEMON; in procdesc_new()
223 PROCDESC_LOCK_INIT(pd); in procdesc_new()
224 knlist_init_mtx(&pd->pd_selinfo.si_note, &pd->pd_lock); in procdesc_new()
230 refcount_init(&pd->pd_refcount, 2); in procdesc_new()
260 procdesc_free(struct procdesc *pd) in procdesc_free() argument
269 if (refcount_release(&pd->pd_refcount)) { in procdesc_free()
270 KASSERT(pd->pd_proc == NULL, in procdesc_free()
272 KASSERT((pd->pd_flags & PDF_CLOSED), in procdesc_free()
275 knlist_destroy(&pd->pd_selinfo.si_note); in procdesc_free()
276 PROCDESC_LOCK_DESTROY(pd); in procdesc_free()
277 free(pd, M_PROCDESC); in procdesc_free()
289 struct procdesc *pd; in procdesc_exit() local
295 pd = p->p_procdesc; in procdesc_exit()
297 PROCDESC_LOCK(pd); in procdesc_exit()
298 KASSERT((pd->pd_flags & PDF_CLOSED) == 0 || p->p_pptr == p->p_reaper, in procdesc_exit()
301 pd->pd_flags |= PDF_EXITED; in procdesc_exit()
302 pd->pd_xstat = KW_EXITCODE(p->p_xexit, p->p_xsig); in procdesc_exit()
310 if (pd->pd_flags & PDF_CLOSED) { in procdesc_exit()
311 PROCDESC_UNLOCK(pd); in procdesc_exit()
312 pd->pd_proc = NULL; in procdesc_exit()
314 procdesc_free(pd); in procdesc_exit()
317 if (pd->pd_flags & PDF_SELECTED) { in procdesc_exit()
318 pd->pd_flags &= ~PDF_SELECTED; in procdesc_exit()
319 selwakeup(&pd->pd_selinfo); in procdesc_exit()
321 KNOTE_LOCKED(&pd->pd_selinfo.si_note, NOTE_EXIT); in procdesc_exit()
322 PROCDESC_UNLOCK(pd); in procdesc_exit()
333 struct procdesc *pd; in procdesc_reap() local
338 pd = p->p_procdesc; in procdesc_reap()
339 pd->pd_proc = NULL; in procdesc_reap()
341 procdesc_free(pd); in procdesc_reap()
353 struct procdesc *pd; in procdesc_close() local
358 pd = fp->f_data; in procdesc_close()
363 PROCDESC_LOCK(pd); in procdesc_close()
364 pd->pd_flags |= PDF_CLOSED; in procdesc_close()
365 PROCDESC_UNLOCK(pd); in procdesc_close()
366 p = pd->pd_proc; in procdesc_close()
392 pd->pd_proc = NULL; in procdesc_close()
394 procdesc_free(pd); in procdesc_close()
409 if ((pd->pd_flags & PDF_DAEMON) == 0) in procdesc_close()
419 procdesc_free(pd); in procdesc_close()
427 struct procdesc *pd; in procdesc_poll() local
431 pd = fp->f_data; in procdesc_poll()
432 PROCDESC_LOCK(pd); in procdesc_poll()
433 if (pd->pd_flags & PDF_EXITED) in procdesc_poll()
436 selrecord(td, &pd->pd_selinfo); in procdesc_poll()
437 pd->pd_flags |= PDF_SELECTED; in procdesc_poll()
439 PROCDESC_UNLOCK(pd); in procdesc_poll()
446 struct procdesc *pd; in procdesc_kqops_detach() local
448 pd = kn->kn_fp->f_data; in procdesc_kqops_detach()
449 knlist_remove(&pd->pd_selinfo.si_note, kn, 0); in procdesc_kqops_detach()
455 struct procdesc *pd; in procdesc_kqops_event() local
458 pd = kn->kn_fp->f_data; in procdesc_kqops_event()
464 event = pd->pd_flags & PDF_EXITED ? NOTE_EXIT : 0; in procdesc_kqops_event()
478 kn->kn_data = pd->pd_xstat; in procdesc_kqops_event()
496 struct procdesc *pd; in procdesc_kqfilter() local
498 pd = fp->f_data; in procdesc_kqfilter()
503 knlist_add(&pd->pd_selinfo.si_note, kn, 0); in procdesc_kqfilter()
513 struct procdesc *pd; in procdesc_stat() local
522 pd = fp->f_data; in procdesc_stat()
524 if (pd->pd_proc != NULL) { in procdesc_stat()
525 PROC_LOCK(pd->pd_proc); in procdesc_stat()
526 AUDIT_ARG_PROCESS(pd->pd_proc); in procdesc_stat()
529 pstart = pd->pd_proc->p_stats->p_start; in procdesc_stat()
536 if (pd->pd_proc->p_state != PRS_ZOMBIE) in procdesc_stat()
540 sb->st_uid = pd->pd_proc->p_ucred->cr_ruid; in procdesc_stat()
541 sb->st_gid = pd->pd_proc->p_ucred->cr_rgid; in procdesc_stat()
542 PROC_UNLOCK(pd->pd_proc); in procdesc_stat()