Searched refs:ksig (Results 1 - 54 of 54) sorted by relevance

/linux-4.1.27/arch/um/include/shared/
H A Dframe_kern.h9 extern int setup_signal_stack_sc(unsigned long stack_top, struct ksignal *ksig,
11 extern int setup_signal_stack_si(unsigned long stack_top, struct ksignal *ksig,
/linux-4.1.27/arch/um/kernel/
H A Dsignal.c21 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
41 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { handle_signal()
54 if ((ksig->ka.sa.sa_flags & SA_ONSTACK) && (sas_ss_flags(sp) == 0)) handle_signal()
58 if (!(ksig->ka.sa.sa_flags & SA_SIGINFO)) handle_signal()
59 err = setup_signal_stack_sc(sp, ksig, regs, oldset); handle_signal()
62 err = setup_signal_stack_si(sp, ksig, regs, oldset); handle_signal()
64 signal_setup_done(err, ksig, singlestep); handle_signal()
69 struct ksignal ksig; kern_do_signal() local
72 while (get_signal(&ksig)) { kern_do_signal()
75 handle_signal(&ksig, regs); kern_do_signal()
/linux-4.1.27/arch/avr32/kernel/
H A Dsignal.c130 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, int framesize) get_sigframe() argument
132 unsigned long sp = sigsp(regs->sp, ksig); get_sigframe()
138 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) setup_rt_frame() argument
143 frame = get_sigframe(ksig, regs, sizeof(*frame)); setup_rt_frame()
163 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
175 regs->r12 = ksig->sig; setup_rt_frame()
179 if (ksig->ka.sa.sa_flags & SA_RESTORER) setup_rt_frame()
180 regs->lr = (unsigned long)ksig->ka.sa.sa_restorer; setup_rt_frame()
188 current->comm, current->pid, ksig->sig, regs->sp, setup_rt_frame()
189 regs->pc, ksig->ka.sa.sa_handler, regs->lr); setup_rt_frame()
191 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; setup_rt_frame()
207 handle_signal(struct ksignal *ksig, struct pt_regs *regs, int syscall) handle_signal() argument
214 ret = setup_rt_frame(ksig, sigmask_to_save(), regs); handle_signal()
224 signal_setup_done(ret, ksig, 0); handle_signal()
234 struct ksignal ksig; do_signal() local
244 get_signal(&ksig); do_signal()
249 if (ksig.sig > 0) { do_signal()
255 if (ksig.sig > 0 && !(ksig.ka.sa.sa_flags & SA_RESTART)) { do_signal()
265 if (!ksig.sig) { do_signal()
271 handle_signal(&ksig, regs, syscall); do_signal()
/linux-4.1.27/arch/powerpc/kernel/
H A Dsignal.h15 extern void __user *get_sigframe(struct ksignal *ksig, unsigned long sp,
18 extern int handle_signal32(struct ksignal *ksig, sigset_t *oldset,
21 extern int handle_rt_signal32(struct ksignal *ksig, sigset_t *oldset,
45 extern int handle_rt_signal64(struct ksignal *ksig, sigset_t *set,
50 static inline int handle_rt_signal64(struct ksignal *ksig, sigset_t *set, handle_rt_signal64() argument
H A Dsignal.c34 void __user *get_sigframe(struct ksignal *ksig, unsigned long sp, get_sigframe() argument
41 oldsp = sigsp(oldsp, ksig); get_sigframe()
105 struct ksignal ksig; do_signal() local
109 get_signal(&ksig); do_signal()
112 check_syscall_restart(regs, &ksig.ka, ksig.sig > 0); do_signal()
114 if (ksig.sig <= 0) { do_signal()
135 if (ksig.ka.sa.sa_flags & SA_SIGINFO) do_signal()
136 ret = handle_rt_signal32(&ksig, oldset, regs); do_signal()
138 ret = handle_signal32(&ksig, oldset, regs); do_signal()
140 ret = handle_rt_signal64(&ksig, oldset, regs); do_signal()
144 signal_setup_done(ret, &ksig, test_thread_flag(TIF_SINGLESTEP)); do_signal()
H A Dsignal_64.c715 int handle_rt_signal64(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) handle_rt_signal64() argument
721 frame = get_sigframe(ksig, get_tm_stackpointer(regs), sizeof(*frame), 0); handle_rt_signal64()
727 err |= copy_siginfo_to_user(&frame->info, &ksig->info); handle_rt_signal64()
742 regs, ksig->sig, handle_rt_signal64()
744 (unsigned long)ksig->ka.sa.sa_handler); handle_rt_signal64()
749 err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, ksig->sig, handle_rt_signal64()
750 NULL, (unsigned long)ksig->ka.sa.sa_handler, handle_rt_signal64()
776 regs->nip = (unsigned long) ksig->ka.sa.sa_handler; handle_rt_signal64()
785 (func_descr_t __user *) ksig->ka.sa.sa_handler; handle_rt_signal64()
795 regs->gpr[3] = ksig->sig; handle_rt_signal64()
797 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { handle_rt_signal64()
H A Dsignal_32.c986 int handle_rt_signal32(struct ksignal *ksig, sigset_t *oldset, handle_rt_signal32() argument
999 rt_sf = get_sigframe(ksig, get_tm_stackpointer(regs), sizeof(*rt_sf), 1); handle_rt_signal32()
1005 if (copy_siginfo_to_user(&rt_sf->info, &ksig->info) handle_rt_signal32()
1055 regs->gpr[3] = ksig->sig; handle_rt_signal32()
1059 regs->nip = (unsigned long) ksig->ka.sa.sa_handler; handle_rt_signal32()
1412 int handle_signal32(struct ksignal *ksig, sigset_t *oldset, struct pt_regs *regs) handle_signal32() argument
1422 frame = get_sigframe(ksig, get_tm_stackpointer(regs), sizeof(*frame), 1); handle_signal32()
1430 if (__put_user(to_user_ptr(ksig->ka.sa.sa_handler), &sc->handler) handle_signal32()
1438 || __put_user(ksig->sig, &sc->signal)) handle_signal32()
1473 regs->gpr[3] = ksig->sig; handle_signal32()
1475 regs->nip = (unsigned long) (unsigned long)ksig->ka.sa.sa_handler; handle_signal32()
/linux-4.1.27/arch/frv/kernel/
H A Dsignal.c161 static inline void __user *get_sigframe(struct ksignal *ksig, get_sigframe() argument
164 unsigned long sp = sigsp(__frame->sp, ksig); get_sigframe()
174 static int setup_frame(struct ksignal *ksig, sigset_t *set) setup_frame() argument
177 int sig = ksig->sig; setup_frame()
179 frame = get_sigframe(ksig, sizeof(*frame)); setup_frame()
198 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_frame()
199 if (__put_user(ksig->ka.sa.sa_restorer, &frame->pretcode) < 0) setup_frame()
219 (struct fdpic_func_descriptor __user *) ksig->ka.sa.sa_handler; setup_frame()
226 __frame->pc = (unsigned long) ksig->ka.sa.sa_handler; setup_frame()
247 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set) setup_rt_frame() argument
250 int sig = ksig->sig; setup_rt_frame()
252 frame = get_sigframe(ksig, sizeof(*frame)); setup_rt_frame()
262 if (copy_siginfo_to_user(&frame->info, &ksig->info)) setup_rt_frame()
279 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_rt_frame()
280 if (__put_user(ksig->ka.sa.sa_restorer, &frame->pretcode)) setup_rt_frame()
300 (struct fdpic_func_descriptor __user *) ksig->ka.sa.sa_handler; setup_rt_frame()
307 __frame->pc = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame()
329 static void handle_signal(struct ksignal *ksig) handle_signal() argument
344 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { handle_signal()
358 if (ksig->ka.sa.sa_flags & SA_SIGINFO) handle_signal()
359 ret = setup_rt_frame(ksig, oldset); handle_signal()
361 ret = setup_frame(ksig, oldset); handle_signal()
363 signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP)); handle_signal()
374 struct ksignal ksig; do_signal() local
376 if (get_signal(&ksig)) { do_signal()
377 handle_signal(&ksig); do_signal()
/linux-4.1.27/arch/mn10300/kernel/
H A Dsignal.c189 static inline void __user *get_sigframe(struct ksignal *ksig, get_sigframe() argument
193 unsigned long sp = sigsp(regs->sp, ksig); get_sigframe()
201 static int setup_frame(struct ksignal *ksig, sigset_t *set, setup_frame() argument
205 int sig = ksig->sig; setup_frame()
207 frame = get_sigframe(ksig, regs, sizeof(*frame)); setup_frame()
227 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_frame()
228 if (__put_user(ksig->ka.sa.sa_restorer, &frame->pretcode)) setup_frame()
247 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; setup_frame()
263 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, setup_rt_frame() argument
267 int sig = ksig->sig; setup_rt_frame()
269 frame = get_sigframe(ksig, regs, sizeof(*frame)); setup_rt_frame()
277 copy_siginfo_to_user(&frame->info, &ksig->info)) setup_rt_frame()
291 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_rt_frame()
292 if (__put_user(ksig->ka.sa.sa_restorer, &frame->pretcode)) setup_rt_frame()
313 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame()
335 static int handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
350 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { handle_signal()
363 if (ksig->ka.sa.sa_flags & SA_SIGINFO) handle_signal()
364 ret = setup_rt_frame(ksig, oldset, regs); handle_signal()
366 ret = setup_frame(ksig, oldset, regs); handle_signal()
368 signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP)); handle_signal()
377 struct ksignal ksig; do_signal() local
379 if (get_signal(&ksig)) { do_signal()
380 handle_signal(&ksig, regs); do_signal()
/linux-4.1.27/arch/mips/include/asm/
H A Dabi.h16 int (* const setup_frame)(void *sig_return, struct ksignal *ksig,
19 int (* const setup_rt_frame)(void *sig_return, struct ksignal *ksig,
/linux-4.1.27/arch/x86/kernel/
H A Dsignal.c274 __setup_frame(int sig, struct ksignal *ksig, sigset_t *set, __setup_frame() argument
282 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); __setup_frame()
304 if (ksig->ka.sa.sa_flags & SA_RESTORER) __setup_frame()
305 restorer = ksig->ka.sa.sa_restorer; __setup_frame()
324 regs->ip = (unsigned long)ksig->ka.sa.sa_handler; __setup_frame()
337 static int __setup_rt_frame(int sig, struct ksignal *ksig, __setup_rt_frame() argument
345 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); __setup_rt_frame()
366 if (ksig->ka.sa.sa_flags & SA_RESTORER) __setup_rt_frame()
367 restorer = ksig->ka.sa.sa_restorer; __setup_rt_frame()
380 err |= copy_siginfo_to_user(&frame->info, &ksig->info); __setup_rt_frame()
390 regs->ip = (unsigned long)ksig->ka.sa.sa_handler; __setup_rt_frame()
403 static int __setup_rt_frame(int sig, struct ksignal *ksig, __setup_rt_frame() argument
410 frame = get_sigframe(&ksig->ka, regs, sizeof(struct rt_sigframe), &fp); __setup_rt_frame()
415 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { __setup_rt_frame()
416 if (copy_siginfo_to_user(&frame->info, &ksig->info)) __setup_rt_frame()
432 if (ksig->ka.sa.sa_flags & SA_RESTORER) { __setup_rt_frame()
433 put_user_ex(ksig->ka.sa.sa_restorer, &frame->pretcode); __setup_rt_frame()
455 regs->ip = (unsigned long) ksig->ka.sa.sa_handler; __setup_rt_frame()
467 static int x32_setup_rt_frame(struct ksignal *ksig, x32_setup_rt_frame() argument
477 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); x32_setup_rt_frame()
482 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { x32_setup_rt_frame()
483 if (copy_siginfo_to_user32(&frame->info, &ksig->info)) x32_setup_rt_frame()
497 if (ksig->ka.sa.sa_flags & SA_RESTORER) { x32_setup_rt_frame()
498 restorer = ksig->ka.sa.sa_restorer; x32_setup_rt_frame()
516 regs->ip = (unsigned long) ksig->ka.sa.sa_handler; x32_setup_rt_frame()
519 regs->di = ksig->sig; x32_setup_rt_frame()
593 setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs) setup_rt_frame() argument
595 int usig = ksig->sig; setup_rt_frame()
601 if (ksig->ka.sa.sa_flags & SA_SIGINFO) setup_rt_frame()
602 return ia32_setup_rt_frame(usig, ksig, cset, regs); setup_rt_frame()
604 return ia32_setup_frame(usig, ksig, cset, regs); setup_rt_frame()
606 return x32_setup_rt_frame(ksig, cset, regs); setup_rt_frame()
608 return __setup_rt_frame(ksig->sig, ksig, set, regs); setup_rt_frame()
613 handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
627 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { handle_signal()
648 failed = (setup_rt_frame(ksig, regs) < 0); handle_signal()
667 signal_setup_done(failed, ksig, stepping); handle_signal()
687 struct ksignal ksig; do_signal() local
689 if (get_signal(&ksig)) { do_signal()
691 handle_signal(&ksig, regs); do_signal()
/linux-4.1.27/arch/nios2/kernel/
H A Dsignal.c165 static inline void *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, get_sigframe() argument
174 usp = sigsp(usp, ksig); get_sigframe()
180 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, setup_rt_frame() argument
186 frame = get_sigframe(ksig, regs, sizeof(*frame)); setup_rt_frame()
188 if (ksig->ka.sa.sa_flags & SA_SIGINFO) setup_rt_frame()
189 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
207 regs->r4 = (unsigned long) ksig->sig; setup_rt_frame()
210 regs->ea = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame()
214 force_sigsegv(ksig->sig, current); setup_rt_frame()
221 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
227 ret = setup_rt_frame(ksig, oldset, regs); handle_signal()
229 signal_setup_done(ret, ksig, 0); handle_signal()
236 struct ksignal ksig; do_signal() local
266 if (get_signal(&ksig)) { do_signal()
272 && !(ksig.ka.sa.sa_flags & SA_RESTART))) { do_signal()
278 handle_signal(&ksig, regs); do_signal()
/linux-4.1.27/arch/arm64/include/asm/
H A Dsignal32.h27 int compat_setup_frame(int usig, struct ksignal *ksig, sigset_t *set,
29 int compat_setup_rt_frame(int usig, struct ksignal *ksig, sigset_t *set,
35 static inline int compat_setup_frame(int usid, struct ksignal *ksig, compat_setup_frame() argument
41 static inline int compat_setup_rt_frame(int usig, struct ksignal *ksig, sigset_t *set, compat_setup_rt_frame() argument
/linux-4.1.27/arch/metag/kernel/
H A Dsignal.c143 static void __user *get_sigframe(struct ksignal *ksig, unsigned long sp) get_sigframe() argument
145 sp = sigsp(sp, ksig); get_sigframe()
151 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, setup_rt_frame() argument
158 frame = get_sigframe(ksig, regs->REG_SP); setup_rt_frame()
162 err = copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
191 regs->REG_ARG1 = ksig->sig; setup_rt_frame()
194 regs->REG_PC = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame()
208 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
214 ret = setup_rt_frame(ksig, oldset, regs); handle_signal()
216 signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP)); handle_signal()
230 struct ksignal ksig; do_signal() local
267 get_signal(&ksig); do_signal()
276 if (ksig.sig > 0) { do_signal()
281 && !(ksig.ka.sa.sa_flags & SA_RESTART))) { do_signal()
288 handle_signal(&ksig, regs); do_signal()
/linux-4.1.27/arch/blackfin/kernel/
H A Dsignal.c138 static inline void *get_sigframe(struct ksignal *ksig, get_sigframe() argument
141 unsigned long usp = sigsp(rdusp(), ksig); get_sigframe()
147 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) setup_rt_frame() argument
152 frame = get_sigframe(ksig, sizeof(*frame)); setup_rt_frame()
154 err |= __put_user(ksig->sig, &frame->sig); setup_rt_frame()
158 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
173 (struct fdpic_func_descriptor *) ksig->ka.sa.sa_handler; setup_rt_frame()
182 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; setup_rt_frame()
227 handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
234 handle_restart(regs, &ksig->ka, 1); handle_signal()
237 ret = setup_rt_frame(ksig, sigmask_to_save(), regs); handle_signal()
239 signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP)); handle_signal()
253 struct ksignal ksig; do_signal() local
257 if (get_signal(&ksig)) { do_signal()
259 handle_signal(&ksig, regs); do_signal()
/linux-4.1.27/arch/m32r/kernel/
H A Dsignal.c165 get_sigframe(struct ksignal *ksig, unsigned long sp, size_t frame_size) get_sigframe() argument
167 return (void __user *)((sigsp(sp, ksig) - frame_size) & -8ul); get_sigframe()
170 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, setup_rt_frame() argument
175 int sig = ksig->sig; setup_rt_frame()
177 frame = get_sigframe(ksig, regs->spu, sizeof(*frame)); setup_rt_frame()
188 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
202 regs->lr = (unsigned long)ksig->ka.sa.sa_restorer; setup_rt_frame()
209 regs->bpc = (unsigned long)ksig->ka.sa.sa_handler; setup_rt_frame()
237 handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
251 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { handle_signal()
264 ret = setup_rt_frame(ksig, sigmask_to_save(), regs); handle_signal()
266 signal_setup_done(ret, ksig, 0); handle_signal()
276 struct ksignal ksig; do_signal() local
287 if (get_signal(&ksig)) { do_signal()
295 handle_signal(&ksig, regs); do_signal()
/linux-4.1.27/arch/hexagon/kernel/
H A Dsignal.c39 static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, get_sigframe() argument
42 unsigned long sp = sigsp(regs->r29, ksig); get_sigframe()
107 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, setup_rt_frame() argument
114 frame = get_sigframe(ksig, regs, sizeof(struct rt_sigframe)); setup_rt_frame()
119 if (copy_siginfo_to_user(&frame->info, &ksig->info)) setup_rt_frame()
136 | (unsigned long long)ksig->sig; setup_rt_frame()
140 pt_set_elr(regs, (unsigned long)ksig->ka.sa.sa_handler); setup_rt_frame()
148 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
165 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { handle_signal()
185 ret = setup_rt_frame(ksig, sigmask_to_save(), regs); handle_signal()
187 signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP)); handle_signal()
195 struct ksignal ksig; do_signal() local
200 if (get_signal(&ksig)) { do_signal()
201 handle_signal(&ksig, regs); do_signal()
/linux-4.1.27/arch/arm64/kernel/
H A Dsignal.c212 static struct rt_sigframe __user *get_sigframe(struct ksignal *ksig, get_sigframe() argument
218 sp = sp_top = sigsp(regs->sp, ksig); get_sigframe()
250 static int setup_rt_frame(int usig, struct ksignal *ksig, sigset_t *set, setup_rt_frame() argument
256 frame = get_sigframe(ksig, regs); setup_rt_frame()
266 setup_return(regs, &ksig->ka, frame, usig); setup_rt_frame()
267 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { setup_rt_frame()
268 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
288 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
292 int usig = ksig->sig; handle_signal()
299 if (ksig->ka.sa.sa_flags & SA_SIGINFO) handle_signal()
300 ret = compat_setup_rt_frame(usig, ksig, oldset, regs); handle_signal()
302 ret = compat_setup_frame(usig, ksig, oldset, regs); handle_signal()
304 ret = setup_rt_frame(usig, ksig, oldset, regs); handle_signal()
319 signal_setup_done(ret, ksig, 0); handle_signal()
336 struct ksignal ksig; do_signal() local
370 if (get_signal(&ksig)) { do_signal()
380 !(ksig.ka.sa.sa_flags & SA_RESTART)))) { do_signal()
385 handle_signal(&ksig, regs); do_signal()
H A Dsignal32.c439 static void __user *compat_get_sigframe(struct ksignal *ksig, compat_get_sigframe() argument
443 compat_ulong_t sp = sigsp(regs->compat_sp, ksig); compat_get_sigframe()
549 int compat_setup_rt_frame(int usig, struct ksignal *ksig, compat_setup_rt_frame() argument
555 frame = compat_get_sigframe(ksig, regs, sizeof(*frame)); compat_setup_rt_frame()
560 err |= copy_siginfo_to_user32(&frame->info, &ksig->info); compat_setup_rt_frame()
570 compat_setup_return(regs, &ksig->ka, frame->sig.retcode, frame, usig); compat_setup_rt_frame()
578 int compat_setup_frame(int usig, struct ksignal *ksig, sigset_t *set, compat_setup_frame() argument
584 frame = compat_get_sigframe(ksig, regs, sizeof(*frame)); compat_setup_frame()
593 compat_setup_return(regs, &ksig->ka, frame->retcode, frame, usig); compat_setup_frame()
/linux-4.1.27/arch/sh/kernel/
H A Dsignal_32.c265 static int setup_frame(struct ksignal *ksig, sigset_t *set, setup_frame() argument
269 int err = 0, sig = ksig->sig; setup_frame()
271 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); setup_frame()
284 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_frame()
285 regs->pr = (unsigned long) ksig->ka.sa.sa_restorer; setup_frame()
315 (struct fdpic_func_descriptor __user *)ksig->ka.sa.sa_handler; setup_frame()
320 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; setup_frame()
331 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, setup_rt_frame() argument
335 int err = 0, sig = ksig->sig; setup_rt_frame()
337 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); setup_rt_frame()
342 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
354 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_rt_frame()
355 regs->pr = (unsigned long) ksig->ka.sa.sa_restorer; setup_rt_frame()
385 (struct fdpic_func_descriptor __user *)ksig->ka.sa.sa_handler; setup_rt_frame()
390 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; setup_rt_frame()
432 handle_signal(struct ksignal *ksig, struct pt_regs *regs, unsigned int save_r0) handle_signal() argument
438 if (ksig->ka.sa.sa_flags & SA_SIGINFO) handle_signal()
439 ret = setup_rt_frame(ksig, oldset, regs); handle_signal()
441 ret = setup_frame(ksig, oldset, regs); handle_signal()
443 signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP)); handle_signal()
457 struct ksignal ksig; do_signal() local
468 if (get_signal(&ksig)) { do_signal()
469 handle_syscall_restart(save_r0, regs, &ksig.ka.sa); do_signal()
472 handle_signal(&ksig, regs, save_r0); do_signal()
H A Dsignal_64.c44 handle_signal(struct ksignal *ksig, struct pt_regs *regs);
84 struct ksignal ksig; do_signal() local
95 if (get_signal(&ksig)) { do_signal()
96 handle_syscall_restart(regs, &ksig.ka.sa); do_signal()
99 handle_signal(&ksig, regs); do_signal()
377 static int setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) setup_frame() argument
380 int err = 0, sig = ksig->sig; setup_frame()
383 frame = get_sigframe(&ksig->ka, regs->regs[REG_SP], sizeof(*frame)); setup_frame()
404 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_frame()
409 ksig->ka->sa.sa_restorer | 0x1); setup_frame()
452 regs->pc = neff_sign_extend((unsigned long)ksig->ka.sa.sa_handler); setup_frame()
467 int err = 0, sig = ksig->sig; setup_rt_frame()
469 frame = get_sigframe(&ksig->ka, regs->regs[REG_SP], sizeof(*frame)); setup_rt_frame()
476 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
496 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_rt_frame()
501 ksig->ka.sa.sa_restorer | 0x1); setup_rt_frame()
533 regs->pc = neff_sign_extend((unsigned long)ksig->ka.sa.sa_handler); setup_rt_frame()
547 handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
553 if (ksig->ka.sa.sa_flags & SA_SIGINFO) handle_signal()
554 ret = setup_rt_frame(ksig, oldset, regs); handle_signal()
556 ret = setup_frame(ksig, oldset, regs); handle_signal()
558 signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP)); handle_signal()
/linux-4.1.27/arch/sparc/kernel/
H A Dsignal_32.c190 static inline void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesize) get_sigframe() argument
202 sp = sigsp(sp, ksig) - framesize; get_sigframe()
215 static int setup_frame(struct ksignal *ksig, struct pt_regs *regs, setup_frame() argument
234 get_sigframe(ksig, regs, sigframe_size); setup_frame()
282 regs->u_regs[UREG_I0] = ksig->sig; setup_frame()
287 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; setup_frame()
291 if (ksig->ka.ka_restorer) setup_frame()
292 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; setup_frame()
310 static int setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs, setup_rt_frame() argument
327 get_sigframe(ksig, regs, sigframe_size); setup_rt_frame()
375 err |= copy_siginfo_to_user(&sf->info, &ksig->info); setup_rt_frame()
381 regs->u_regs[UREG_I0] = ksig->sig; setup_rt_frame()
385 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame()
388 if (ksig->ka.ka_restorer) setup_rt_frame()
389 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; setup_rt_frame()
408 handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
413 if (ksig->ka.sa.sa_flags & SA_SIGINFO) handle_signal()
414 err = setup_rt_frame(ksig, regs, oldset); handle_signal()
416 err = setup_frame(ksig, regs, oldset); handle_signal()
417 signal_setup_done(err, ksig, 0); handle_signal()
447 struct ksignal ksig; do_signal() local
472 has_handler = get_signal(&ksig); do_signal()
486 syscall_restart(orig_i0, regs, &ksig.ka.sa); do_signal()
487 handle_signal(&ksig, regs); do_signal()
H A Dsignal32.c318 static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesize) get_sigframe() argument
333 sp = sigsp(sp, ksig) - framesize; get_sigframe()
404 static int setup_frame32(struct ksignal *ksig, struct pt_regs *regs, setup_frame32() argument
427 get_sigframe(ksig, regs, sigframe_size); setup_frame32()
506 regs->u_regs[UREG_I0] = ksig->sig; setup_frame32()
511 regs->tpc = (unsigned long) ksig->ka.sa.sa_handler; setup_frame32()
519 if (ksig->ka.ka_restorer) { setup_frame32()
520 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; setup_frame32()
535 static int setup_rt_frame32(struct ksignal *ksig, struct pt_regs *regs, setup_rt_frame32() argument
558 get_sigframe(ksig, regs, sigframe_size); setup_rt_frame32()
608 err |= copy_siginfo_to_user32(&sf->info, &ksig->info); setup_rt_frame32()
637 regs->u_regs[UREG_I0] = ksig->sig; setup_rt_frame32()
642 regs->tpc = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame32()
650 if (ksig->ka.ka_restorer) setup_rt_frame32()
651 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; setup_rt_frame32()
670 static inline void handle_signal32(struct ksignal *ksig, handle_signal32() argument
676 if (ksig->ka.sa.sa_flags & SA_SIGINFO) handle_signal32()
677 err = setup_rt_frame32(ksig, regs, oldset); handle_signal32()
679 err = setup_frame32(ksig, regs, oldset); handle_signal32()
681 signal_setup_done(err, ksig, 0); handle_signal32()
711 struct ksignal ksig; do_signal32() local
714 bool has_handler = get_signal(&ksig); do_signal32()
724 syscall_restart32(orig_i0, regs, &ksig.ka.sa); do_signal32()
725 handle_signal32(&ksig, regs); do_signal32()
H A Dsignal_64.c319 static inline void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesize) get_sigframe() argument
331 sp = sigsp(sp, ksig) - framesize; get_sigframe()
345 setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs) setup_rt_frame() argument
363 get_sigframe(ksig, regs, sf_size); setup_rt_frame()
409 if (ksig->ka.sa.sa_flags & SA_SIGINFO) setup_rt_frame()
410 err |= copy_siginfo_to_user(&sf->info, &ksig->info); setup_rt_frame()
412 err |= __put_user(ksig->sig, &sf->info.si_signo); setup_rt_frame()
420 regs->u_regs[UREG_I0] = ksig->sig; setup_rt_frame()
430 regs->tpc = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame()
437 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; setup_rt_frame()
468 struct ksignal ksig; do_signal() local
501 has_handler = get_signal(&ksig); do_signal()
512 syscall_restart(orig_i0, regs, &ksig.ka.sa); do_signal()
513 signal_setup_done(setup_rt_frame(&ksig, regs), &ksig, 0); do_signal() local
/linux-4.1.27/arch/cris/arch-v10/kernel/
H A Dsignal.c206 get_sigframe(struct ksignal *ksig, size_t frame_size) get_sigframe() argument
208 unsigned long sp = sigsp(rdusp(), ksig); get_sigframe()
225 static int setup_frame(struct ksignal *ksig, sigset_t *set, setup_frame() argument
232 frame = get_sigframe(ksig, sizeof(*frame)); setup_frame()
250 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_frame()
251 return_ip = (unsigned long)ksig->ka.sa.sa_restorer; setup_frame()
266 regs->irp = (unsigned long) ksig->ka.sa.sa_handler; /* what we enter NOW */ setup_frame()
268 regs->r10 = ksig->sig; /* first argument is signo */ setup_frame()
277 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, setup_rt_frame() argument
284 frame = get_sigframe(ksig, sizeof(*frame)); setup_rt_frame()
291 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
309 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_rt_frame()
310 return_ip = (unsigned long)ksig->ka.sa.sa_restorer; setup_rt_frame()
327 regs->irp = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame()
331 regs->r10 = ksig->sig; setup_rt_frame()
347 static inline void handle_signal(int canrestart, struct ksignal *ksig, handle_signal() argument
369 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { handle_signal()
382 if (ksig->ka.sa.sa_flags & SA_SIGINFO) handle_signal()
383 ret = setup_rt_frame(ksig, oldset, regs); handle_signal()
385 ret = setup_frame(ksig, oldset, regs); handle_signal()
387 signal_setup_done(ret, ksig, 0); handle_signal()
404 struct ksignal ksig; do_signal() local
415 if (get_signal(&ksig)) { do_signal()
417 handle_signal(canrestart, &ksig, regs); do_signal()
/linux-4.1.27/arch/cris/arch-v32/kernel/
H A Dsignal.c195 get_sigframe(struct ksignal *ksig, size_t frame_size) get_sigframe() argument
197 unsigned long sp = sigsp(rdusp(), ksig); get_sigframe()
213 setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) setup_frame() argument
220 frame = get_sigframe(ksig, sizeof(*frame)); setup_frame()
242 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_frame()
243 return_ip = (unsigned long)ksig->ka.sa.sa_restorer; setup_frame()
270 regs->erp = (unsigned long) ksig->ka.sa.sa_handler; setup_frame()
272 regs->r10 = ksig->sig; setup_frame()
281 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) setup_rt_frame() argument
288 frame = get_sigframe(ksig, sizeof(*frame)); setup_rt_frame()
295 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
313 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_rt_frame()
314 return_ip = (unsigned long) ksig->ka.sa.sa_restorer; setup_rt_frame()
346 regs->erp = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame()
348 regs->r10 = ksig->sig; setup_rt_frame()
360 handle_signal(int canrestart, struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
388 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { handle_signal()
407 if (ksig->ka.sa.sa_flags & SA_SIGINFO) handle_signal()
408 ret = setup_rt_frame(ksig, oldset, regs); handle_signal()
410 ret = setup_frame(ksig, oldset, regs); handle_signal()
412 signal_setup_done(ret, ksig, 0); handle_signal()
429 struct ksignal ksig; do_signal() local
441 if (get_signal(&ksig)) { do_signal()
443 handle_signal(canrestart, &ksig, regs); do_signal()
/linux-4.1.27/arch/tile/kernel/
H A Dsignal.c148 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, setup_rt_frame() argument
153 int err = 0, sig = ksig->sig; setup_rt_frame()
155 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame)); setup_rt_frame()
161 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { setup_rt_frame()
163 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
166 err |= __put_user(ksig->info.si_signo, &frame->info.si_signo); setup_rt_frame()
180 if (ksig->ka.sa.sa_flags & SA_RESTORER) setup_rt_frame()
181 restorer = (unsigned long) ksig->ka.sa.sa_restorer; setup_rt_frame()
190 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame()
210 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
225 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { handle_signal()
241 ret = compat_setup_rt_frame(ksig, oldset, regs); handle_signal()
244 ret = setup_rt_frame(ksig, oldset, regs); handle_signal()
246 signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP)); handle_signal()
256 struct ksignal ksig; do_signal() local
265 if (get_signal(&ksig)) { do_signal()
267 handle_signal(&ksig, regs); do_signal()
H A Dcompat_signal.c190 int compat_setup_rt_frame(struct ksignal *ksig, sigset_t *set, compat_setup_rt_frame() argument
195 int err = 0, sig = ksig->sig; compat_setup_rt_frame()
197 frame = compat_get_sigframe(&ksig->ka, regs, sizeof(*frame)); compat_setup_rt_frame()
203 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { compat_setup_rt_frame()
205 err |= copy_siginfo_to_user32(&frame->info, &ksig->info); compat_setup_rt_frame()
208 err |= __put_user(ksig->info.si_signo, &frame->info.si_signo); compat_setup_rt_frame()
222 if (ksig->ka.sa.sa_flags & SA_RESTORER) compat_setup_rt_frame()
223 restorer = ptr_to_compat_reg(ksig->ka.sa.sa_restorer); compat_setup_rt_frame()
232 regs->pc = ptr_to_compat_reg(ksig->ka.sa.sa_handler); compat_setup_rt_frame()
/linux-4.1.27/arch/arc/kernel/
H A Dsignal.c153 static inline void __user *get_sigframe(struct ksignal *ksig, get_sigframe() argument
157 unsigned long sp = sigsp(regs->sp, ksig); get_sigframe()
175 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) setup_rt_frame() argument
181 sf = get_sigframe(ksig, regs, sizeof(struct rt_sigframe)); setup_rt_frame()
200 if (unlikely(ksig->ka.sa.sa_flags & SA_SIGINFO)) { setup_rt_frame()
201 err |= copy_siginfo_to_user(&sf->info, &ksig->info); setup_rt_frame()
222 regs->r0 = ksig->sig; setup_rt_frame()
225 regs->ret = (unsigned long)ksig->ka.sa.sa_handler; setup_rt_frame()
231 if(!(ksig->ka.sa.sa_flags & SA_RESTORER)) setup_rt_frame()
234 regs->blink = (unsigned long)ksig->ka.sa.sa_restorer; setup_rt_frame()
296 handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
302 failed = setup_rt_frame(ksig, oldset, regs); handle_signal()
304 signal_setup_done(failed, ksig, 0); handle_signal()
309 struct ksignal ksig; do_signal() local
314 if (get_signal(&ksig)) { do_signal()
316 arc_restart_syscall(&ksig.ka, regs); do_signal()
319 handle_signal(&ksig, regs); do_signal()
/linux-4.1.27/arch/score/kernel/
H A Dsignal.c176 static int setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs, setup_rt_frame() argument
182 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame)); setup_rt_frame()
197 err |= copy_siginfo_to_user(&frame->rs_info, &ksig->info); setup_rt_frame()
209 regs->regs[4] = ksig->sig; setup_rt_frame()
212 regs->regs[29] = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame()
213 regs->cp0_epc = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame()
218 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
229 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { handle_signal()
245 ret = setup_rt_frame(ksig, regs, sigmask_to_save()); handle_signal()
247 signal_setup_done(ret, ksig, 0); handle_signal()
252 struct ksignal ksig; do_signal() local
262 if (get_signal(&ksig)) { do_signal()
264 handle_signal(&ksig, regs); do_signal()
/linux-4.1.27/arch/alpha/kernel/
H A Dsignal.c275 get_sigframe(struct ksignal *ksig, unsigned long sp, size_t frame_size) get_sigframe() argument
277 return (void __user *)((sigsp(sp, ksig) - frame_size) & -32ul); get_sigframe()
338 setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) setup_frame() argument
344 frame = get_sigframe(ksig, oldsp, sizeof(*frame)); setup_frame()
354 r26 = (unsigned long) ksig->ka.ka_restorer; setup_frame()
369 regs->r27 = regs->pc = (unsigned long) ksig->ka.sa.sa_handler; setup_frame()
370 regs->r16 = ksig->sig; /* a0: signal number */ setup_frame()
383 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) setup_rt_frame() argument
389 frame = get_sigframe(ksig, oldsp, sizeof(*frame)); setup_rt_frame()
393 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
408 r26 = (unsigned long) ksig->ka.ka_restorer; setup_rt_frame()
423 regs->r27 = regs->pc = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame()
424 regs->r16 = ksig->sig; /* a0: signal number */ setup_rt_frame()
442 handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
447 if (ksig->ka.sa.sa_flags & SA_SIGINFO) handle_signal()
448 ret = setup_rt_frame(ksig, oldset, regs); handle_signal()
450 ret = setup_frame(ksig, oldset, regs); handle_signal()
452 signal_setup_done(ret, ksig, 0); handle_signal()
496 struct ksignal ksig; do_signal() local
499 if (get_signal(&ksig)) { do_signal()
504 syscall_restart(r0, r19, regs, &ksig.ka); do_signal()
505 handle_signal(&ksig, regs); do_signal()
/linux-4.1.27/arch/microblaze/kernel/
H A Dsignal.c148 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, size_t frame_size) get_sigframe() argument
151 unsigned long sp = sigsp(regs->r1, ksig); get_sigframe()
156 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, setup_rt_frame() argument
160 int err = 0, sig = ksig->sig; setup_rt_frame()
167 frame = get_sigframe(ksig, regs, sizeof(*frame)); setup_rt_frame()
172 if (ksig->ka.sa.sa_flags & SA_SIGINFO) setup_rt_frame()
173 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
230 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; setup_rt_frame()
270 handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
276 ret = setup_rt_frame(ksig, oldset, regs); handle_signal()
278 signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP)); handle_signal()
292 struct ksignal ksig; do_signal() local
300 if (get_signal(&ksig)) { do_signal()
303 handle_restart(regs, &ksig.ka, 1); do_signal()
304 handle_signal(&ksig, regs); do_signal()
/linux-4.1.27/arch/openrisc/kernel/
H A Dsignal.c135 static inline void __user *get_sigframe(struct ksignal *ksig, get_sigframe() argument
142 sp = sigsp(sp, ksig); get_sigframe()
155 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, setup_rt_frame() argument
162 frame = get_sigframe(ksig, regs, sizeof(*frame)); setup_rt_frame()
168 if (ksig->ka.sa.sa_flags & SA_SIGINFO) setup_rt_frame()
169 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
197 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; /* what we enter NOW */ setup_rt_frame()
199 regs->gpr[3] = (unsigned long)ksig->sig; /* arg 1: signo */ setup_rt_frame()
210 handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
214 ret = setup_rt_frame(ksig, sigmask_to_save(), regs); handle_signal()
216 signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP)); handle_signal()
233 struct ksignal ksig; do_signal() local
268 if (get_signal(&ksig)) { do_signal()
273 && !(ksig.ka.sa.sa_flags & SA_RESTART))) { do_signal()
279 handle_signal(&ksig, regs); do_signal()
/linux-4.1.27/arch/mips/kernel/
H A Dsignal.c283 void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, get_sigframe() argument
298 sp = sigsp(sp, ksig); get_sigframe()
429 static int setup_frame(void *sig_return, struct ksignal *ksig, setup_frame() argument
435 frame = get_sigframe(ksig, regs, sizeof(*frame)); setup_frame()
454 regs->regs[ 4] = ksig->sig; setup_frame()
459 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; setup_frame()
468 static int setup_rt_frame(void *sig_return, struct ksignal *ksig, setup_rt_frame() argument
474 frame = get_sigframe(ksig, regs, sizeof(*frame)); setup_rt_frame()
479 err |= copy_siginfo_to_user(&frame->rs_info, &ksig->info); setup_rt_frame()
501 regs->regs[ 4] = ksig->sig; setup_rt_frame()
506 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame()
526 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
548 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { handle_signal()
562 if (sig_uses_siginfo(&ksig->ka)) handle_signal()
564 ksig, regs, oldset); handle_signal()
566 ret = abi->setup_frame(vdso + abi->signal_return_offset, ksig, handle_signal()
569 signal_setup_done(ret, ksig, 0); handle_signal()
574 struct ksignal ksig; do_signal() local
576 if (get_signal(&ksig)) { do_signal()
578 handle_signal(&ksig, regs); do_signal()
H A Dsignal_n32.c105 static int setup_rt_frame_n32(void *sig_return, struct ksignal *ksig, setup_rt_frame_n32() argument
111 frame = get_sigframe(ksig, regs, sizeof(*frame)); setup_rt_frame_n32()
116 err |= copy_siginfo_to_user32(&frame->rs_info, &ksig->info); setup_rt_frame_n32()
138 regs->regs[ 4] = ksig->sig; setup_rt_frame_n32()
143 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame_n32()
H A Dsignal-common.h25 extern void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
H A Dsignal32.c491 static int setup_frame_32(void *sig_return, struct ksignal *ksig, setup_frame_32() argument
497 frame = get_sigframe(ksig, regs, sizeof(*frame)); setup_frame_32()
517 regs->regs[ 4] = ksig->sig; setup_frame_32()
522 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; setup_frame_32()
531 static int setup_rt_frame_32(void *sig_return, struct ksignal *ksig, setup_rt_frame_32() argument
537 frame = get_sigframe(ksig, regs, sizeof(*frame)); setup_rt_frame_32()
542 err |= copy_siginfo_to_user32(&frame->rs_info, &ksig->info); setup_rt_frame_32()
564 regs->regs[ 4] = ksig->sig; setup_rt_frame_32()
569 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame_32()
/linux-4.1.27/arch/c6x/kernel/
H A Dsignal.c130 static inline void __user *get_sigframe(struct ksignal *ksig, get_sigframe() argument
134 unsigned long sp = sigsp(regs->sp, ksig); get_sigframe()
143 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, setup_rt_frame() argument
150 frame = get_sigframe(ksig, regs, sizeof(*frame)); setup_rt_frame()
157 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
195 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame()
198 regs->a4 = ksig->sig; setup_rt_frame()
238 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs, handle_signal() argument
253 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { handle_signal()
266 ret = setup_rt_frame(ksig, sigmask_to_save(), regs); handle_signal()
267 signal_setup_done(ret, ksig, 0); handle_signal()
275 struct ksignal ksig; do_signal() local
282 if (get_signal(&ksig)) { do_signal()
283 handle_signal(&ksig, regs, syscall); do_signal()
/linux-4.1.27/arch/unicore32/kernel/
H A Dsignal.c241 static int setup_frame(struct ksignal *ksig, sigset_t *set, setup_frame() argument
244 struct sigframe __user *frame = get_sigframe(&ksig->ka, regs, sizeof(*frame)); setup_frame()
257 err |= setup_return(regs, &ksig->ka, frame->retcode, frame, setup_frame()
258 ksig->sig); setup_frame()
263 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, setup_rt_frame() argument
267 get_sigframe(&ksig->ka, regs, sizeof(*frame)); setup_rt_frame()
273 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
280 err |= setup_return(regs, &ksig->ka, frame->sig.retcode, frame, setup_rt_frame()
281 ksig->sig); setup_rt_frame()
304 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs, handle_signal() argument
309 int usig = ksig->sig; handle_signal()
322 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { handle_signal()
335 if (ksig->ka.sa.sa_flags & SA_SIGINFO) handle_signal()
336 ret = setup_rt_frame(ksig, oldset, regs); handle_signal()
338 ret = setup_frame(ksig, oldset, regs); handle_signal()
345 signal_setup_done(ret, ksig, 0); handle_signal()
359 struct ksignal ksig; do_signal() local
370 if (get_signal(&ksig)) { do_signal()
371 handle_signal(&ksig, regs, syscall); do_signal()
/linux-4.1.27/arch/x86/um/
H A Dsignal.c373 int setup_signal_stack_sc(unsigned long stack_top, struct ksignal *ksig, setup_signal_stack_sc() argument
378 int err = 0, sig = ksig->sig; setup_signal_stack_sc()
387 if (ksig->ka.sa.sa_flags & SA_RESTORER) setup_signal_stack_sc()
388 restorer = ksig->ka.sa.sa_restorer; setup_signal_stack_sc()
412 PT_REGS_IP(regs) = (unsigned long) ksig->ka.sa.sa_handler; setup_signal_stack_sc()
419 int setup_signal_stack_si(unsigned long stack_top, struct ksignal *ksig, setup_signal_stack_si() argument
424 int err = 0, sig = ksig->sig; setup_signal_stack_si()
432 if (ksig->ka.sa.sa_flags & SA_RESTORER) setup_signal_stack_si()
433 restorer = ksig->ka.sa.sa_restorer; setup_signal_stack_si()
439 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_signal_stack_si()
458 PT_REGS_IP(regs) = (unsigned long) ksig->ka.sa.sa_handler; setup_signal_stack_si()
503 int setup_signal_stack_si(unsigned long stack_top, struct ksignal *ksig, setup_signal_stack_si() argument
507 int err = 0, sig = ksig->sig; setup_signal_stack_si()
517 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { setup_signal_stack_si()
518 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_signal_stack_si()
543 if (ksig->ka.sa.sa_flags & SA_RESTORER) setup_signal_stack_si()
544 err |= __put_user(ksig->ka.sa.sa_restorer, &frame->pretcode); setup_signal_stack_si()
563 PT_REGS_IP(regs) = (unsigned long) ksig->ka.sa.sa_handler; setup_signal_stack_si()
/linux-4.1.27/arch/s390/kernel/
H A Dsignal.c386 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, setup_rt_frame() argument
406 frame = get_sigframe(&ksig->ka, regs, frame_size); setup_rt_frame()
416 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_rt_frame()
418 ksig->ka.sa.sa_restorer | PSW_ADDR_AMODE; setup_rt_frame()
427 if (copy_siginfo_to_user(&frame->info, &ksig->info)) setup_rt_frame()
449 regs->psw.addr = (unsigned long) ksig->ka.sa.sa_handler | PSW_ADDR_AMODE; setup_rt_frame()
451 regs->gprs[2] = ksig->sig; setup_rt_frame()
458 static void handle_signal(struct ksignal *ksig, sigset_t *oldset, handle_signal() argument
464 if (ksig->ka.sa.sa_flags & SA_SIGINFO) handle_signal()
465 ret = setup_rt_frame(ksig, oldset, regs); handle_signal()
467 ret = setup_frame(ksig->sig, &ksig->ka, oldset, regs); handle_signal()
469 signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLE_STEP)); handle_signal()
483 struct ksignal ksig; do_signal() local
494 if (get_signal(&ksig)) { do_signal()
505 if (!(ksig.ka.sa.sa_flags & SA_RESTART)) { do_signal()
522 handle_signal32(&ksig, oldset, regs); do_signal()
524 handle_signal(&ksig, oldset, regs); do_signal()
H A Dcompat_signal.c390 static int setup_frame32(struct ksignal *ksig, sigset_t *set, setup_frame32() argument
393 int sig = ksig->sig; setup_frame32()
408 frame = get_sigframe(&ksig->ka, regs, frame_size); setup_frame32()
439 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_frame32()
441 ksig->ka.sa.sa_restorer | PSW32_ADDR_AMODE; setup_frame32()
457 regs->psw.addr = (__force __u64) ksig->ka.sa.sa_handler; setup_frame32()
475 static int setup_rt_frame32(struct ksignal *ksig, sigset_t *set, setup_rt_frame32() argument
498 frame = get_sigframe(&ksig->ka, regs, frame_size); setup_rt_frame32()
508 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_rt_frame32()
510 ksig->ka.sa.sa_restorer | PSW32_ADDR_AMODE; setup_rt_frame32()
519 if (copy_siginfo_to_user32(&frame->info, &ksig->info)) setup_rt_frame32()
542 regs->psw.addr = (__u64 __force) ksig->ka.sa.sa_handler; setup_rt_frame32()
544 regs->gprs[2] = ksig->sig; setup_rt_frame32()
555 void handle_signal32(struct ksignal *ksig, sigset_t *oldset, handle_signal32() argument
561 if (ksig->ka.sa.sa_flags & SA_SIGINFO) handle_signal32()
562 ret = setup_rt_frame32(ksig, oldset, regs); handle_signal32()
564 ret = setup_frame32(ksig, oldset, regs); handle_signal32()
566 signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLE_STEP)); handle_signal32()
H A Dentry.h55 void handle_signal32(struct ksignal *ksig, sigset_t *oldset,
/linux-4.1.27/arch/arm/kernel/
H A Dsignal.c302 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, int framesize) get_sigframe() argument
304 unsigned long sp = sigsp(regs->ARM_sp, ksig); get_sigframe()
322 setup_return(struct pt_regs *regs, struct ksignal *ksig, setup_return() argument
325 unsigned long handler = (unsigned long)ksig->ka.sa.sa_handler; setup_return()
335 if (ksig->ka.sa.sa_flags & SA_THIRTYTWO) setup_return()
368 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_return()
369 retcode = (unsigned long)ksig->ka.sa.sa_restorer; setup_return()
373 if (ksig->ka.sa.sa_flags & SA_SIGINFO) setup_return()
409 regs->ARM_r0 = ksig->sig; setup_return()
419 setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) setup_frame() argument
421 struct sigframe __user *frame = get_sigframe(ksig, regs, sizeof(*frame)); setup_frame()
434 err = setup_return(regs, ksig, frame->retcode, frame); setup_frame()
440 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) setup_rt_frame() argument
442 struct rt_sigframe __user *frame = get_sigframe(ksig, regs, sizeof(*frame)); setup_rt_frame()
448 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
456 err = setup_return(regs, ksig, frame->sig.retcode, frame); setup_rt_frame()
474 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
482 if (ksig->ka.sa.sa_flags & SA_SIGINFO) handle_signal()
483 ret = setup_rt_frame(ksig, oldset, regs); handle_signal()
485 ret = setup_frame(ksig, oldset, regs); handle_signal()
492 signal_setup_done(ret, ksig, 0); handle_signal()
507 struct ksignal ksig; do_signal() local
544 if (get_signal(&ksig)) { do_signal()
550 && !(ksig.ka.sa.sa_flags & SA_RESTART))) { do_signal()
555 handle_signal(&ksig, regs); do_signal()
/linux-4.1.27/arch/x86/ia32/
H A Dia32_signal.c307 static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, get_sigframe() argument
317 if (ksig->ka.sa.sa_flags & SA_ONSTACK) get_sigframe()
318 sp = sigsp(sp, ksig); get_sigframe()
321 !(ksig->ka.sa.sa_flags & SA_RESTORER) && get_sigframe()
322 ksig->ka.sa.sa_restorer) get_sigframe()
323 sp = (unsigned long) ksig->ka.sa.sa_restorer; get_sigframe()
342 int ia32_setup_frame(int sig, struct ksignal *ksig, ia32_setup_frame() argument
361 frame = get_sigframe(ksig, regs, sizeof(*frame), &fpstate); ia32_setup_frame()
378 if (ksig->ka.sa.sa_flags & SA_RESTORER) { ia32_setup_frame()
379 restorer = ksig->ka.sa.sa_restorer; ia32_setup_frame()
404 regs->ip = (unsigned long) ksig->ka.sa.sa_handler; ia32_setup_frame()
420 int ia32_setup_rt_frame(int sig, struct ksignal *ksig, ia32_setup_rt_frame() argument
441 frame = get_sigframe(ksig, regs, sizeof(*frame), &fpstate); ia32_setup_rt_frame()
459 if (ksig->ka.sa.sa_flags & SA_RESTORER) ia32_setup_rt_frame()
460 restorer = ksig->ka.sa.sa_restorer; ia32_setup_rt_frame()
473 err |= copy_siginfo_to_user32(&frame->info, &ksig->info); ia32_setup_rt_frame()
483 regs->ip = (unsigned long) ksig->ka.sa.sa_handler; ia32_setup_rt_frame()
/linux-4.1.27/arch/xtensa/kernel/
H A Dsignal.c334 static int setup_frame(struct ksignal *ksig, sigset_t *set, setup_frame() argument
338 int err = 0, sig = ksig->sig; setup_frame()
343 if ((ksig->ka.sa.sa_flags & SA_ONSTACK) != 0 && sas_ss_flags(sp) == 0) { setup_frame()
356 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { setup_frame()
357 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_frame()
368 if (ksig->ka.sa.sa_flags & SA_RESTORER) { setup_frame()
369 ra = (unsigned long)ksig->ka.sa.sa_restorer; setup_frame()
389 start_thread(regs, (unsigned long) ksig->ka.sa.sa_handler, setup_frame()
420 struct ksignal ksig; do_signal() local
424 if (get_signal(&ksig)) { do_signal()
440 if (!(ksig.ka.sa.sa_flags & SA_RESTART)) { do_signal()
459 ret = setup_frame(&ksig, sigmask_to_save(), regs); do_signal()
460 signal_setup_done(ret, &ksig, 0); do_signal()
/linux-4.1.27/arch/parisc/kernel/
H A Dsignal.c229 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs, setup_rt_frame() argument
243 frame = get_sigframe(&ksig->ka, usp, sizeof(*frame)); setup_rt_frame()
246 DBG(1,"setup_rt_frame: frame %p info %p\n", frame, ksig->info); setup_rt_frame()
255 err |= copy_siginfo_to_user32(&compat_frame->info, &ksig->info); setup_rt_frame()
267 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
316 haddr = A(ksig->ka.sa.sa_handler); setup_rt_frame()
388 regs->gr[26] = ksig->sig; /* signal number */ setup_rt_frame()
420 handle_signal(struct ksignal *ksig, struct pt_regs *regs, int in_syscall) handle_signal() argument
426 ksig->sig, ksig->ka, ksig->info, oldset, regs); handle_signal()
429 ret = setup_rt_frame(ksig, oldset, regs, in_syscall); handle_signal()
431 signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP) || handle_signal()
541 struct ksignal ksig; do_signal() local
546 if (get_signal(&ksig)) { do_signal()
550 syscall_restart(regs, &ksig.ka); do_signal()
552 handle_signal(&ksig, regs, in_syscall); do_signal()
/linux-4.1.27/arch/ia64/kernel/
H A Dsignal.c316 setup_frame(struct ksignal *ksig, sigset_t *set, struct sigscratch *scr) setup_frame() argument
325 if (ksig->ka.sa.sa_flags & SA_ONSTACK) { setup_frame()
349 return force_sigsegv_info(ksig->sig, (void __user *) setup_frame()
356 return force_sigsegv_info(ksig->sig, frame); setup_frame()
358 err = __put_user(ksig->sig, &frame->arg0); setup_frame()
363 err |= __put_user(ksig->ka.sa.sa_handler, &frame->handler); setup_frame()
365 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_frame()
371 return force_sigsegv_info(ksig->sig, frame); setup_frame()
396 current->comm, current->pid, ksig->sig, scr->pt.r12, frame->sc.sc_ip, frame->handler); setup_frame()
402 handle_signal (struct ksignal *ksig, struct sigscratch *scr) handle_signal() argument
404 int ret = setup_frame(ksig, sigmask_to_save(), scr); handle_signal()
407 signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP)); handle_signal()
421 struct ksignal ksig; ia64_do_signal() local
428 get_signal(&ksig); ia64_do_signal()
445 if (ksig.sig <= 0) ia64_do_signal()
457 if ((ksig.ka.sa.sa_flags & SA_RESTART) == 0) { ia64_do_signal()
472 if (handle_signal(&ksig, scr)) ia64_do_signal()
/linux-4.1.27/arch/m68k/kernel/
H A Dsignal.c838 get_sigframe(struct ksignal *ksig, size_t frame_size) get_sigframe() argument
840 unsigned long usp = sigsp(rdusp(), ksig); get_sigframe()
845 static int setup_frame(struct ksignal *ksig, sigset_t *set, setup_frame() argument
851 int err = 0, sig = ksig->sig; setup_frame()
861 frame = get_sigframe(ksig, sizeof(*frame) + fsize); setup_frame()
898 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; setup_frame()
926 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, setup_rt_frame() argument
931 int err = 0, sig = ksig->sig; setup_rt_frame()
941 frame = get_sigframe(ksig, sizeof(*frame)); setup_rt_frame()
949 err |= copy_siginfo_to_user(&frame->info, &ksig->info); setup_rt_frame()
986 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; setup_rt_frame()
1051 handle_signal(struct ksignal *ksig, struct pt_regs *regs) handle_signal() argument
1058 handle_restart(regs, &ksig->ka, 1); handle_signal()
1061 if (ksig->ka.sa.sa_flags & SA_SIGINFO) handle_signal()
1062 err = setup_rt_frame(ksig, oldset, regs); handle_signal()
1064 err = setup_frame(ksig, oldset, regs); handle_signal()
1066 signal_setup_done(err, ksig, 0); handle_signal()
1081 struct ksignal ksig; do_signal() local
1085 if (get_signal(&ksig)) { do_signal()
1087 handle_signal(&ksig, regs); do_signal()
/linux-4.1.27/include/linux/
H A Dsignal.h295 extern int get_signal(struct ksignal *ksig);
296 extern void signal_setup_done(int failed, struct ksignal *ksig, int stepping);
H A Dsched.h2456 static inline unsigned long sigsp(unsigned long sp, struct ksignal *ksig) sigsp() argument
2458 if (unlikely((ksig->ka.sa.sa_flags & SA_ONSTACK)) && ! sas_ss_flags(sp)) sigsp()
/linux-4.1.27/kernel/
H A Dsignal.c2181 int get_signal(struct ksignal *ksig) get_signal() argument
2251 signr = dequeue_signal(current, &current->blocked, &ksig->info); get_signal()
2257 signr = ptrace_signal(signr, &ksig->info); get_signal()
2265 trace_signal_deliver(signr, &ksig->info, ka); get_signal()
2271 ksig->ka = *ka; get_signal()
2321 if (likely(do_signal_stop(ksig->info.si_signo))) { get_signal()
2342 print_fatal_signal(ksig->info.si_signo); get_signal()
2352 do_coredump(&ksig->info); get_signal()
2358 do_group_exit(ksig->info.si_signo); get_signal()
2363 ksig->sig = signr; get_signal()
2364 return ksig->sig > 0; get_signal()
2369 * @ksig: kernel signal struct
2373 * delivered. It updates the blocked signals accordingly (@ksig->ka.sa.sa_mask
2375 * is set in @ksig->ka.sa.sa_flags. Tracing is notified.
2377 static void signal_delivered(struct ksignal *ksig, int stepping) signal_delivered() argument
2387 sigorsets(&blocked, &current->blocked, &ksig->ka.sa.sa_mask); signal_delivered()
2388 if (!(ksig->ka.sa.sa_flags & SA_NODEFER)) signal_delivered()
2389 sigaddset(&blocked, ksig->sig); signal_delivered()
2394 void signal_setup_done(int failed, struct ksignal *ksig, int stepping) signal_setup_done() argument
2397 force_sigsegv(ksig->sig, current); signal_setup_done()
2399 signal_delivered(ksig, stepping); signal_setup_done()
/linux-4.1.27/arch/x86/include/asm/
H A Dfpu-internal.h30 int ia32_setup_rt_frame(int sig, struct ksignal *ksig,
32 int ia32_setup_frame(int sig, struct ksignal *ksig,
/linux-4.1.27/arch/tile/include/asm/
H A Dcompat.h270 extern int compat_setup_rt_frame(struct ksignal *ksig, sigset_t *set,

Completed in 628 milliseconds