Lines Matching refs:regs

323 static int compat_restore_sigframe(struct pt_regs *regs,  in compat_restore_sigframe()  argument
336 __get_user_error(regs->regs[0], &sf->uc.uc_mcontext.arm_r0, err); in compat_restore_sigframe()
337 __get_user_error(regs->regs[1], &sf->uc.uc_mcontext.arm_r1, err); in compat_restore_sigframe()
338 __get_user_error(regs->regs[2], &sf->uc.uc_mcontext.arm_r2, err); in compat_restore_sigframe()
339 __get_user_error(regs->regs[3], &sf->uc.uc_mcontext.arm_r3, err); in compat_restore_sigframe()
340 __get_user_error(regs->regs[4], &sf->uc.uc_mcontext.arm_r4, err); in compat_restore_sigframe()
341 __get_user_error(regs->regs[5], &sf->uc.uc_mcontext.arm_r5, err); in compat_restore_sigframe()
342 __get_user_error(regs->regs[6], &sf->uc.uc_mcontext.arm_r6, err); in compat_restore_sigframe()
343 __get_user_error(regs->regs[7], &sf->uc.uc_mcontext.arm_r7, err); in compat_restore_sigframe()
344 __get_user_error(regs->regs[8], &sf->uc.uc_mcontext.arm_r8, err); in compat_restore_sigframe()
345 __get_user_error(regs->regs[9], &sf->uc.uc_mcontext.arm_r9, err); in compat_restore_sigframe()
346 __get_user_error(regs->regs[10], &sf->uc.uc_mcontext.arm_r10, err); in compat_restore_sigframe()
347 __get_user_error(regs->regs[11], &sf->uc.uc_mcontext.arm_fp, err); in compat_restore_sigframe()
348 __get_user_error(regs->regs[12], &sf->uc.uc_mcontext.arm_ip, err); in compat_restore_sigframe()
349 __get_user_error(regs->compat_sp, &sf->uc.uc_mcontext.arm_sp, err); in compat_restore_sigframe()
350 __get_user_error(regs->compat_lr, &sf->uc.uc_mcontext.arm_lr, err); in compat_restore_sigframe()
351 __get_user_error(regs->pc, &sf->uc.uc_mcontext.arm_pc, err); in compat_restore_sigframe()
352 __get_user_error(regs->pstate, &sf->uc.uc_mcontext.arm_cpsr, err); in compat_restore_sigframe()
357 regs->syscallno = ~0UL; in compat_restore_sigframe()
359 err |= !valid_user_regs(&regs->user_regs); in compat_restore_sigframe()
368 asmlinkage int compat_sys_sigreturn(struct pt_regs *regs) in compat_sys_sigreturn() argument
380 if (regs->compat_sp & 7) in compat_sys_sigreturn()
383 frame = (struct compat_sigframe __user *)regs->compat_sp; in compat_sys_sigreturn()
388 if (compat_restore_sigframe(regs, frame)) in compat_sys_sigreturn()
391 return regs->regs[0]; in compat_sys_sigreturn()
397 regs->pc, regs->sp); in compat_sys_sigreturn()
402 asmlinkage int compat_sys_rt_sigreturn(struct pt_regs *regs) in compat_sys_rt_sigreturn() argument
414 if (regs->compat_sp & 7) in compat_sys_rt_sigreturn()
417 frame = (struct compat_rt_sigframe __user *)regs->compat_sp; in compat_sys_rt_sigreturn()
422 if (compat_restore_sigframe(regs, &frame->sig)) in compat_sys_rt_sigreturn()
428 return regs->regs[0]; in compat_sys_rt_sigreturn()
434 regs->pc, regs->sp); in compat_sys_rt_sigreturn()
440 struct pt_regs *regs, in compat_get_sigframe() argument
443 compat_ulong_t sp = sigsp(regs->compat_sp, ksig); in compat_get_sigframe()
460 static void compat_setup_return(struct pt_regs *regs, struct k_sigaction *ka, in compat_setup_return() argument
466 compat_ulong_t spsr = regs->pstate & ~(PSR_f | COMPAT_PSR_E_BIT); in compat_setup_return()
497 regs->regs[0] = usig; in compat_setup_return()
498 regs->compat_sp = ptr_to_compat(frame); in compat_setup_return()
499 regs->compat_lr = retcode; in compat_setup_return()
500 regs->pc = handler; in compat_setup_return()
501 regs->pstate = spsr; in compat_setup_return()
505 struct pt_regs *regs, sigset_t *set) in compat_setup_sigframe() argument
510 __put_user_error(regs->regs[0], &sf->uc.uc_mcontext.arm_r0, err); in compat_setup_sigframe()
511 __put_user_error(regs->regs[1], &sf->uc.uc_mcontext.arm_r1, err); in compat_setup_sigframe()
512 __put_user_error(regs->regs[2], &sf->uc.uc_mcontext.arm_r2, err); in compat_setup_sigframe()
513 __put_user_error(regs->regs[3], &sf->uc.uc_mcontext.arm_r3, err); in compat_setup_sigframe()
514 __put_user_error(regs->regs[4], &sf->uc.uc_mcontext.arm_r4, err); in compat_setup_sigframe()
515 __put_user_error(regs->regs[5], &sf->uc.uc_mcontext.arm_r5, err); in compat_setup_sigframe()
516 __put_user_error(regs->regs[6], &sf->uc.uc_mcontext.arm_r6, err); in compat_setup_sigframe()
517 __put_user_error(regs->regs[7], &sf->uc.uc_mcontext.arm_r7, err); in compat_setup_sigframe()
518 __put_user_error(regs->regs[8], &sf->uc.uc_mcontext.arm_r8, err); in compat_setup_sigframe()
519 __put_user_error(regs->regs[9], &sf->uc.uc_mcontext.arm_r9, err); in compat_setup_sigframe()
520 __put_user_error(regs->regs[10], &sf->uc.uc_mcontext.arm_r10, err); in compat_setup_sigframe()
521 __put_user_error(regs->regs[11], &sf->uc.uc_mcontext.arm_fp, err); in compat_setup_sigframe()
522 __put_user_error(regs->regs[12], &sf->uc.uc_mcontext.arm_ip, err); in compat_setup_sigframe()
523 __put_user_error(regs->compat_sp, &sf->uc.uc_mcontext.arm_sp, err); in compat_setup_sigframe()
524 __put_user_error(regs->compat_lr, &sf->uc.uc_mcontext.arm_lr, err); in compat_setup_sigframe()
525 __put_user_error(regs->pc, &sf->uc.uc_mcontext.arm_pc, err); in compat_setup_sigframe()
526 __put_user_error(regs->pstate, &sf->uc.uc_mcontext.arm_cpsr, err); in compat_setup_sigframe()
550 sigset_t *set, struct pt_regs *regs) in compat_setup_rt_frame() argument
555 frame = compat_get_sigframe(ksig, regs, sizeof(*frame)); in compat_setup_rt_frame()
565 err |= __compat_save_altstack(&frame->sig.uc.uc_stack, regs->compat_sp); in compat_setup_rt_frame()
567 err |= compat_setup_sigframe(&frame->sig, regs, set); in compat_setup_rt_frame()
570 compat_setup_return(regs, &ksig->ka, frame->sig.retcode, frame, usig); in compat_setup_rt_frame()
571 regs->regs[1] = (compat_ulong_t)(unsigned long)&frame->info; in compat_setup_rt_frame()
572 regs->regs[2] = (compat_ulong_t)(unsigned long)&frame->sig.uc; in compat_setup_rt_frame()
579 struct pt_regs *regs) in compat_setup_frame() argument
584 frame = compat_get_sigframe(ksig, regs, sizeof(*frame)); in compat_setup_frame()
591 err |= compat_setup_sigframe(frame, regs, set); in compat_setup_frame()
593 compat_setup_return(regs, &ksig->ka, frame->retcode, frame, usig); in compat_setup_frame()
598 void compat_setup_restart_syscall(struct pt_regs *regs) in compat_setup_restart_syscall() argument
600 regs->regs[7] = __NR_compat_restart_syscall; in compat_setup_restart_syscall()