Lines Matching refs:pd

144 	struct procdesc *pd;
155 pd = fp->f_data;
157 if (pd->pd_proc != NULL) {
158 *p = pd->pd_proc;
175 struct procdesc *pd;
180 pd = fp_procdesc->f_data;
181 return (pd->pd_pid);
233 struct procdesc *pd;
235 pd = uma_zalloc(procdesc_zone, M_WAITOK | M_ZERO);
236 pd->pd_proc = p;
237 pd->pd_pid = p->p_pid;
238 p->p_procdesc = pd;
239 pd->pd_flags = 0;
241 pd->pd_flags |= PDF_DAEMON;
242 PROCDESC_LOCK_INIT(pd);
248 refcount_init(&pd->pd_refcount, 2);
262 procdesc_free(struct procdesc *pd)
271 if (refcount_release(&pd->pd_refcount)) {
272 KASSERT(pd->pd_proc == NULL,
274 KASSERT((pd->pd_flags & PDF_CLOSED),
277 PROCDESC_LOCK_DESTROY(pd);
278 uma_zfree(procdesc_zone, pd);
290 struct procdesc *pd;
296 pd = p->p_procdesc;
298 PROCDESC_LOCK(pd);
299 KASSERT((pd->pd_flags & PDF_CLOSED) == 0 || p->p_pptr == initproc,
302 pd->pd_flags |= PDF_EXITED;
310 if (pd->pd_flags & PDF_CLOSED) {
311 PROCDESC_UNLOCK(pd);
312 pd->pd_proc = NULL;
314 procdesc_free(pd);
317 if (pd->pd_flags & PDF_SELECTED) {
318 pd->pd_flags &= ~PDF_SELECTED;
319 selwakeup(&pd->pd_selinfo);
321 PROCDESC_UNLOCK(pd);
332 struct procdesc *pd;
337 pd = p->p_procdesc;
338 pd->pd_proc = NULL;
340 procdesc_free(pd);
351 struct procdesc *pd;
356 pd = fp->f_data;
361 PROCDESC_LOCK(pd);
362 pd->pd_flags |= PDF_CLOSED;
363 PROCDESC_UNLOCK(pd);
364 p = pd->pd_proc;
390 pd->pd_proc = NULL;
392 procdesc_free(pd);
400 if ((pd->pd_flags & PDF_DAEMON) == 0)
409 procdesc_free(pd);
449 struct procdesc *pd;
453 pd = fp->f_data;
454 PROCDESC_LOCK(pd);
455 if (pd->pd_flags & PDF_EXITED)
458 selrecord(td, &pd->pd_selinfo);
459 pd->pd_flags |= PDF_SELECTED;
461 PROCDESC_UNLOCK(pd);
476 struct procdesc *pd;
485 pd = fp->f_data;
487 if (pd->pd_proc != NULL) {
488 PROC_LOCK(pd->pd_proc);
491 pstart = pd->pd_proc->p_stats->p_start;
497 if (pd->pd_proc->p_state != PRS_ZOMBIE)
501 sb->st_uid = pd->pd_proc->p_ucred->cr_ruid;
502 sb->st_gid = pd->pd_proc->p_ucred->cr_rgid;
503 PROC_UNLOCK(pd->pd_proc);