/arch/microblaze/kernel/ |
D | process.c | 60 struct pt_regs *childregs = task_pt_regs(p); in copy_thread() local 66 memset(childregs, 0, sizeof(struct pt_regs)); in copy_thread() 68 ti->cpu_context.r1 = (unsigned long)childregs; in copy_thread() 71 childregs->pt_mode = 1; in copy_thread() 72 local_save_flags(childregs->msr); in copy_thread() 74 ti->cpu_context.msr = childregs->msr & ~MSR_IE; in copy_thread() 79 *childregs = *current_pt_regs(); in copy_thread() 81 childregs->r1 = usp; in copy_thread() 84 ti->cpu_context.r1 = (unsigned long)childregs; in copy_thread() 86 ti->cpu_context.msr = (unsigned long)childregs->msr; in copy_thread() [all …]
|
/arch/c6x/kernel/ |
D | process.c | 111 struct pt_regs *childregs; in copy_thread() local 113 childregs = task_pt_regs(p); in copy_thread() 117 memset(childregs, 0, sizeof(struct pt_regs)); in copy_thread() 118 childregs->sp = (unsigned long)(childregs + 1); in copy_thread() 120 childregs->a0 = usp; /* function */ in copy_thread() 121 childregs->a1 = ustk_size; /* argument */ in copy_thread() 124 *childregs = *current_pt_regs(); in copy_thread() 126 childregs->sp = usp; in copy_thread() 131 p->thread.usp = childregs->sp; in copy_thread() 132 thread_saved_ksp(p) = (unsigned long)childregs - 8; in copy_thread() [all …]
|
/arch/hexagon/kernel/ |
D | process.c | 58 struct pt_regs *childregs; in copy_thread() local 61 childregs = (struct pt_regs *) (((unsigned long) ti + THREAD_SIZE) - in copy_thread() 62 sizeof(*childregs)); in copy_thread() 64 ti->regs = childregs; in copy_thread() 72 ss = (struct hexagon_switch_stack *) ((unsigned long) childregs - in copy_thread() 77 memset(childregs, 0, sizeof(struct pt_regs)); in copy_thread() 81 pt_set_kmode(childregs); in copy_thread() 84 memcpy(childregs, current_pt_regs(), sizeof(*childregs)); in copy_thread() 88 pt_set_rte_sp(childregs, usp); in copy_thread() 91 childregs->r00 = 0; in copy_thread() [all …]
|
/arch/xtensa/kernel/ |
D | process.c | 209 struct pt_regs *childregs = task_pt_regs(p); in copy_thread_tls() local 216 SPILL_SLOT(childregs, 1) = (unsigned long)childregs; in copy_thread_tls() 217 SPILL_SLOT(childregs, 0) = 0; in copy_thread_tls() 219 p->thread.sp = (unsigned long)childregs; in copy_thread_tls() 233 *childregs = *regs; in copy_thread_tls() 234 childregs->areg[1] = usp; in copy_thread_tls() 235 childregs->areg[2] = 0; in copy_thread_tls() 252 int len = childregs->wmask & ~0xf; in copy_thread_tls() 259 childregs->wmask = 1; in copy_thread_tls() 260 childregs->windowstart = 1; in copy_thread_tls() [all …]
|
/arch/h8300/kernel/ |
D | process.c | 113 struct pt_regs *childregs; in copy_thread() local 115 childregs = (struct pt_regs *) (THREAD_SIZE + task_stack_page(p)) - 1; in copy_thread() 118 memset(childregs, 0, sizeof(struct pt_regs)); in copy_thread() 119 childregs->retpc = (unsigned long) ret_from_kernel_thread; in copy_thread() 120 childregs->er4 = topstk; /* arg */ in copy_thread() 121 childregs->er5 = usp; /* fn */ in copy_thread() 123 *childregs = *current_pt_regs(); in copy_thread() 124 childregs->er0 = 0; in copy_thread() 125 childregs->retpc = (unsigned long) ret_from_fork; in copy_thread() 128 p->thread.ksp = (unsigned long)childregs; in copy_thread()
|
/arch/csky/kernel/ |
D | process.c | 43 struct pt_regs *childregs = task_pt_regs(p); in copy_thread() local 49 childstack = ((struct switch_stack *) childregs) - 1; in copy_thread() 56 memset(childregs, 0, sizeof(struct pt_regs)); in copy_thread() 60 childregs->sr = mfcr("psr"); in copy_thread() 62 *childregs = *(current_pt_regs()); in copy_thread() 64 childregs->usp = usp; in copy_thread() 66 task_thread_info(p)->tp_value = childregs->tls in copy_thread() 67 = childregs->regs[0]; in copy_thread() 69 childregs->a0 = 0; in copy_thread()
|
/arch/sh/kernel/ |
D | process_32.c | 122 struct pt_regs *childregs; in copy_thread() local 138 childregs = task_pt_regs(p); in copy_thread() 139 p->thread.sp = (unsigned long) childregs; in copy_thread() 141 memset(childregs, 0, sizeof(struct pt_regs)); in copy_thread() 143 childregs->regs[4] = arg; in copy_thread() 144 childregs->regs[5] = usp; in copy_thread() 145 childregs->sr = SR_MD; in copy_thread() 147 childregs->sr |= SR_FD; in copy_thread() 154 *childregs = *current_pt_regs(); in copy_thread() 157 childregs->regs[15] = usp; in copy_thread() [all …]
|
D | process_64.c | 376 struct pt_regs *childregs; in copy_thread() local 389 childregs = (struct pt_regs *)(THREAD_SIZE + task_stack_page(p)) - 1; in copy_thread() 390 p->thread.sp = (unsigned long) childregs; in copy_thread() 393 memset(childregs, 0, sizeof(struct pt_regs)); in copy_thread() 394 childregs->regs[2] = (unsigned long)arg; in copy_thread() 395 childregs->regs[3] = (unsigned long)usp; in copy_thread() 396 childregs->sr = (1 << 30); /* not user_mode */ in copy_thread() 397 childregs->sr |= SR_FD; /* Invalidate FPU flag */ in copy_thread() 401 *childregs = *current_pt_regs(); in copy_thread() 410 childregs->regs[15] = neff_sign_extend(usp); in copy_thread() [all …]
|
/arch/s390/kernel/ |
D | process.c | 88 struct pt_regs childregs; in copy_thread_tls() member 91 frame = container_of(task_pt_regs(p), struct fake_frame, childregs); in copy_thread_tls() 118 memset(&frame->childregs, 0, sizeof(struct pt_regs)); in copy_thread_tls() 119 frame->childregs.psw.mask = PSW_KERNEL_BITS | PSW_MASK_DAT | in copy_thread_tls() 121 frame->childregs.psw.addr = in copy_thread_tls() 123 frame->childregs.gprs[9] = new_stackp; /* function */ in copy_thread_tls() 124 frame->childregs.gprs[10] = arg; in copy_thread_tls() 125 frame->childregs.gprs[11] = (unsigned long) do_exit; in copy_thread_tls() 126 frame->childregs.orig_gpr2 = -1; in copy_thread_tls() 130 frame->childregs = *current_pt_regs(); in copy_thread_tls() [all …]
|
/arch/nds32/kernel/ |
D | process.c | 155 struct pt_regs *childregs = task_pt_regs(p); in copy_thread() local 160 memset(childregs, 0, sizeof(struct pt_regs)); in copy_thread() 166 *childregs = *current_pt_regs(); in copy_thread() 168 childregs->sp = stack_start; in copy_thread() 170 childregs->uregs[0] = 0; in copy_thread() 171 childregs->osp = 0; in copy_thread() 173 childregs->uregs[25] = childregs->uregs[3]; in copy_thread() 177 p->thread.cpu_context.sp = (unsigned long)childregs; in copy_thread() 196 childregs->lb = 0; in copy_thread() 197 childregs->le = 0; in copy_thread() [all …]
|
/arch/riscv/kernel/ |
D | process.c | 105 struct pt_regs *childregs = task_pt_regs(p); in copy_thread_tls() local 111 memset(childregs, 0, sizeof(struct pt_regs)); in copy_thread_tls() 112 childregs->gp = gp; in copy_thread_tls() 113 childregs->sstatus = SR_SPP | SR_SPIE; /* Supervisor, irqs on */ in copy_thread_tls() 119 *childregs = *(current_pt_regs()); in copy_thread_tls() 121 childregs->sp = usp; in copy_thread_tls() 123 childregs->tp = tls; in copy_thread_tls() 124 childregs->a0 = 0; /* Return value of fork() */ in copy_thread_tls() 127 p->thread.sp = (unsigned long)childregs; /* kernel sp */ in copy_thread_tls()
|
/arch/nios2/kernel/ |
D | process.c | 106 struct pt_regs *childregs = task_pt_regs(p); in copy_thread() local 110 ((struct switch_stack *)childregs) - 1; in copy_thread() 119 childregs->estatus = STATUS_PIE; in copy_thread() 120 childregs->sp = (unsigned long) childstack; in copy_thread() 123 p->thread.kregs = childregs; in copy_thread() 128 *childregs = *regs; in copy_thread() 129 childregs->r2 = 0; /* Set the return value for the child. */ in copy_thread() 130 childregs->r7 = 0; in copy_thread() 135 p->thread.kregs = childregs; in copy_thread() 139 childregs->sp = usp; in copy_thread()
|
/arch/arm64/kernel/ |
D | process.c | 362 struct pt_regs *childregs = task_pt_regs(p); in copy_thread_tls() local 376 *childregs = *current_pt_regs(); in copy_thread_tls() 377 childregs->regs[0] = 0; in copy_thread_tls() 387 childregs->compat_sp = stack_start; in copy_thread_tls() 389 childregs->sp = stack_start; in copy_thread_tls() 399 memset(childregs, 0, sizeof(struct pt_regs)); in copy_thread_tls() 400 childregs->pstate = PSR_MODE_EL1h; in copy_thread_tls() 403 childregs->pstate |= PSR_UAO_BIT; in copy_thread_tls() 406 set_ssbs_bit(childregs); in copy_thread_tls() 409 childregs->pmr_save = GIC_PRIO_IRQON; in copy_thread_tls() [all …]
|
/arch/unicore32/kernel/ |
D | process.c | 227 struct pt_regs *childregs = task_pt_regs(p); in copy_thread() local 230 thread->cpu_context.sp = (unsigned long)childregs; in copy_thread() 235 memset(childregs, 0, sizeof(struct pt_regs)); in copy_thread() 238 *childregs = *current_pt_regs(); in copy_thread() 239 childregs->UCreg_00 = 0; in copy_thread() 241 childregs->UCreg_sp = stack_start; in copy_thread() 244 childregs->UCreg_16 = childregs->UCreg_03; in copy_thread()
|
/arch/sparc/kernel/ |
D | process_32.c | 308 struct pt_regs *childregs, *regs = current_pt_regs(); local 329 childregs = (struct pt_regs *) (new_stack + STACKFRAME_SZ); 339 p->thread.kregs = childregs; 348 childregs->u_regs[UREG_G1] = sp; /* function */ 349 childregs->u_regs[UREG_G2] = arg; 350 psr = childregs->psr = get_psr(); 356 childregs->u_regs[UREG_FP] = sp; 390 childregs->u_regs[UREG_FP] = (unsigned long)childstack; 395 childregs->psr &= ~PSR_EF; 400 childregs->u_regs[UREG_I0] = current->pid; [all …]
|
/arch/x86/kernel/ |
D | process_32.c | 118 struct pt_regs *childregs = task_pt_regs(p); in copy_thread_tls() local 119 struct fork_frame *fork_frame = container_of(childregs, struct fork_frame, regs); in copy_thread_tls() 134 p->thread.sp0 = (unsigned long) (childregs+1); in copy_thread_tls() 139 memset(childregs, 0, sizeof(struct pt_regs)); in copy_thread_tls() 146 *childregs = *current_pt_regs(); in copy_thread_tls() 147 childregs->ax = 0; in copy_thread_tls() 149 childregs->sp = sp; in copy_thread_tls()
|
D | process_64.c | 378 struct pt_regs *childregs; in copy_thread_tls() local 383 childregs = task_pt_regs(p); in copy_thread_tls() 384 fork_frame = container_of(childregs, struct fork_frame, regs); in copy_thread_tls() 402 memset(childregs, 0, sizeof(struct pt_regs)); in copy_thread_tls() 408 *childregs = *current_pt_regs(); in copy_thread_tls() 410 childregs->ax = 0; in copy_thread_tls() 412 childregs->sp = sp; in copy_thread_tls()
|
/arch/alpha/kernel/ |
D | process.c | 246 struct pt_regs *childregs = task_pt_regs(p); in copy_thread() local 250 childstack = ((struct switch_stack *) childregs) - 1; in copy_thread() 261 childregs->hae = alpha_mv.hae_cache, in copy_thread() 275 *childregs = *regs; in copy_thread() 276 childregs->r0 = 0; in copy_thread() 277 childregs->r19 = 0; in copy_thread() 278 childregs->r20 = 1; /* OSF/1 has some strange fork() semantics. */ in copy_thread()
|
/arch/arm/kernel/ |
D | process.c | 231 struct pt_regs *childregs = task_pt_regs(p); in copy_thread_tls() local 246 *childregs = *current_pt_regs(); in copy_thread_tls() 247 childregs->ARM_r0 = 0; in copy_thread_tls() 249 childregs->ARM_sp = stack_start; in copy_thread_tls() 251 memset(childregs, 0, sizeof(struct pt_regs)); in copy_thread_tls() 254 childregs->ARM_cpsr = SVC_MODE; in copy_thread_tls() 257 thread->cpu_context.sp = (unsigned long)childregs; in copy_thread_tls()
|
/arch/mips/kernel/ |
D | process.c | 125 struct pt_regs *childregs, *regs = current_pt_regs(); in copy_thread_tls() local 131 childregs = (struct pt_regs *) childksp - 1; in copy_thread_tls() 133 childksp = (unsigned long) childregs; in copy_thread_tls() 138 memset(childregs, 0, sizeof(struct pt_regs)); in copy_thread_tls() 150 childregs->cp0_status = status; in copy_thread_tls() 155 *childregs = *regs; in copy_thread_tls() 156 childregs->regs[7] = 0; /* Clear error flag */ in copy_thread_tls() 157 childregs->regs[2] = 0; /* Child gets zero as return value */ in copy_thread_tls() 159 childregs->regs[29] = usp; in copy_thread_tls() 162 p->thread.reg29 = (unsigned long) childregs; in copy_thread_tls() [all …]
|
/arch/powerpc/kernel/ |
D | process.c | 1594 struct pt_regs *childregs, *kregs; in copy_thread_tls() local 1605 childregs = (struct pt_regs *) sp; in copy_thread_tls() 1608 memset(childregs, 0, sizeof(struct pt_regs)); in copy_thread_tls() 1609 childregs->gpr[1] = sp + sizeof(struct pt_regs); in copy_thread_tls() 1612 childregs->gpr[14] = ppc_function_entry((void *)usp); in copy_thread_tls() 1615 childregs->softe = IRQS_ENABLED; in copy_thread_tls() 1617 childregs->gpr[15] = kthread_arg; in copy_thread_tls() 1625 *childregs = *regs; in copy_thread_tls() 1627 childregs->gpr[1] = usp; in copy_thread_tls() 1628 p->thread.regs = childregs; in copy_thread_tls() [all …]
|