/linux-master/arch/um/include/shared/ |
H A D | frame_kern.h | 9 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-master/arch/riscv/include/asm/ |
H A D | signal32.h | 7 int compat_setup_rt_frame(struct ksignal *ksig, sigset_t *set, 11 int compat_setup_rt_frame(struct ksignal *ksig, sigset_t *set, argument
|
/linux-master/arch/x86/include/asm/ |
H A D | sighandling.h | 19 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);
|
H A D | shstk.h | 22 int setup_signal_shadow_stack(struct ksignal *ksig); 32 static inline int setup_signal_shadow_stack(struct ksignal *ksig) { return 0; } argument
|
/linux-master/arch/um/kernel/ |
H A D | signal.c | 49 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) argument 69 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { 82 if ((ksig->ka.sa.sa_flags & SA_ONSTACK) && (sas_ss_flags(sp) == 0)) 86 if (!(ksig->ka.sa.sa_flags & SA_SIGINFO)) 87 err = setup_signal_stack_sc(sp, ksig, regs, oldset); 90 err = setup_signal_stack_si(sp, ksig, regs, oldset); 92 signal_setup_done(err, ksig, singlestep); 97 struct ksignal ksig; local 100 while (get_signal(&ksig)) { 103 handle_signal(&ksig, reg [all...] |
/linux-master/arch/x86/kernel/ |
H A D | signal.c | 46 static inline int is_ia32_compat_frame(struct ksignal *ksig) argument 49 ksig->ka.sa.sa_flags & SA_IA32_ABI; 52 static inline int is_ia32_frame(struct ksignal *ksig) argument 54 return IS_ENABLED(CONFIG_X86_32) || is_ia32_compat_frame(ksig); 57 static inline int is_x32_frame(struct ksignal *ksig) argument 60 ksig->ka.sa.sa_flags & SA_X32_ABI; 76 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, size_t frame_size, argument 79 struct k_sigaction *ka = &ksig->ka; 80 int ia32_frame = is_ia32_frame(ksig); 209 setup_rt_frame(struct ksignal *ksig, struc argument 228 handle_signal(struct ksignal *ksig, struct pt_regs *regs) argument 308 struct ksignal ksig; local [all...] |
/linux-master/arch/mips/include/asm/ |
H A D | abi.h | 19 int (* const setup_frame)(void *sig_return, struct ksignal *ksig, 21 int (* const setup_rt_frame)(void *sig_return, struct ksignal *ksig,
|
/linux-master/include/linux/ |
H A D | rseq.h | 34 static inline void rseq_handle_notify_resume(struct ksignal *ksig, argument 38 __rseq_handle_notify_resume(ksig, regs); 41 static inline void rseq_signal_deliver(struct ksignal *ksig, argument 47 rseq_handle_notify_resume(ksig, regs); 96 static inline void rseq_handle_notify_resume(struct ksignal *ksig, argument 100 static inline void rseq_signal_deliver(struct ksignal *ksig, argument
|
/linux-master/arch/arm64/include/asm/ |
H A D | signal32.h | 57 int compat_setup_frame(int usig, struct ksignal *ksig, sigset_t *set, 59 int compat_setup_rt_frame(int usig, struct ksignal *ksig, sigset_t *set, 65 static inline int compat_setup_frame(int usid, struct ksignal *ksig, argument 71 static inline int compat_setup_rt_frame(int usig, struct ksignal *ksig, sigset_t *set, argument
|
/linux-master/arch/openrisc/kernel/ |
H A D | signal.c | 136 static inline void __user *get_sigframe(struct ksignal *ksig, argument 143 sp = sigsp(sp, ksig); 156 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, argument 163 frame = get_sigframe(ksig, regs, sizeof(*frame)); 169 if (ksig->ka.sa.sa_flags & SA_SIGINFO) 170 err |= copy_siginfo_to_user(&frame->info, &ksig->info); 198 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; /* what we enter NOW */ 200 regs->gpr[3] = (unsigned long)ksig->sig; /* arg 1: signo */ 211 handle_signal(struct ksignal *ksig, struct pt_regs *regs) argument 215 ret = setup_rt_frame(ksig, sigmask_to_sav 234 struct ksignal ksig; local [all...] |
/linux-master/arch/csky/kernel/ |
H A D | signal.c | 113 static inline void __user *get_sigframe(struct ksignal *ksig, argument 128 sp = sigsp(sp, ksig) - framesize; 137 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) argument 142 frame = get_sigframe(ksig, regs, sizeof(*frame)); 146 err |= copy_siginfo_to_user(&frame->info, &ksig->info); 168 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; 170 regs->a0 = ksig->sig; /* a0: signal number */ 177 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) argument 195 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { 208 ret = setup_rt_frame(ksig, oldse 215 struct ksignal ksig; local [all...] |
/linux-master/arch/nios2/kernel/ |
H A D | signal.c | 166 static inline void __user *get_sigframe(struct ksignal *ksig, argument 176 usp = sigsp(usp, ksig); 182 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, argument 188 frame = get_sigframe(ksig, regs, sizeof(*frame)); 190 if (ksig->ka.sa.sa_flags & SA_SIGINFO) 191 err |= copy_siginfo_to_user(&frame->info, &ksig->info); 209 regs->r4 = (unsigned long) ksig->sig; 212 regs->ea = (unsigned long) ksig->ka.sa.sa_handler; 216 force_sigsegv(ksig->sig); 223 static void handle_signal(struct ksignal *ksig, struc argument 238 struct ksignal ksig; local [all...] |
/linux-master/arch/microblaze/kernel/ |
H A D | signal.c | 146 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, size_t frame_size) argument 149 unsigned long sp = sigsp(regs->r1, ksig); 154 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, argument 158 int err = 0, sig = ksig->sig; 163 frame = get_sigframe(ksig, regs, sizeof(*frame)); 168 if (ksig->ka.sa.sa_flags & SA_SIGINFO) 169 err |= copy_siginfo_to_user(&frame->info, &ksig->info); 220 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; 260 handle_signal(struct ksignal *ksig, struct pt_regs *regs) argument 266 ret = setup_rt_frame(ksig, oldse 282 struct ksignal ksig; local [all...] |
/linux-master/arch/hexagon/kernel/ |
H A D | signal.c | 27 static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, argument 30 unsigned long sp = sigsp(regs->r29, ksig); 95 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, argument 102 frame = get_sigframe(ksig, regs, sizeof(struct rt_sigframe)); 107 if (copy_siginfo_to_user(&frame->info, &ksig->info)) 124 | (unsigned long long)ksig->sig; 128 pt_set_elr(regs, (unsigned long)ksig->ka.sa.sa_handler); 136 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) argument 153 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { 173 ret = setup_rt_frame(ksig, sigmask_to_sav 183 struct ksignal ksig; local [all...] |
/linux-master/arch/s390/kernel/ |
H A D | signal.c | 362 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, argument 381 frame = get_sigframe(&ksig->ka, regs, frame_size); 391 if (ksig->ka.sa.sa_flags & SA_RESTORER) 392 restorer = (unsigned long) ksig->ka.sa.sa_restorer; 397 if (copy_siginfo_to_user(&frame->info, &ksig->info)) 419 regs->psw.addr = (unsigned long) ksig->ka.sa.sa_handler; 421 regs->gprs[2] = ksig->sig; 428 static void handle_signal(struct ksignal *ksig, sigset_t *oldset, argument 434 if (ksig->ka.sa.sa_flags & SA_SIGINFO) 435 ret = setup_rt_frame(ksig, oldse 454 struct ksignal ksig; local [all...] |
H A D | compat_signal.c | 251 static int setup_frame32(struct ksignal *ksig, sigset_t *set, argument 254 int sig = ksig->sig; 268 frame = get_sigframe(&ksig->ka, regs, frame_size); 300 if (ksig->ka.sa.sa_flags & SA_RESTORER) { 302 ksig->ka.sa.sa_restorer | PSW32_ADDR_AMODE; 314 regs->psw.addr = (__force __u64) ksig->ka.sa.sa_handler; 332 static int setup_rt_frame32(struct ksignal *ksig, sigset_t *set, argument 354 frame = get_sigframe(&ksig->ka, regs, frame_size); 364 if (ksig->ka.sa.sa_flags & SA_RESTORER) { 366 ksig 407 handle_signal32(struct ksignal *ksig, sigset_t *oldset, struct pt_regs *regs) argument [all...] |
/linux-master/arch/arm/kernel/ |
H A D | signal.c | 301 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, int framesize) argument 303 unsigned long sp = sigsp(regs->ARM_sp, ksig); 321 setup_return(struct pt_regs *regs, struct ksignal *ksig, argument 324 unsigned long handler = (unsigned long)ksig->ka.sa.sa_handler; 345 if (ksig->ka.sa.sa_flags & SA_THIRTYTWO) 376 if (ksig->ka.sa.sa_flags & SA_RESTORER) { 377 retcode = (unsigned long)ksig->ka.sa.sa_restorer; 387 if (ksig->ka.sa.sa_flags & SA_SIGINFO) 398 if (ksig->ka.sa.sa_flags & SA_SIGINFO) 435 regs->ARM_r0 = ksig 447 setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) argument 468 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) argument 502 handle_signal(struct ksignal *ksig, struct pt_regs *regs) argument 540 struct ksignal ksig; local [all...] |
/linux-master/arch/powerpc/kernel/ |
H A D | signal.c | 161 void __user *get_sigframe(struct ksignal *ksig, struct task_struct *tsk, argument 172 oldsp = sigsp(oldsp, ksig); 246 struct ksignal ksig = { .sig = 0 }; local 251 get_signal(&ksig); 254 check_syscall_restart(tsk->thread.regs, &ksig.ka, ksig.sig > 0); 256 if (ksig.sig <= 0) { 280 rseq_signal_deliver(&ksig, tsk->thread.regs); 283 if (ksig.ka.sa.sa_flags & SA_SIGINFO) 284 ret = handle_rt_signal32(&ksig, oldse [all...] |
/linux-master/arch/arc/kernel/ |
H A D | signal.c | 248 static inline void __user *get_sigframe(struct ksignal *ksig, argument 252 unsigned long sp = sigsp(regs->sp, ksig); 270 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) argument 276 sf = get_sigframe(ksig, regs, sizeof(struct rt_sigframe)); 295 if (unlikely(ksig->ka.sa.sa_flags & SA_SIGINFO)) { 296 err |= copy_siginfo_to_user(&sf->info, &ksig->info); 317 regs->r0 = ksig->sig; 320 regs->ret = (unsigned long)ksig->ka.sa.sa_handler; 326 if(!(ksig->ka.sa.sa_flags & SA_RESTORER)) 329 regs->blink = (unsigned long)ksig 391 handle_signal(struct ksignal *ksig, struct pt_regs *regs) argument 404 struct ksignal ksig; local [all...] |
/linux-master/arch/riscv/kernel/ |
H A D | signal.c | 297 static inline void __user *get_sigframe(struct ksignal *ksig, argument 312 sp = sigsp(sp, ksig) - framesize; 320 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, argument 328 frame = get_sigframe(ksig, regs, frame_size); 332 err |= copy_siginfo_to_user(&frame->info, &ksig->info); 370 regs->epc = (unsigned long)ksig->ka.sa.sa_handler; 372 regs->a0 = ksig->sig; /* a0: signal number */ 378 current->comm, task_pid_nr(current), ksig->sig, 385 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) argument 390 rseq_signal_deliver(ksig, reg 405 struct ksignal ksig; local [all...] |
H A D | compat_signal.c | 176 static inline void __user *compat_get_sigframe(struct ksignal *ksig, argument 191 sp = sigsp(sp, ksig) - framesize; 199 int compat_setup_rt_frame(struct ksignal *ksig, sigset_t *set, argument 205 frame = compat_get_sigframe(ksig, regs, sizeof(*frame)); 209 err |= copy_siginfo_to_user32(&frame->info, &ksig->info); 230 regs->epc = (unsigned long)ksig->ka.sa.sa_handler; 232 regs->a0 = ksig->sig; /* a0: signal number */ 238 current->comm, task_pid_nr(current), ksig->sig,
|
/linux-master/arch/sh/kernel/ |
H A D | signal_32.c | 269 static int setup_frame(struct ksignal *ksig, sigset_t *set, argument 273 int err = 0, sig = ksig->sig; 275 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); 288 if (ksig->ka.sa.sa_flags & SA_RESTORER) { 289 regs->pr = (unsigned long) ksig->ka.sa.sa_restorer; 319 (struct fdpic_func_descriptor __user *)ksig->ka.sa.sa_handler; 324 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; 335 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, argument 339 int err = 0, sig = ksig->sig; 341 frame = get_sigframe(&ksig 436 handle_signal(struct ksignal *ksig, struct pt_regs *regs, unsigned int save_r0) argument 461 struct ksignal ksig; local [all...] |
/linux-master/arch/sparc/kernel/ |
H A D | signal_32.c | 200 static inline void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesize) argument 212 sp = sigsp(sp, ksig) - framesize; 225 static int setup_frame(struct ksignal *ksig, struct pt_regs *regs, argument 244 get_sigframe(ksig, regs, sigframe_size); 292 regs->u_regs[UREG_I0] = ksig->sig; 297 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; 301 if (ksig->ka.ka_restorer) 302 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; 320 static int setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs, argument 337 get_sigframe(ksig, reg 418 handle_signal(struct ksignal *ksig, struct pt_regs *regs) argument 457 struct ksignal ksig; local [all...] |
/linux-master/arch/alpha/kernel/ |
H A D | signal.c | 266 get_sigframe(struct ksignal *ksig, unsigned long sp, size_t frame_size) argument 268 return (void __user *)((sigsp(sp, ksig) - frame_size) & -32ul); 329 setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) argument 335 frame = get_sigframe(ksig, oldsp, sizeof(*frame)); 345 r26 = (unsigned long) ksig->ka.ka_restorer; 360 regs->r27 = regs->pc = (unsigned long) ksig->ka.sa.sa_handler; 361 regs->r16 = ksig->sig; /* a0: signal number */ 374 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) argument 380 frame = get_sigframe(ksig, oldsp, sizeof(*frame)); 384 err |= copy_siginfo_to_user(&frame->info, &ksig 433 handle_signal(struct ksignal *ksig, struct pt_regs *regs) argument 487 struct ksignal ksig; local [all...] |
/linux-master/arch/xtensa/kernel/ |
H A D | signal.c | 342 static int setup_frame(struct ksignal *ksig, sigset_t *set, argument 346 int err = 0, sig = ksig->sig; 348 unsigned long handler = (unsigned long)ksig->ka.sa.sa_handler; 364 if ((ksig->ka.sa.sa_flags & SA_ONSTACK) != 0 && sas_ss_flags(sp) == 0) { 377 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { 378 err |= copy_siginfo_to_user(&frame->info, &ksig->info); 389 if (ksig->ka.sa.sa_flags & SA_RESTORER) { 392 (unsigned long __user *)ksig->ka.sa.sa_restorer; 396 ra = (unsigned long)ksig->ka.sa.sa_restorer; 455 struct ksignal ksig; local [all...] |