Lines Matching refs:regs
37 static int restore_sigcontext(struct pt_regs *regs, in restore_sigcontext() argument
48 #define COPY(x) err |= __get_user(regs->x, &sc->x) in restore_sigcontext()
69 regs->epsw = (regs->epsw & ~USER_EPSW) | in restore_sigcontext()
71 regs->orig_d0 = -1; /* disable syscall checks */ in restore_sigcontext()
158 struct pt_regs *regs, in setup_sigcontext() argument
163 #define COPY(x) err |= __put_user(regs->x, &sc->x) in setup_sigcontext()
190 struct pt_regs *regs, in get_sigframe() argument
193 unsigned long sp = sigsp(regs->sp, ksig); in get_sigframe()
202 struct pt_regs *regs) in setup_frame() argument
207 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_frame()
216 if (setup_sigcontext(&frame->sc, &frame->fpuctx, regs, set->sig[0])) in setup_frame()
246 regs->sp = (unsigned long) frame; in setup_frame()
247 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame()
248 regs->d0 = sig; in setup_frame()
249 regs->d1 = (unsigned long) &frame->sc; in setup_frame()
253 sig, current->comm, current->pid, frame, regs->pc, in setup_frame()
264 struct pt_regs *regs) in setup_rt_frame() argument
269 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame()
283 __save_altstack(&frame->uc.uc_stack, regs->sp) || in setup_rt_frame()
285 &frame->fpuctx, regs, set->sig[0]) || in setup_rt_frame()
312 regs->sp = (unsigned long) frame; in setup_rt_frame()
313 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame()
314 regs->d0 = sig; in setup_rt_frame()
315 regs->d1 = (long) &frame->info; in setup_rt_frame()
319 sig, current->comm, current->pid, frame, regs->pc, in setup_rt_frame()
326 static inline void stepback(struct pt_regs *regs) in stepback() argument
328 regs->pc -= 2; in stepback()
329 regs->orig_d0 = -1; in stepback()
335 static int handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument
341 if (regs->orig_d0 >= 0) { in handle_signal()
343 switch (regs->d0) { in handle_signal()
346 regs->d0 = -EINTR; in handle_signal()
351 regs->d0 = -EINTR; in handle_signal()
357 regs->d0 = regs->orig_d0; in handle_signal()
358 stepback(regs); in handle_signal()
364 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal()
366 ret = setup_frame(ksig, oldset, regs); in handle_signal()
375 static void do_signal(struct pt_regs *regs) in do_signal() argument
380 handle_signal(&ksig, regs); in do_signal()
385 if (regs->orig_d0 >= 0) { in do_signal()
387 switch (regs->d0) { in do_signal()
391 regs->d0 = regs->orig_d0; in do_signal()
392 stepback(regs); in do_signal()
396 regs->d0 = __NR_restart_syscall; in do_signal()
397 stepback(regs); in do_signal()
411 asmlinkage void do_notify_resume(struct pt_regs *regs, u32 thread_info_flags) in do_notify_resume() argument
416 regs->epsw |= EPSW_T; in do_notify_resume()
425 do_signal(regs); in do_notify_resume()