Home | History | Annotate | Download | only in kern

Lines Matching refs:p2

259 	struct proc	*p1, *p2, *parent;
321 p2 = proc_alloc();
322 if (p2 == NULL) {
343 memset(&p2->p_startzero, 0,
344 (unsigned) ((char *)&p2->p_endzero - (char *)&p2->p_startzero));
345 memcpy(&p2->p_startcopy, &p1->p_startcopy,
346 (unsigned) ((char *)&p2->p_endcopy - (char *)&p2->p_startcopy));
348 TAILQ_INIT(&p2->p_sigpend.sp_info);
350 LIST_INIT(&p2->p_lwps);
351 LIST_INIT(&p2->p_sigwaiters);
361 p2->p_flag =
363 p2->p_emul = p1->p_emul;
364 p2->p_execsw = p1->p_execsw;
372 p2->p_flag |= (PK_SYSTEM | PK_NOCLDWAIT);
375 mutex_init(&p2->p_stmutex, MUTEX_DEFAULT, IPL_HIGH);
376 mutex_init(&p2->p_auxlock, MUTEX_DEFAULT, IPL_NONE);
377 rw_init(&p2->p_reflock);
378 cv_init(&p2->p_waitcv, "wait");
379 cv_init(&p2->p_lwpcv, "lwpwait");
386 p2->p_lock = p1->p_lock;
389 p2->p_lock = mutex_obj_alloc(MUTEX_DEFAULT, IPL_NONE);
391 kauth_proc_fork(p1, p2);
393 p2->p_raslist = NULL;
395 ras_fork(p1, p2);
399 p2->p_textvp = p1->p_textvp;
400 if (p2->p_textvp)
401 vref(p2->p_textvp);
403 p2->p_path = kmem_strdupsize(p1->p_path, NULL, KM_SLEEP);
405 p2->p_path = NULL;
408 fd_share(p2);
410 p2->p_fd = fd_init(NULL);
412 p2->p_fd = fd_copy();
415 p2->p_mqueue_cnt = p1->p_mqueue_cnt;
418 cwdshare(p2);
420 p2->p_cwdi = cwdinit();
429 p2->p_limit = p1_lim;
431 p2->p_limit = lim_copy(p1_lim);
436 p2->p_lflag = PL_PPWAIT;
438 p2->p_vforklwp = l1;
440 p2->p_lflag = 0;
443 p2->p_sflag = 0;
444 p2->p_slflag = 0;
446 p2->p_pptr = parent;
447 p2->p_ppid = parent->p_pid;
448 LIST_INIT(&p2->p_children);
450 p2->p_aio = NULL;
459 p2->p_traceflag = p1->p_traceflag;
460 if ((p2->p_tracep = p1->p_tracep) != NULL)
461 ktradref(p2);
469 p2->p_sigacts = sigactsinit(p1, flags & FORK_SHARESIGS);
471 p2->p_sflag |=
473 sched_proc_fork(p1, p2);
476 p2->p_stflag = p1->p_stflag;
482 p2->p_stats = pstatscopy(p1->p_stats);
487 uvm_proc_fork(p1, p2, (flags & FORK_SHAREVM) ? true : false);
493 lwp_create(l1, p2, uaddr, (flags & FORK_PPWAIT) ? LWP_VFORK : 0,
508 if (p2->p_emul->e_proc_fork)
509 (*p2->p_emul->e_proc_fork)(p2, l1, flags);
515 doforkhooks(p2, p1);
517 SDT_PROBE(proc, kernel, , create, p2, p1, flags, 0, 0);
526 p2->p_lflag |= PL_CONTROLT;
528 LIST_INSERT_HEAD(&parent->p_children, p2, p_sibling);
529 p2->p_exitsig = exitsig; /* signal for parent on exit */
535 proc_changeparent(p2, p1->p_pptr);
536 SET(p2->p_slflag, PSL_TRACEDCHILD);
539 p2->p_oppid = p1->p_pid; /* Remember the original parent id. */
541 LIST_INSERT_AFTER(p1, p2, p_pglist);
542 LIST_INSERT_HEAD(&allproc, p2, p_list);
544 p2->p_trace_enabled = trace_is_enabled(p2);
546 (*p2->p_emul->e_syscall_intern)(p2);
561 p2->p_traceflag |= KTRFAC_TRC_EMUL;
568 knote_proc_fork(p1, p2);
576 mutex_enter(p2->p_lock);
581 if ((p2->p_stflag & PST_PROFIL) != 0) {
582 mutex_spin_enter(&p2->p_stmutex);
583 startprofclock(p2);
584 mutex_spin_exit(&p2->p_stmutex);
587 getmicrotime(&p2->p_stats->p_start);
588 p2->p_acflag = AFORK;
590 KASSERT(p2->p_nrlwps == 1);
592 if (p2->p_sflag & PS_STOPFORK) {
593 p2->p_nrlwps = 0;
594 p2->p_stat = SSTOP;
595 p2->p_waited = 0;
601 p2->p_nrlwps = 1;
602 p2->p_stat = SACTIVE;
612 retval[0] = p2->p_pid;
616 mutex_exit(p2->p_lock);