Lines Matching refs:regs

147 restore_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs)  in restore_sigcontext()  argument
150 struct switch_stack *sw = (struct switch_stack *)regs - 1; in restore_sigcontext()
151 long i, err = __get_user(regs->pc, &sc->sc_pc); in restore_sigcontext()
157 err |= __get_user(regs->r0, sc->sc_regs+0); in restore_sigcontext()
158 err |= __get_user(regs->r1, sc->sc_regs+1); in restore_sigcontext()
159 err |= __get_user(regs->r2, sc->sc_regs+2); in restore_sigcontext()
160 err |= __get_user(regs->r3, sc->sc_regs+3); in restore_sigcontext()
161 err |= __get_user(regs->r4, sc->sc_regs+4); in restore_sigcontext()
162 err |= __get_user(regs->r5, sc->sc_regs+5); in restore_sigcontext()
163 err |= __get_user(regs->r6, sc->sc_regs+6); in restore_sigcontext()
164 err |= __get_user(regs->r7, sc->sc_regs+7); in restore_sigcontext()
165 err |= __get_user(regs->r8, sc->sc_regs+8); in restore_sigcontext()
173 err |= __get_user(regs->r16, sc->sc_regs+16); in restore_sigcontext()
174 err |= __get_user(regs->r17, sc->sc_regs+17); in restore_sigcontext()
175 err |= __get_user(regs->r18, sc->sc_regs+18); in restore_sigcontext()
176 err |= __get_user(regs->r19, sc->sc_regs+19); in restore_sigcontext()
177 err |= __get_user(regs->r20, sc->sc_regs+20); in restore_sigcontext()
178 err |= __get_user(regs->r21, sc->sc_regs+21); in restore_sigcontext()
179 err |= __get_user(regs->r22, sc->sc_regs+22); in restore_sigcontext()
180 err |= __get_user(regs->r23, sc->sc_regs+23); in restore_sigcontext()
181 err |= __get_user(regs->r24, sc->sc_regs+24); in restore_sigcontext()
182 err |= __get_user(regs->r25, sc->sc_regs+25); in restore_sigcontext()
183 err |= __get_user(regs->r26, sc->sc_regs+26); in restore_sigcontext()
184 err |= __get_user(regs->r27, sc->sc_regs+27); in restore_sigcontext()
185 err |= __get_user(regs->r28, sc->sc_regs+28); in restore_sigcontext()
186 err |= __get_user(regs->gp, sc->sc_regs+29); in restore_sigcontext()
204 struct pt_regs *regs = current_pt_regs(); in do_sigreturn() local
215 if (restore_sigcontext(sc, regs)) in do_sigreturn()
225 info.si_addr = (void __user *) regs->pc; in do_sigreturn()
238 struct pt_regs *regs = current_pt_regs(); in do_rt_sigreturn() local
249 if (restore_sigcontext(&frame->uc.uc_mcontext, regs)) in do_rt_sigreturn()
259 info.si_addr = (void __user *) regs->pc; in do_rt_sigreturn()
281 setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs, in setup_sigcontext() argument
284 struct switch_stack *sw = (struct switch_stack *)regs - 1; in setup_sigcontext()
289 err |= __put_user(regs->pc, &sc->sc_pc); in setup_sigcontext()
292 err |= __put_user(regs->r0 , sc->sc_regs+0); in setup_sigcontext()
293 err |= __put_user(regs->r1 , sc->sc_regs+1); in setup_sigcontext()
294 err |= __put_user(regs->r2 , sc->sc_regs+2); in setup_sigcontext()
295 err |= __put_user(regs->r3 , sc->sc_regs+3); in setup_sigcontext()
296 err |= __put_user(regs->r4 , sc->sc_regs+4); in setup_sigcontext()
297 err |= __put_user(regs->r5 , sc->sc_regs+5); in setup_sigcontext()
298 err |= __put_user(regs->r6 , sc->sc_regs+6); in setup_sigcontext()
299 err |= __put_user(regs->r7 , sc->sc_regs+7); in setup_sigcontext()
300 err |= __put_user(regs->r8 , sc->sc_regs+8); in setup_sigcontext()
308 err |= __put_user(regs->r16, sc->sc_regs+16); in setup_sigcontext()
309 err |= __put_user(regs->r17, sc->sc_regs+17); in setup_sigcontext()
310 err |= __put_user(regs->r18, sc->sc_regs+18); in setup_sigcontext()
311 err |= __put_user(regs->r19, sc->sc_regs+19); in setup_sigcontext()
312 err |= __put_user(regs->r20, sc->sc_regs+20); in setup_sigcontext()
313 err |= __put_user(regs->r21, sc->sc_regs+21); in setup_sigcontext()
314 err |= __put_user(regs->r22, sc->sc_regs+22); in setup_sigcontext()
315 err |= __put_user(regs->r23, sc->sc_regs+23); in setup_sigcontext()
316 err |= __put_user(regs->r24, sc->sc_regs+24); in setup_sigcontext()
317 err |= __put_user(regs->r25, sc->sc_regs+25); in setup_sigcontext()
318 err |= __put_user(regs->r26, sc->sc_regs+26); in setup_sigcontext()
319 err |= __put_user(regs->r27, sc->sc_regs+27); in setup_sigcontext()
320 err |= __put_user(regs->r28, sc->sc_regs+28); in setup_sigcontext()
321 err |= __put_user(regs->gp , sc->sc_regs+29); in setup_sigcontext()
330 err |= __put_user(regs->trap_a0, &sc->sc_traparg_a0); in setup_sigcontext()
331 err |= __put_user(regs->trap_a1, &sc->sc_traparg_a1); in setup_sigcontext()
332 err |= __put_user(regs->trap_a2, &sc->sc_traparg_a2); in setup_sigcontext()
338 setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_frame() argument
348 err |= setup_sigcontext(&frame->sc, regs, set->sig[0], oldsp); in setup_frame()
368 regs->r26 = r26; in setup_frame()
369 regs->r27 = regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame()
370 regs->r16 = ksig->sig; /* a0: signal number */ in setup_frame()
371 regs->r17 = 0; /* a1: exception code */ in setup_frame()
372 regs->r18 = (unsigned long) &frame->sc; /* a2: sigcontext pointer */ in setup_frame()
377 current->comm, current->pid, frame, regs->pc, regs->r26); in setup_frame()
383 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_rt_frame() argument
400 err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, in setup_rt_frame()
422 regs->r26 = r26; in setup_rt_frame()
423 regs->r27 = regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame()
424 regs->r16 = ksig->sig; /* a0: signal number */ in setup_rt_frame()
425 regs->r17 = (unsigned long) &frame->info; /* a1: siginfo pointer */ in setup_rt_frame()
426 regs->r18 = (unsigned long) &frame->uc; /* a2: ucontext pointer */ in setup_rt_frame()
431 current->comm, current->pid, frame, regs->pc, regs->r26); in setup_rt_frame()
442 handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument
448 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal()
450 ret = setup_frame(ksig, oldset, regs); in handle_signal()
457 struct pt_regs *regs, struct k_sigaction *ka) in syscall_restart() argument
459 switch (regs->r0) { in syscall_restart()
463 regs->r0 = EINTR; in syscall_restart()
468 regs->r0 = r0; /* reset v0 and a3 and replay syscall */ in syscall_restart()
469 regs->r19 = r19; in syscall_restart()
470 regs->pc -= 4; in syscall_restart()
473 regs->r0 = EINTR; in syscall_restart()
493 do_signal(struct pt_regs *regs, unsigned long r0, unsigned long r19) in do_signal() argument
504 syscall_restart(r0, r19, regs, &ksig.ka); in do_signal()
505 handle_signal(&ksig, regs); in do_signal()
509 switch (regs->r0) { in do_signal()
514 regs->r0 = r0; in do_signal()
515 regs->r19 = r19; in do_signal()
516 regs->pc -= 4; in do_signal()
520 regs->r0 = __NR_restart_syscall; in do_signal()
521 regs->pc -= 4; in do_signal()
532 do_work_pending(struct pt_regs *regs, unsigned long thread_flags, in do_work_pending() argument
541 do_signal(regs, r0, r19); in do_work_pending()
545 tracehook_notify_resume(regs); in do_work_pending()