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()
212 struct procdesc *pd; in procdesc_new() local
214 pd = malloc(sizeof(*pd), M_PROCDESC, M_WAITOK | M_ZERO); in procdesc_new()
215 pd->pd_proc = p; in procdesc_new()
216 pd->pd_pid = p->p_pid; in procdesc_new()
217 p->p_procdesc = pd; in procdesc_new()
218 pd->pd_flags = 0; in procdesc_new()
220 pd->pd_flags |= PDF_DAEMON; in procdesc_new()
221 PROCDESC_LOCK_INIT(pd); in procdesc_new()
222 knlist_init_mtx(&pd->pd_selinfo.si_note, &pd->pd_lock); in procdesc_new()
228 refcount_init(&pd->pd_refcount, 2); in procdesc_new()
258 procdesc_free(struct procdesc *pd) in procdesc_free() argument
267 if (refcount_release(&pd->pd_refcount)) { in procdesc_free()
268 KASSERT(pd->pd_proc == NULL, in procdesc_free()
270 KASSERT((pd->pd_flags & PDF_CLOSED), in procdesc_free()
273 knlist_destroy(&pd->pd_selinfo.si_note); in procdesc_free()
274 PROCDESC_LOCK_DESTROY(pd); in procdesc_free()
275 free(pd, M_PROCDESC); in procdesc_free()
287 struct procdesc *pd; in procdesc_exit() local
293 pd = p->p_procdesc; in procdesc_exit()
295 PROCDESC_LOCK(pd); in procdesc_exit()
296 KASSERT((pd->pd_flags & PDF_CLOSED) == 0 || p->p_pptr == p->p_reaper, in procdesc_exit()
299 pd->pd_flags |= PDF_EXITED; in procdesc_exit()
300 pd->pd_xstat = KW_EXITCODE(p->p_xexit, p->p_xsig); in procdesc_exit()
308 if (pd->pd_flags & PDF_CLOSED) { in procdesc_exit()
309 PROCDESC_UNLOCK(pd); in procdesc_exit()
310 pd->pd_proc = NULL; in procdesc_exit()
312 procdesc_free(pd); in procdesc_exit()
315 if (pd->pd_flags & PDF_SELECTED) { in procdesc_exit()
316 pd->pd_flags &= ~PDF_SELECTED; in procdesc_exit()
317 selwakeup(&pd->pd_selinfo); in procdesc_exit()
319 KNOTE_LOCKED(&pd->pd_selinfo.si_note, NOTE_EXIT); in procdesc_exit()
320 PROCDESC_UNLOCK(pd); in procdesc_exit()
331 struct procdesc *pd; in procdesc_reap() local
336 pd = p->p_procdesc; in procdesc_reap()
337 pd->pd_proc = NULL; in procdesc_reap()
339 procdesc_free(pd); in procdesc_reap()
351 struct procdesc *pd; in procdesc_close() local
356 pd = fp->f_data; in procdesc_close()
361 PROCDESC_LOCK(pd); in procdesc_close()
362 pd->pd_flags |= PDF_CLOSED; in procdesc_close()
363 PROCDESC_UNLOCK(pd); in procdesc_close()
364 p = pd->pd_proc; in procdesc_close()
390 pd->pd_proc = NULL; in procdesc_close()
392 procdesc_free(pd); in procdesc_close()
407 if ((pd->pd_flags & PDF_DAEMON) == 0) in procdesc_close()
417 procdesc_free(pd); in procdesc_close()
425 struct procdesc *pd; in procdesc_poll() local
429 pd = fp->f_data; in procdesc_poll()
430 PROCDESC_LOCK(pd); in procdesc_poll()
431 if (pd->pd_flags & PDF_EXITED) in procdesc_poll()
434 selrecord(td, &pd->pd_selinfo); in procdesc_poll()
435 pd->pd_flags |= PDF_SELECTED; in procdesc_poll()
437 PROCDESC_UNLOCK(pd); in procdesc_poll()
444 struct procdesc *pd; in procdesc_kqops_detach() local
446 pd = kn->kn_fp->f_data; in procdesc_kqops_detach()
447 knlist_remove(&pd->pd_selinfo.si_note, kn, 0); in procdesc_kqops_detach()
453 struct procdesc *pd; in procdesc_kqops_event() local
456 pd = kn->kn_fp->f_data; in procdesc_kqops_event()
462 event = pd->pd_flags & PDF_EXITED ? NOTE_EXIT : 0; in procdesc_kqops_event()
476 kn->kn_data = pd->pd_xstat; in procdesc_kqops_event()
495 struct procdesc *pd; in procdesc_kqfilter() local
497 pd = fp->f_data; in procdesc_kqfilter()
502 knlist_add(&pd->pd_selinfo.si_note, kn, 0); in procdesc_kqfilter()
512 struct procdesc *pd; in procdesc_stat() local
521 pd = fp->f_data; in procdesc_stat()
523 if (pd->pd_proc != NULL) { in procdesc_stat()
524 PROC_LOCK(pd->pd_proc); in procdesc_stat()
525 AUDIT_ARG_PROCESS(pd->pd_proc); in procdesc_stat()
528 pstart = pd->pd_proc->p_stats->p_start; in procdesc_stat()
535 if (pd->pd_proc->p_state != PRS_ZOMBIE) in procdesc_stat()
539 sb->st_uid = pd->pd_proc->p_ucred->cr_ruid; in procdesc_stat()
540 sb->st_gid = pd->pd_proc->p_ucred->cr_rgid; in procdesc_stat()
541 PROC_UNLOCK(pd->pd_proc); in procdesc_stat()