| /netbsd/src/sys/arch/vax/vax/ |
| D | vm_machdep.c | 84 struct pcb * const pcb2 = lwp_getpcb(l2); in cpu_lwp_fork() local 97 memset(pcb2, 0, sizeof(*pcb2)); in cpu_lwp_fork() 112 pcb2->pcb_pm = NULL; in cpu_lwp_fork() 137 pcb2->pcb_onfault = NULL; in cpu_lwp_fork() 138 pcb2->AP = (uintptr_t)&cf->ca_argno; in cpu_lwp_fork() 139 pcb2->KSP = (uintptr_t)cf; in cpu_lwp_fork() 140 pcb2->FP = (uintptr_t)cf; in cpu_lwp_fork() 141 pcb2->PC = (uintptr_t)cpu_lwp_bootstrap + 2; in cpu_lwp_fork() 142 pcb2->PSL = PSL_HIGHIPL; in cpu_lwp_fork() 143 pcb2->ESP = (uintptr_t)&pcb2->pcb_onfault; in cpu_lwp_fork() [all …]
|
| /netbsd/src/sys/arch/x86/x86/ |
| D | vm_machdep.c | 134 struct pcb *pcb1, *pcb2; in cpu_lwp_fork() local 142 pcb2 = lwp_getpcb(l2); in cpu_lwp_fork() 145 memcpy(pcb2, pcb1, offsetof(struct pcb, pcb_savefpu)); in cpu_lwp_fork() 151 pcb2->pcb_dbregs = NULL; in cpu_lwp_fork() 152 pcb2->pcb_flags &= ~PCB_DBREGS; in cpu_lwp_fork() 155 pcb2->pcb_iopl = IOPL_KPL; in cpu_lwp_fork() 173 pcb2->pcb_rsp0 = (uv + USPACE - PAGE_SIZE + in cpu_lwp_fork() 175 KASSERT((pcb2->pcb_rsp0 & 0xF) == 0); in cpu_lwp_fork() 177 pcb2->pcb_rsp0 = (uv + USPACE - 16); in cpu_lwp_fork() 179 tf = (struct trapframe *)pcb2->pcb_rsp0 - 1; in cpu_lwp_fork() [all …]
|
| D | fpu.c | 479 struct pcb *pcb2 = lwp_getpcb(l2); in fpu_lwp_fork() local 489 memset(pcb2->pcb_savefpu, 0, x86_fpu_save_size); in fpu_lwp_fork() 494 memcpy(pcb2->pcb_savefpu, fpu_save, x86_fpu_save_size); in fpu_lwp_fork()
|
| /netbsd/src/sys/arch/alpha/alpha/ |
| D | vm_machdep.c | 97 struct pcb *pcb1, *pcb2; in cpu_lwp_fork() local 101 pcb2 = lwp_getpcb(l2); in cpu_lwp_fork() 111 l2->l_md.md_pcbpaddr = (void *)vtophys((vaddr_t)pcb2); in cpu_lwp_fork() 118 *pcb2 = *pcb1; in cpu_lwp_fork() 120 pcb2->pcb_hw.apcb_usp = in cpu_lwp_fork() 123 pcb2->pcb_hw.apcb_usp = alpha_pal_rdusp(); in cpu_lwp_fork() 130 pcb2->pcb_hw.apcb_ptbr = in cpu_lwp_fork() 132 pcb2->pcb_hw.apcb_asn = PMAP_ASN_KERNEL; in cpu_lwp_fork() 179 pcb2->pcb_hw.apcb_ksp = in cpu_lwp_fork() 181 pcb2->pcb_context[0] = in cpu_lwp_fork() [all …]
|
| /netbsd/src/sys/arch/usermode/dev/ |
| D | cpu.c | 432 struct pcb *pcb2 = lwp_getpcb(l2); in cpu_lwp_fork() local 444 memcpy(pcb2, pcb1, sizeof(struct pcb)); in cpu_lwp_fork() 447 if (thunk_getcontext(&pcb2->pcb_ucp)) in cpu_lwp_fork() 451 pcb2->pcb_ucp.uc_mcontext._mc_tlsbase = (intptr_t) l2->l_private; in cpu_lwp_fork() 452 pcb2->pcb_ucp.uc_flags |= _UC_TLSBASE; in cpu_lwp_fork() 455 pcb2->sys_stack_top = pcb2->sys_stack + TRAPSTACKSIZE; in cpu_lwp_fork() 458 pcb2->pcb_ucp.uc_stack.ss_sp = pcb2->sys_stack; in cpu_lwp_fork() 459 pcb2->pcb_ucp.uc_stack.ss_size = pcb2->sys_stack_top - pcb2->sys_stack; in cpu_lwp_fork() 460 pcb2->pcb_ucp.uc_link = &pcb2->pcb_userret_ucp; in cpu_lwp_fork() 462 thunk_sigemptyset(&pcb2->pcb_ucp.uc_sigmask); in cpu_lwp_fork() [all …]
|
| /netbsd/src/sys/arch/hppa/hppa/ |
| D | vm_machdep.c | 89 struct pcb *pcb1, *pcb2; in cpu_lwp_fork() local 97 pcb2 = lwp_getpcb(l2); in cpu_lwp_fork() 106 memcpy(pcb2, pcb1, sizeof(struct pcb)); in cpu_lwp_fork() 108 pcb2->pcb_fpregs = pool_get(&hppa_fppl, PR_WAITOK); in cpu_lwp_fork() 109 *pcb2->pcb_fpregs = *pcb1->pcb_fpregs; in cpu_lwp_fork() 112 pcb2->pcb_fpregs->fpr_regs[0] = in cpu_lwp_fork() 113 HPPA_FPU_FORK(pcb2->pcb_fpregs->fpr_regs[0]); in cpu_lwp_fork() 114 pcb2->pcb_fpregs->fpr_regs[1] = 0; in cpu_lwp_fork() 115 pcb2->pcb_fpregs->fpr_regs[2] = 0; in cpu_lwp_fork() 116 pcb2->pcb_fpregs->fpr_regs[3] = 0; in cpu_lwp_fork() [all …]
|
| /netbsd/src/sys/arch/m68k/m68k/ |
| D | vm_machdep.c | 88 struct pcb *pcb1, *pcb2; in cpu_lwp_fork() local 93 pcb2 = lwp_getpcb(l2); in cpu_lwp_fork() 105 *pcb2 = *pcb1; in cpu_lwp_fork() 122 pcb2->pcb_regs[6] = (int)func; /* A2 */ in cpu_lwp_fork() 123 pcb2->pcb_regs[7] = (int)arg; /* A3 */ in cpu_lwp_fork() 124 pcb2->pcb_regs[8] = (int)l2; /* A4 */ in cpu_lwp_fork() 125 pcb2->pcb_regs[11] = (int)sf; /* SSP */ in cpu_lwp_fork() 126 pcb2->pcb_ps = PSL_LOWIPL; /* start kthreads at IPL 0 */ in cpu_lwp_fork()
|
| /netbsd/src/sys/arch/powerpc/powerpc/ |
| D | vm_machdep.c | 96 struct pcb * const pcb2 = lwp_getpcb(l2); in cpu_lwp_fork() local 102 *pcb2 = *pcb1; in cpu_lwp_fork() 104 pcb2->pcb_pm = l2->l_proc->p_vmspace->vm_map.pmap; in cpu_lwp_fork() 149 pcb2->pcb_sp = (register_t)sf; in cpu_lwp_fork() 150 pcb2->pcb_kmapsr = 0; in cpu_lwp_fork() 151 pcb2->pcb_umapsr = 0; in cpu_lwp_fork() 153 pcb2->pcb_flags = PSL_FE_DFLT; in cpu_lwp_fork() 170 pa = vtophys((vaddr_t)pcb2->pcb_pm); in cpu_lwp_fork() 171 for (i = 0; i < sizeof(*pcb2->pcb_pm); i += dcache_line_size) { in cpu_lwp_fork() 176 pa = vtophys((vaddr_t)pcb2); in cpu_lwp_fork() [all …]
|
| /netbsd/src/sys/arch/mips/mips/ |
| D | vm_machdep.c | 91 struct pcb * const pcb2 = lwp_getpcb(l2); in cpu_lwp_fork() local 101 *pcb2 = *pcb1; in cpu_lwp_fork() 144 pcb2->pcb_context.val[_L_S0] = (intptr_t)func; /* S0 */ in cpu_lwp_fork() 145 pcb2->pcb_context.val[_L_S1] = (intptr_t)arg; /* S1 */ in cpu_lwp_fork() 146 pcb2->pcb_context.val[MIPS_CURLWP_LABEL] = (intptr_t)l2; /* T8 */ in cpu_lwp_fork() 147 pcb2->pcb_context.val[_L_SP] = (intptr_t)tf; /* SP */ in cpu_lwp_fork() 148 pcb2->pcb_context.val[_L_RA] = in cpu_lwp_fork() 152 KASSERT(pcb2->pcb_context.val[_L_SR] & MIPS_SR_KX); in cpu_lwp_fork() 155 KASSERTMSG(pcb2->pcb_context.val[_L_SR] & MIPS_SR_INT_IE, in cpu_lwp_fork() 158 pcb2->pcb_context.val[_L_SR]); in cpu_lwp_fork()
|
| /netbsd/src/sys/arch/ia64/ia64/ |
| D | vm_machdep.c | 145 struct pcb *pcb2 = lwp_getpcb(l2); in cpu_lwp_fork() local 173 *pcb2 = *pcb1; in cpu_lwp_fork() 214 pcb2->pcb_special.bspstore = ua2 + UAREA_BSPSTORE_OFFSET + ndirty; in cpu_lwp_fork() 215 pcb2->pcb_special.pfs = 0; in cpu_lwp_fork() 216 pcb2->pcb_special.sp = ua2 + UAREA_SP_OFFSET; in cpu_lwp_fork() 217 pcb2->pcb_special.rp = (unsigned long)FDESC_FUNC(lwp_trampoline); in cpu_lwp_fork()
|
| /netbsd/src/sys/arch/arm/arm32/ |
| D | vm_machdep.c | 112 struct pcb * const pcb2 = lwp_getpcb(l2); in cpu_lwp_fork() local 119 *pcb2 = *pcb1; in cpu_lwp_fork() 126 pcb2->pcb_vfp.vfp_fpexc &= ~VFP_FPEXC_EN; in cpu_lwp_fork() 134 pcb2->pcb_ksp = uv + USPACE_SVC_STACK_TOP; in cpu_lwp_fork() 146 pcb2, l2->l_lid, l2->l_proc->p_vmspace->vm_map.pmap); in cpu_lwp_fork() 149 struct trapframe *tf = (struct trapframe *)pcb2->pcb_ksp - 1; in cpu_lwp_fork() 166 pcb2->pcb_ksp = (u_int)sf; in cpu_lwp_fork()
|