Lines Matching refs:regs
34 #define RESTART_CRIS_SYS(regs) regs->r10 = regs->orig_r10; regs->erp -= 2; argument
51 void do_signal(int restart, struct pt_regs *regs);
53 struct pt_regs *regs);
56 restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc) in restore_sigcontext() argument
69 if (__copy_from_user(regs, sc, sizeof(struct pt_regs))) in restore_sigcontext()
73 regs->ccs |= (1 << (U_CCS_BITNR + CCS_SHIFT)); in restore_sigcontext()
76 regs->exs = -1; in restore_sigcontext()
90 struct pt_regs *regs = current_pt_regs(); in sys_sigreturn() local
93 unsigned long oldspc = regs->spc; in sys_sigreturn()
94 unsigned long oldccs = regs->ccs; in sys_sigreturn()
117 if (restore_sigcontext(regs, &frame->sc)) in sys_sigreturn()
120 keep_debug_flags(oldccs, oldspc, regs); in sys_sigreturn()
122 return regs->r10; in sys_sigreturn()
131 struct pt_regs *regs = current_pt_regs(); in sys_rt_sigreturn() local
134 unsigned long oldspc = regs->spc; in sys_rt_sigreturn()
135 unsigned long oldccs = regs->ccs; in sys_rt_sigreturn()
155 if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) in sys_rt_sigreturn()
161 keep_debug_flags(oldccs, oldspc, regs); in sys_rt_sigreturn()
163 return regs->r10; in sys_rt_sigreturn()
172 setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs, in setup_sigcontext() argument
185 err |= __copy_to_user(sc, regs, sizeof(struct pt_regs)); in setup_sigcontext()
213 setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_frame() argument
225 err |= setup_sigcontext(&frame->sc, regs, set->sig[0]); in setup_frame()
270 regs->erp = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame()
271 regs->srp = return_ip; in setup_frame()
272 regs->r10 = ksig->sig; in setup_frame()
281 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_rt_frame() argument
302 err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, set->sig[0]); in setup_rt_frame()
346 regs->erp = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame()
347 regs->srp = return_ip; in setup_rt_frame()
348 regs->r10 = ksig->sig; in setup_rt_frame()
349 regs->r11 = (unsigned long) &frame->info; in setup_rt_frame()
350 regs->r12 = 0; in setup_rt_frame()
360 handle_signal(int canrestart, struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument
368 switch (regs->r10) { in handle_signal()
379 regs->r10 = -EINTR; in handle_signal()
389 regs->r10 = -EINTR; in handle_signal()
401 RESTART_CRIS_SYS(regs); in handle_signal()
408 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal()
410 ret = setup_frame(ksig, oldset, regs); in handle_signal()
427 do_signal(int canrestart, struct pt_regs *regs) in do_signal() argument
431 canrestart = canrestart && ((int)regs->exs >= 0); in do_signal()
438 if (!user_mode(regs)) in do_signal()
443 handle_signal(canrestart, &ksig, regs); in do_signal()
450 if (regs->r10 == -ERESTARTNOHAND || in do_signal()
451 regs->r10 == -ERESTARTSYS || in do_signal()
452 regs->r10 == -ERESTARTNOINTR) { in do_signal()
453 RESTART_CRIS_SYS(regs); in do_signal()
456 if (regs->r10 == -ERESTART_RESTARTBLOCK){ in do_signal()
457 regs->r9 = __NR_restart_syscall; in do_signal()
458 regs->erp -= 2; in do_signal()
489 struct pt_regs *regs) in keep_debug_flags() argument
494 regs->ccs |= (1 << Q_CCS_BITNR); in keep_debug_flags()
499 regs->ccs |= (1 << (S_CCS_BITNR + CCS_SHIFT)); in keep_debug_flags()
501 regs->spc = oldspc; in keep_debug_flags()
506 regs->ccs |= (1 << (S_CCS_BITNR + CCS_SHIFT)); in keep_debug_flags()
509 } else if (regs->spc) { in keep_debug_flags()
513 regs->spc = 0; in keep_debug_flags()
514 regs->ccs &= ~(1 << (S_CCS_BITNR + CCS_SHIFT)); in keep_debug_flags()