Lines Matching refs:regs
33 #define RESTART_CRIS_SYS(regs) regs->r10 = regs->orig_r10; regs->erp -= 2; argument
50 void do_signal(int restart, struct pt_regs *regs);
52 struct pt_regs *regs);
55 restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc) in restore_sigcontext() argument
68 if (__copy_from_user(regs, sc, sizeof(struct pt_regs))) in restore_sigcontext()
72 regs->ccs |= (1 << (U_CCS_BITNR + CCS_SHIFT)); in restore_sigcontext()
75 regs->exs = -1; in restore_sigcontext()
89 struct pt_regs *regs = current_pt_regs(); in sys_sigreturn() local
92 unsigned long oldspc = regs->spc; in sys_sigreturn()
93 unsigned long oldccs = regs->ccs; in sys_sigreturn()
116 if (restore_sigcontext(regs, &frame->sc)) in sys_sigreturn()
119 keep_debug_flags(oldccs, oldspc, regs); in sys_sigreturn()
121 return regs->r10; in sys_sigreturn()
130 struct pt_regs *regs = current_pt_regs(); in sys_rt_sigreturn() local
133 unsigned long oldspc = regs->spc; in sys_rt_sigreturn()
134 unsigned long oldccs = regs->ccs; in sys_rt_sigreturn()
154 if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) in sys_rt_sigreturn()
160 keep_debug_flags(oldccs, oldspc, regs); in sys_rt_sigreturn()
162 return regs->r10; in sys_rt_sigreturn()
171 setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs, in setup_sigcontext() argument
184 err |= __copy_to_user(sc, regs, sizeof(struct pt_regs)); in setup_sigcontext()
212 setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_frame() argument
224 err |= setup_sigcontext(&frame->sc, regs, set->sig[0]); in setup_frame()
269 regs->erp = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame()
270 regs->srp = return_ip; in setup_frame()
271 regs->r10 = ksig->sig; in setup_frame()
280 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_rt_frame() argument
301 err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, set->sig[0]); in setup_rt_frame()
345 regs->erp = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame()
346 regs->srp = return_ip; in setup_rt_frame()
347 regs->r10 = ksig->sig; in setup_rt_frame()
348 regs->r11 = (unsigned long) &frame->info; in setup_rt_frame()
349 regs->r12 = 0; in setup_rt_frame()
359 handle_signal(int canrestart, struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument
367 switch (regs->r10) { in handle_signal()
378 regs->r10 = -EINTR; in handle_signal()
388 regs->r10 = -EINTR; in handle_signal()
400 RESTART_CRIS_SYS(regs); in handle_signal()
407 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal()
409 ret = setup_frame(ksig, oldset, regs); in handle_signal()
426 do_signal(int canrestart, struct pt_regs *regs) in do_signal() argument
430 canrestart = canrestart && ((int)regs->exs >= 0); in do_signal()
437 if (!user_mode(regs)) in do_signal()
442 handle_signal(canrestart, &ksig, regs); in do_signal()
449 if (regs->r10 == -ERESTARTNOHAND || in do_signal()
450 regs->r10 == -ERESTARTSYS || in do_signal()
451 regs->r10 == -ERESTARTNOINTR) { in do_signal()
452 RESTART_CRIS_SYS(regs); in do_signal()
455 if (regs->r10 == -ERESTART_RESTARTBLOCK){ in do_signal()
456 regs->r9 = __NR_restart_syscall; in do_signal()
457 regs->erp -= 2; in do_signal()
488 struct pt_regs *regs) in keep_debug_flags() argument
493 regs->ccs |= (1 << Q_CCS_BITNR); in keep_debug_flags()
498 regs->ccs |= (1 << (S_CCS_BITNR + CCS_SHIFT)); in keep_debug_flags()
500 regs->spc = oldspc; in keep_debug_flags()
505 regs->ccs |= (1 << (S_CCS_BITNR + CCS_SHIFT)); in keep_debug_flags()
508 } else if (regs->spc) { in keep_debug_flags()
512 regs->spc = 0; in keep_debug_flags()
513 regs->ccs &= ~(1 << (S_CCS_BITNR + CCS_SHIFT)); in keep_debug_flags()