Lines Matching refs:cp

132 disown_proc(proc_t *pp, proc_t *cp)  in disown_proc()  argument
139 while (*orphpp != cp) in disown_proc()
141 *orphpp = cp->p_nextorph; in disown_proc()
143 if (pp->p_child == cp) in disown_proc()
144 pp->p_child = cp->p_sibling; in disown_proc()
145 if (cp->p_sibling) in disown_proc()
146 cp->p_sibling->p_psibling = cp->p_psibling; in disown_proc()
147 if (cp->p_psibling) in disown_proc()
148 cp->p_psibling->p_sibling = cp->p_sibling; in disown_proc()
157 proc_t *cp; in cfork() local
237 if (getproc(&cp, 0, GETPROC_USER) < 0) { in cfork()
246 TRACE_2(TR_FAC_PROC, TR_PROC_FORK, "proc_fork:cp %p p %p", cp, p); in cfork()
266 cp->p_as = as; in cfork()
267 cp->p_flag |= SVFORK; in cfork()
273 cp->p_segacct = p->p_segacct; in cfork()
287 error = as_dup(p->p_as, cp); in cfork()
291 fork_fail(cp); in cfork()
293 disown_proc(p, cp); in cfork()
294 mutex_enter(&cp->p_lock); in cfork()
295 tk = cp->p_task; in cfork()
296 task_detach(cp); in cfork()
297 ASSERT(cp->p_pool->pool_ref > 0); in cfork()
298 atomic_dec_32(&cp->p_pool->pool_ref); in cfork()
299 mutex_exit(&cp->p_lock); in cfork()
300 pid_exit(cp, tk); in cfork()
324 dtrace_fasttrap_fork(p, cp); in cfork()
331 shmfork(p, cp); in cfork()
340 (*dtrace_helpers_fork)(p, cp); in cfork()
360 e.rcep_p.proc = cp; in cfork()
362 cp->p_rctls = rctl_set_dup(p->p_rctls, p, cp, &e, dup_set, dup_gp, in cfork()
372 cp->p_lwpdir_sz = 2; in cfork()
374 cp->p_lwpdir_sz = p->p_lwpdir_sz; in cfork()
375 cp->p_lwpdir = cp->p_lwpfree = ldp = in cfork()
376 kmem_zalloc(cp->p_lwpdir_sz * sizeof (lwpdir_t), KM_SLEEP); in cfork()
377 for (i = 1; i < cp->p_lwpdir_sz; i++, ldp++) in cfork()
379 cp->p_tidhash_sz = (cp->p_lwpdir_sz + 2) / 2; in cfork()
380 cp->p_tidhash = in cfork()
381 kmem_zalloc(cp->p_tidhash_sz * sizeof (tidhash_t), KM_SLEEP); in cfork()
388 klgrpset_clear(cp->p_lgrpset); in cfork()
390 clone = forklwp(ttolwp(curthread), cp, curthread->t_tid); in cfork()
411 clwp = forklwp(ttolwp(t), cp, t->t_tid); in cfork()
437 lwp_hash_in(cp, clep, in cfork()
438 cp->p_tidhash, cp->p_tidhash_sz, 0); in cfork()
449 if (contract_process_fork(NULL, cp, p, B_TRUE) == NULL) { in cfork()
458 cp->p_lwpid = p->p_lwpid; in cfork()
460 cp->p_lwpdaemon = p->p_lwpdaemon; in cfork()
461 cp->p_zombcnt = p->p_zombcnt; in cfork()
466 cp->p_flag |= p->p_flag & SLWPWRAP; in cfork()
470 corectl_path_hold(cp->p_corefile = p->p_corefile); in cfork()
471 corectl_content_hold(cp->p_content = p->p_content); in cfork()
478 forkpctx(p, cp); in cfork()
481 utrap_dup(p, cp); in cfork()
488 if (PTOU(cp)->u_systrap && in cfork()
489 prismember(&PTOU(cp)->u_exitmask, curthread->t_sysnum)) { in cfork()
490 mutex_enter(&cp->p_lock); in cfork()
491 t = cp->p_tlist; in cfork()
495 } while ((t = t->t_forw) != cp->p_tlist); in cfork()
496 mutex_exit(&cp->p_lock); in cfork()
521 r.r_val1 = (int)cp->p_pid; in cfork()
535 mutex_enter(&cp->p_lock); in cfork()
541 cp->p_pidflag |= CLDNOSIGCHLD; in cfork()
543 cp->p_pidflag |= CLDWAITPID; in cfork()
549 pgjoin(cp, p->p_pgidp); in cfork()
550 cp->p_stat = SRUN; in cfork()
554 t = cp->p_tlist; in cfork()
570 } while ((t = t->t_forw) != cp->p_tlist); in cfork()
571 mutex_exit(&cp->p_lock); in cfork()
578 DTRACE_PROC1(create, proc_t *, cp); in cfork()
585 mutex_enter(&cp->p_lock); in cfork()
587 sigdefault(cp); in cfork()
588 continuelwps(cp); in cfork()
589 mutex_exit(&cp->p_lock); in cfork()
592 DTRACE_PROC1(create, proc_t *, cp); in cfork()
598 CL_FORKRET(curthread, cp->p_tlist); in cfork()
619 if (cp->p_segacct) in cfork()
620 shmexit(cp); in cfork()
621 as = cp->p_as; in cfork()
622 cp->p_as = &kas; in cfork()
626 if (cp->p_lwpdir) { in cfork()
627 for (i = 0, ldp = cp->p_lwpdir; i < cp->p_lwpdir_sz; i++, ldp++) in cfork()
630 kmem_free(cp->p_lwpdir, in cfork()
631 cp->p_lwpdir_sz * sizeof (*cp->p_lwpdir)); in cfork()
633 cp->p_lwpdir = NULL; in cfork()
634 cp->p_lwpfree = NULL; in cfork()
635 cp->p_lwpdir_sz = 0; in cfork()
637 if (cp->p_tidhash) in cfork()
638 kmem_free(cp->p_tidhash, in cfork()
639 cp->p_tidhash_sz * sizeof (*cp->p_tidhash)); in cfork()
640 cp->p_tidhash = NULL; in cfork()
641 cp->p_tidhash_sz = 0; in cfork()
643 forklwp_fail(cp); in cfork()
644 fork_fail(cp); in cfork()
645 if (cp->p_dtrace_helpers != NULL) { in cfork()
647 (*dtrace_helpers_cleanup)(cp); in cfork()
649 rctl_set_free(cp->p_rctls); in cfork()
655 mutex_enter(&cp->p_lock); in cfork()
656 tk = cp->p_task; in cfork()
657 task_detach(cp); in cfork()
658 ASSERT(cp->p_pool->pool_ref > 0); in cfork()
659 atomic_dec_32(&cp->p_pool->pool_ref); in cfork()
660 mutex_exit(&cp->p_lock); in cfork()
662 disown_proc(p, cp); in cfork()
663 pid_exit(cp, tk); in cfork()
681 fork_fail(proc_t *cp) in fork_fail() argument
683 uf_info_t *fip = P_FINFO(cp); in fork_fail()
686 sigdelq(cp, NULL, 0); in fork_fail()
689 upcount_dec(crgetruid(cp->p_cred), crgetzoneid(cp->p_cred)); in fork_fail()
695 crfree(cp->p_cred); in fork_fail()
702 if (cp->p_exec) in fork_fail()
703 VN_RELE(cp->p_exec); in fork_fail()
704 if (cp->p_execdir) in fork_fail()
705 VN_RELE(cp->p_execdir); in fork_fail()
708 if (PROC_IS_BRANDED(cp)) { in fork_fail()
709 brand_clearbrand(cp, B_TRUE); in fork_fail()
944 proc_t *pp, *cp; in getproc() local
995 cp = kmem_cache_alloc(process_cache, KM_SLEEP); in getproc()
996 bzero(cp, sizeof (proc_t)); in getproc()
1001 mutex_init(&cp->p_splock, NULL, MUTEX_DEFAULT, NULL); in getproc()
1002 mutex_init(&cp->p_crlock, NULL, MUTEX_DEFAULT, NULL); in getproc()
1003 mutex_init(&cp->p_pflock, NULL, MUTEX_DEFAULT, NULL); in getproc()
1005 mutex_init(&cp->p_ldtlock, NULL, MUTEX_DEFAULT, NULL); in getproc()
1007 mutex_init(&cp->p_maplock, NULL, MUTEX_DEFAULT, NULL); in getproc()
1008 cp->p_stat = SIDL; in getproc()
1009 cp->p_mstart = gethrtime(); in getproc()
1010 cp->p_as = &kas; in getproc()
1016 cp->p_zone = pp->p_zone; in getproc()
1017 cp->p_t1_lgrpid = LGRP_NONE; in getproc()
1018 cp->p_tr_lgrpid = LGRP_NONE; in getproc()
1020 if ((newpid = pid_allocate(cp, pid, PID_ALLOC_PROC)) == -1) { in getproc()
1029 cp->p_exec = pp->p_exec; in getproc()
1030 cp->p_execdir = pp->p_execdir; in getproc()
1033 if (cp->p_exec) { in getproc()
1034 VN_HOLD(cp->p_exec); in getproc()
1040 if (VOP_OPEN(&cp->p_exec, FREAD, CRED(), NULL) != 0) { in getproc()
1041 VN_RELE(cp->p_exec); in getproc()
1042 cp->p_exec = NULLVP; in getproc()
1043 cp->p_execdir = NULLVP; in getproc()
1047 if (cp->p_execdir) in getproc()
1048 VN_HOLD(cp->p_execdir); in getproc()
1078 cp->p_next = practive; in getproc()
1079 practive->p_prev = cp; in getproc()
1080 practive = cp; in getproc()
1082 cp->p_ignore = pp->p_ignore; in getproc()
1083 cp->p_siginfo = pp->p_siginfo; in getproc()
1084 cp->p_flag = pp->p_flag & (SJCTL|SNOWAIT|SNOCD); in getproc()
1085 cp->p_sessp = pp->p_sessp; in getproc()
1087 cp->p_brand = pp->p_brand; in getproc()
1089 BROP(pp)->b_copy_procdata(cp, pp); in getproc()
1090 cp->p_bssbase = pp->p_bssbase; in getproc()
1091 cp->p_brkbase = pp->p_brkbase; in getproc()
1092 cp->p_brksize = pp->p_brksize; in getproc()
1093 cp->p_brkpageszc = pp->p_brkpageszc; in getproc()
1094 cp->p_stksize = pp->p_stksize; in getproc()
1095 cp->p_stkpageszc = pp->p_stkpageszc; in getproc()
1096 cp->p_stkprot = pp->p_stkprot; in getproc()
1097 cp->p_datprot = pp->p_datprot; in getproc()
1098 cp->p_usrstack = pp->p_usrstack; in getproc()
1099 cp->p_model = pp->p_model; in getproc()
1100 cp->p_ppid = pp->p_pid; in getproc()
1101 cp->p_ancpid = pp->p_pid; in getproc()
1102 cp->p_portcnt = pp->p_portcnt; in getproc()
1107 cp->p_secflags = pp->p_secflags; in getproc()
1112 avl_create(&cp->p_warea, wa_compare, sizeof (struct watched_area), in getproc()
1118 cp->p_stk_ctl = pp->p_stk_ctl; in getproc()
1119 cp->p_fsz_ctl = pp->p_fsz_ctl; in getproc()
1120 cp->p_vmem_ctl = pp->p_vmem_ctl; in getproc()
1121 cp->p_fno_ctl = pp->p_fno_ctl; in getproc()
1128 cp->p_sibling = pp->p_child; in getproc()
1130 pp->p_child->p_psibling = cp; in getproc()
1132 cp->p_parent = pp; in getproc()
1133 pp->p_child = cp; in getproc()
1135 cp->p_child_ns = NULL; in getproc()
1136 cp->p_sibling_ns = NULL; in getproc()
1138 cp->p_nextorph = pp->p_orphan; in getproc()
1139 cp->p_nextofkin = pp; in getproc()
1140 pp->p_orphan = cp; in getproc()
1145 cp->p_prof = pp->p_prof; in getproc()
1146 cp->p_rprof_cyclic = CYCLIC_NONE; in getproc()
1154 cp->p_pool = pool_default; in getproc()
1155 cp->p_flag |= SSYS; in getproc()
1157 cp->p_pool = pp->p_pool; in getproc()
1159 atomic_inc_32(&cp->p_pool->pool_ref); in getproc()
1166 mutex_enter(&cp->p_lock); in getproc()
1168 task_attach(task0p, cp); in getproc()
1170 task_attach(pp->p_task, cp); in getproc()
1171 mutex_exit(&cp->p_lock); in getproc()
1174 avl_create(&cp->p_ct_held, contract_compar, sizeof (contract_t), in getproc()
1181 audit_newproc(cp); in getproc()
1183 crhold(cp->p_cred = cr); in getproc()
1208 uarea = PTOU(cp); in getproc()
1210 flist_fork(P_FINFO(pp), P_FINFO(cp)); in getproc()
1221 cp->p_proc_flag |= pp->p_proc_flag & (P_PR_TRACE|P_PR_FORK); in getproc()
1222 cp->p_sigmask = pp->p_sigmask; in getproc()
1223 cp->p_fltmask = pp->p_fltmask; in getproc()
1225 sigemptyset(&cp->p_sigmask); in getproc()
1226 premptyset(&cp->p_fltmask); in getproc()
1235 cp->p_flag |= pp->p_flag & (SMSFORK|SMSACCT); in getproc()
1240 cp->p_fixalignment = pp->p_fixalignment; in getproc()
1242 *cpp = cp; in getproc()
1248 mutex_destroy(&cp->p_crlock); in getproc()
1249 mutex_destroy(&cp->p_pflock); in getproc()
1251 mutex_destroy(&cp->p_ldtlock); in getproc()
1254 proc_entry_free(cp->p_pidp); in getproc()
1255 (void) pid_rele(cp->p_pidp); in getproc()
1257 kmem_cache_free(process_cache, cp); in getproc()
1413 proc_t *cp; in vfwait() local
1420 cp = prfind(pid); in vfwait()
1421 if (cp == NULL || cp->p_parent != pp) { in vfwait()
1433 mutex_enter(&cp->p_lock); in vfwait()
1435 if (!(cp->p_flag & SVFORK)) { in vfwait()
1439 mutex_exit(&cp->p_lock); in vfwait()
1443 mutex_exit(&cp->p_lock); in vfwait()