Lines Matching refs:ksig
189 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument
193 unsigned long sp = sigsp(regs->sp, ksig); in get_sigframe()
201 static int setup_frame(struct ksignal *ksig, sigset_t *set, in setup_frame() argument
205 int sig = ksig->sig; in setup_frame()
207 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_frame()
227 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame()
228 if (__put_user(ksig->ka.sa.sa_restorer, &frame->pretcode)) in setup_frame()
247 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame()
263 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument
267 int sig = ksig->sig; in setup_rt_frame()
269 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame()
277 copy_siginfo_to_user(&frame->info, &ksig->info)) in setup_rt_frame()
291 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_rt_frame()
292 if (__put_user(ksig->ka.sa.sa_restorer, &frame->pretcode)) in setup_rt_frame()
313 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame()
335 static int handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument
350 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal()
363 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal()
364 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal()
366 ret = setup_frame(ksig, oldset, regs); in handle_signal()
368 signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP)); in handle_signal()
377 struct ksignal ksig; in do_signal() local
379 if (get_signal(&ksig)) { in do_signal()
380 handle_signal(&ksig, regs); in do_signal()