Home
last modified time | relevance | path

Searched refs:ksig (Results 1 – 25 of 43) sorted by relevance

12

/linux/arch/um/kernel/
H A Dsignal.c49 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument
69 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal()
82 if ((ksig->ka.sa.sa_flags & SA_ONSTACK) && (sas_ss_flags(sp) == 0)) in handle_signal()
86 if (!(ksig->ka.sa.sa_flags & SA_SIGINFO)) in handle_signal()
87 err = setup_signal_stack_sc(sp, ksig, regs, oldset); in handle_signal()
90 err = setup_signal_stack_si(sp, ksig, regs, oldset); in handle_signal()
92 signal_setup_done(err, ksig, singlestep); in handle_signal()
97 struct ksignal ksig; in do_signal() local
100 while (get_signal(&ksig)) { in do_signal()
103 handle_signal(&ksig, regs); in do_signal()
/linux/arch/csky/kernel/
H A Dsignal.c113 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument
128 sp = sigsp(sp, ksig) - framesize; in get_sigframe()
137 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_rt_frame() argument
142 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame()
146 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame()
168 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame()
170 regs->a0 = ksig->sig; /* a0: signal number */ in setup_rt_frame()
177 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument
195 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal()
208 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal()
[all …]
/linux/arch/arm/kernel/
H A Dsignal.c301 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, int framesize) in get_sigframe() argument
303 unsigned long sp = sigsp(regs->ARM_sp, ksig); in get_sigframe()
321 setup_return(struct pt_regs *regs, struct ksignal *ksig, in setup_return() argument
324 unsigned long handler = (unsigned long)ksig->ka.sa.sa_handler; in setup_return()
345 if (ksig->ka.sa.sa_flags & SA_THIRTYTWO) in setup_return()
376 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_return()
377 retcode = (unsigned long)ksig->ka.sa.sa_restorer; in setup_return()
387 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_return()
398 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_return()
435 regs->ARM_r0 = ksig->sig; in setup_return()
[all …]
/linux/arch/sh/kernel/
H A Dsignal_32.c269 static int setup_frame(struct ksignal *ksig, sigset_t *set, in setup_frame() argument
273 int err = 0, sig = ksig->sig; in setup_frame()
275 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); in setup_frame()
288 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame()
289 regs->pr = (unsigned long) ksig->ka.sa.sa_restorer; in setup_frame()
319 (struct fdpic_func_descriptor __user *)ksig->ka.sa.sa_handler; in setup_frame()
324 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; in setup_frame()
335 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument
339 int err = 0, sig = ksig->sig; in setup_rt_frame()
341 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); in setup_rt_frame()
[all …]
/linux/arch/sparc/kernel/
H A Dsignal_32.c200 static inline void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long f… in get_sigframe() argument
212 sp = sigsp(sp, ksig) - framesize; in get_sigframe()
225 static int setup_frame(struct ksignal *ksig, struct pt_regs *regs, in setup_frame() argument
244 get_sigframe(ksig, regs, sigframe_size); in setup_frame()
292 regs->u_regs[UREG_I0] = ksig->sig; in setup_frame()
297 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame()
301 if (ksig->ka.ka_restorer) in setup_frame()
302 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; in setup_frame()
320 static int setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs, in setup_rt_frame() argument
337 get_sigframe(ksig, regs, sigframe_size); in setup_rt_frame()
[all …]
H A Dsignal32.c260 static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesiz… in get_sigframe() argument
275 sp = sigsp(sp, ksig) - framesize; in get_sigframe()
352 static int setup_frame32(struct ksignal *ksig, struct pt_regs *regs, in setup_frame32() argument
375 get_sigframe(ksig, regs, sigframe_size); in setup_frame32()
382 force_sigsegv(ksig->sig); in setup_frame32()
458 regs->u_regs[UREG_I0] = ksig->sig; in setup_frame32()
463 regs->tpc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame32()
471 if (ksig->ka.ka_restorer) { in setup_frame32()
472 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; in setup_frame32()
487 static int setup_rt_frame32(struct ksignal *ksig, struct pt_regs *regs, in setup_rt_frame32() argument
[all …]
H A Dsignal_64.c325 static inline void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long f… in get_sigframe() argument
337 sp = sigsp(sp, ksig) - framesize; in get_sigframe()
351 setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs) in setup_rt_frame() argument
369 get_sigframe(ksig, regs, sf_size); in setup_rt_frame()
376 force_sigsegv(ksig->sig); in setup_rt_frame()
419 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame()
420 err |= copy_siginfo_to_user(&sf->info, &ksig->info); in setup_rt_frame()
422 err |= __put_user(ksig->sig, &sf->info.si_signo); in setup_rt_frame()
430 regs->u_regs[UREG_I0] = ksig->sig; in setup_rt_frame()
440 regs->tpc = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame()
[all …]
/linux/arch/microblaze/kernel/
H A Dsignal.c146 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, size_t frame_size) in get_sigframe() argument
149 unsigned long sp = sigsp(regs->r1, ksig); in get_sigframe()
154 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument
158 int err = 0, sig = ksig->sig; in setup_rt_frame()
163 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame()
168 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame()
169 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame()
220 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame()
260 handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument
266 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal()
[all …]
/linux/arch/hexagon/kernel/
H A Dsignal.c27 static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, in get_sigframe() argument
30 unsigned long sp = sigsp(regs->r29, ksig); in get_sigframe()
95 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument
102 frame = get_sigframe(ksig, regs, sizeof(struct rt_sigframe)); in setup_rt_frame()
107 if (copy_siginfo_to_user(&frame->info, &ksig->info)) in setup_rt_frame()
124 | (unsigned long long)ksig->sig; in setup_rt_frame()
128 pt_set_elr(regs, (unsigned long)ksig->ka.sa.sa_handler); in setup_rt_frame()
136 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument
153 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal()
173 ret = setup_rt_frame(ksig, sigmask_to_save(), regs); in handle_signal()
[all …]
/linux/arch/nios2/kernel/
H A Dsignal.c166 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument
176 usp = sigsp(usp, ksig); in get_sigframe()
182 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument
188 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame()
190 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame()
191 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame()
209 regs->r4 = (unsigned long) ksig->sig; in setup_rt_frame()
212 regs->ea = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame()
216 force_sigsegv(ksig->sig); in setup_rt_frame()
223 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument
[all …]
/linux/arch/arc/kernel/
H A Dsignal.c249 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument
253 unsigned long sp = sigsp(regs->sp, ksig); in get_sigframe()
271 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_rt_frame() argument
277 sf = get_sigframe(ksig, regs, sizeof(struct rt_sigframe)); in setup_rt_frame()
296 if (unlikely(ksig->ka.sa.sa_flags & SA_SIGINFO)) { in setup_rt_frame()
297 err |= copy_siginfo_to_user(&sf->info, &ksig->info); in setup_rt_frame()
318 regs->r0 = ksig->sig; in setup_rt_frame()
321 regs->ret = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame()
327 if(!(ksig->ka.sa.sa_flags & SA_RESTORER)) in setup_rt_frame()
330 regs->blink = (unsigned long)ksig->ka.sa.sa_restorer; in setup_rt_frame()
[all …]
/linux/arch/riscv/kernel/
H A Dsignal.c312 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument
327 sp = sigsp(sp, ksig) - framesize; in get_sigframe()
335 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument
343 frame = get_sigframe(ksig, regs, frame_size); in setup_rt_frame()
347 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame()
385 regs->epc = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame()
387 regs->a0 = ksig->sig; /* a0: signal number */ in setup_rt_frame()
393 current->comm, task_pid_nr(current), ksig->sig, in setup_rt_frame()
400 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument
405 rseq_signal_deliver(ksig, regs); in handle_signal()
[all …]
H A Dcompat_signal.c176 static inline void __user *compat_get_sigframe(struct ksignal *ksig, in compat_get_sigframe() argument
191 sp = sigsp(sp, ksig) - framesize; in compat_get_sigframe()
199 int compat_setup_rt_frame(struct ksignal *ksig, sigset_t *set, in compat_setup_rt_frame() argument
205 frame = compat_get_sigframe(ksig, regs, sizeof(*frame)); in compat_setup_rt_frame()
209 err |= copy_siginfo_to_user32(&frame->info, &ksig->info); in compat_setup_rt_frame()
230 regs->epc = (unsigned long)ksig->ka.sa.sa_handler; in compat_setup_rt_frame()
232 regs->a0 = ksig->sig; /* a0: signal number */ in compat_setup_rt_frame()
238 current->comm, task_pid_nr(current), ksig->sig, in compat_setup_rt_frame()
/linux/arch/powerpc/kernel/
H A Dsignal.c161 void __user *get_sigframe(struct ksignal *ksig, struct task_struct *tsk, in get_sigframe() argument
172 oldsp = sigsp(oldsp, ksig); in get_sigframe()
246 struct ksignal ksig = { .sig = 0 }; in do_signal() local
251 get_signal(&ksig); in do_signal()
254 check_syscall_restart(tsk->thread.regs, &ksig.ka, ksig.sig > 0); in do_signal()
256 if (ksig.sig <= 0) { in do_signal()
280 rseq_signal_deliver(&ksig, tsk->thread.regs); in do_signal()
283 if (ksig.ka.sa.sa_flags & SA_SIGINFO) in do_signal()
284 ret = handle_rt_signal32(&ksig, oldset, tsk); in do_signal()
286 ret = handle_signal32(&ksig, oldset, tsk); in do_signal()
[all …]
/linux/arch/alpha/kernel/
H A Dsignal.c266 get_sigframe(struct ksignal *ksig, unsigned long sp, size_t frame_size) in get_sigframe() argument
268 return (void __user *)((sigsp(sp, ksig) - frame_size) & -32ul); in get_sigframe()
329 setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_frame() argument
335 frame = get_sigframe(ksig, oldsp, sizeof(*frame)); in setup_frame()
345 r26 = (unsigned long) ksig->ka.ka_restorer; in setup_frame()
360 regs->r27 = regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame()
361 regs->r16 = ksig->sig; /* a0: signal number */ in setup_frame()
374 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_rt_frame() argument
380 frame = get_sigframe(ksig, oldsp, sizeof(*frame)); in setup_rt_frame()
384 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame()
[all …]
/linux/arch/x86/um/
H A Dsignal.c227 int setup_signal_stack_sc(unsigned long stack_top, struct ksignal *ksig, in setup_signal_stack_sc() argument
234 int err = 0, sig = ksig->sig; in setup_signal_stack_sc()
247 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_signal_stack_sc()
248 restorer = ksig->ka.sa.sa_restorer; in setup_signal_stack_sc()
277 PT_REGS_IP(regs) = (unsigned long) ksig->ka.sa.sa_handler; in setup_signal_stack_sc()
284 int setup_signal_stack_si(unsigned long stack_top, struct ksignal *ksig, in setup_signal_stack_si() argument
291 int err = 0, sig = ksig->sig; in setup_signal_stack_si()
303 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_signal_stack_si()
304 restorer = ksig->ka.sa.sa_restorer; in setup_signal_stack_si()
310 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_signal_stack_si()
[all …]
/linux/arch/x86/include/asm/
H A Dsighandling.h19 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, size_t frame_size,
22 int ia32_setup_frame(struct ksignal *ksig, struct pt_regs *regs);
23 int ia32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs);
24 int x64_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs);
25 int x32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs);
/linux/arch/parisc/kernel/
H A Dsignal.c213 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs, in setup_rt_frame() argument
234 frame = get_sigframe(&ksig->ka, usp, sigframe_size); in setup_rt_frame()
236 DBG(1, "%s: frame %p info %p\n", __func__, frame, &ksig->info); in setup_rt_frame()
248 err |= copy_siginfo_to_user32(&compat_frame->info, &ksig->info); in setup_rt_frame()
261 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame()
284 haddr = A(ksig->ka.sa.sa_handler); in setup_rt_frame()
351 regs->gr[26] = ksig->sig; /* signal number */ in setup_rt_frame()
383 handle_signal(struct ksignal *ksig, struct pt_regs *regs, long in_syscall) in handle_signal() argument
389 __func__, ksig->sig, &ksig->ka, &ksig->info, oldset, regs); in handle_signal()
392 ret = setup_rt_frame(ksig, oldset, regs, in_syscall); in handle_signal()
[all …]
/linux/arch/xtensa/kernel/
H A Dsignal.c342 static int setup_frame(struct ksignal *ksig, sigset_t *set, in setup_frame() argument
346 int err = 0, sig = ksig->sig; in setup_frame()
348 unsigned long handler = (unsigned long)ksig->ka.sa.sa_handler; in setup_frame()
364 if ((ksig->ka.sa.sa_flags & SA_ONSTACK) != 0 && sas_ss_flags(sp) == 0) { in setup_frame()
377 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in setup_frame()
378 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_frame()
389 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame()
392 (unsigned long __user *)ksig->ka.sa.sa_restorer; in setup_frame()
396 ra = (unsigned long)ksig->ka.sa.sa_restorer; in setup_frame()
455 struct ksignal ksig; in do_signal() local
[all …]
/linux/arch/x86/kernel/
H A Dsignal_64.c164 int x64_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs) in x64_setup_rt_frame() argument
172 if (!(ksig->ka.sa.sa_flags & SA_RESTORER)) in x64_setup_rt_frame()
175 frame = get_sigframe(ksig, regs, sizeof(struct rt_sigframe), &fp); in x64_setup_rt_frame()
188 unsafe_put_user(ksig->ka.sa.sa_restorer, &frame->pretcode, Efault); in x64_setup_rt_frame()
193 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in x64_setup_rt_frame()
194 if (copy_siginfo_to_user(&frame->info, &ksig->info)) in x64_setup_rt_frame()
198 if (setup_signal_shadow_stack(ksig)) in x64_setup_rt_frame()
202 regs->di = ksig->sig; in x64_setup_rt_frame()
210 regs->ip = (unsigned long) ksig->ka.sa.sa_handler; in x64_setup_rt_frame()
305 int x32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs) in x32_setup_rt_frame() argument
[all …]
H A Dsignal_32.c259 int ia32_setup_frame(struct ksignal *ksig, struct pt_regs *regs) in ia32_setup_frame() argument
277 frame = get_sigframe(ksig, regs, sizeof(*frame), &fp); in ia32_setup_frame()
279 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in ia32_setup_frame()
280 restorer = ksig->ka.sa.sa_restorer; in ia32_setup_frame()
293 unsafe_put_user(ksig->sig, &frame->sig, Efault); in ia32_setup_frame()
306 regs->ip = (unsigned long) ksig->ka.sa.sa_handler; in ia32_setup_frame()
309 regs->ax = ksig->sig; in ia32_setup_frame()
330 int ia32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs) in ia32_setup_rt_frame() argument
350 frame = get_sigframe(ksig, regs, sizeof(*frame), &fp); in ia32_setup_rt_frame()
355 unsafe_put_user(ksig->sig, &frame->sig, Efault); in ia32_setup_rt_frame()
[all …]
/linux/arch/mips/kernel/
H A Dsignal.c554 void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, in get_sigframe() argument
579 sp = sigsp(sp, ksig); in get_sigframe()
714 static int setup_frame(void *sig_return, struct ksignal *ksig, in setup_frame() argument
720 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_frame()
739 regs->regs[ 4] = ksig->sig; in setup_frame()
744 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame()
753 static int setup_rt_frame(void *sig_return, struct ksignal *ksig, in setup_rt_frame() argument
758 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame()
763 if (copy_siginfo_to_user(&frame->rs_info, &ksig->info)) in setup_rt_frame()
788 regs->regs[ 4] = ksig->sig; in setup_rt_frame()
[all …]
H A Dsignal_o32.c115 static int setup_frame_32(void *sig_return, struct ksignal *ksig, in setup_frame_32() argument
121 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_frame_32()
141 regs->regs[ 4] = ksig->sig; in setup_frame_32()
146 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame_32()
194 static int setup_rt_frame_32(void *sig_return, struct ksignal *ksig, in setup_rt_frame_32() argument
200 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame_32()
205 err |= copy_siginfo_to_user32(&frame->rs_info, &ksig->info); in setup_rt_frame_32()
227 regs->regs[ 4] = ksig->sig; in setup_rt_frame_32()
232 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame_32()
H A Dsignal_n32.c90 static int setup_rt_frame_n32(void *sig_return, struct ksignal *ksig, in setup_rt_frame_n32() argument
96 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame_n32()
101 err |= copy_siginfo_to_user32(&frame->rs_info, &ksig->info); in setup_rt_frame_n32()
123 regs->regs[ 4] = ksig->sig; in setup_rt_frame_n32()
128 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame_n32()
/linux/arch/m68k/kernel/
H A Dsignal.c863 get_sigframe(struct ksignal *ksig, struct pt_regs *tregs, size_t frame_size) in get_sigframe() argument
865 unsigned long usp = sigsp(rdusp(), ksig); in get_sigframe()
876 static int setup_frame(struct ksignal *ksig, sigset_t *set, in setup_frame() argument
883 int err = 0, sig = ksig->sig; in setup_frame()
891 frame = get_sigframe(ksig, tregs, sizeof(*frame) + fsize); in setup_frame()
943 tregs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame()
949 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument
955 int err = 0, sig = ksig->sig; in setup_rt_frame()
963 frame = get_sigframe(ksig, tregs, sizeof(*frame)); in setup_rt_frame()
971 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame()
[all …]

12