/Linux-v5.4/arch/x86/kernel/ |
D | signal.c | 240 get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size, in get_sigframe() argument 255 if (ka->sa.sa_flags & SA_ONSTACK) { in get_sigframe() 261 !(ka->sa.sa_flags & SA_RESTORER) && in get_sigframe() 262 ka->sa.sa_restorer) { in get_sigframe() 264 sp = (unsigned long) ka->sa.sa_restorer; in get_sigframe() 320 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); in __setup_frame() 342 if (ksig->ka.sa.sa_flags & SA_RESTORER) in __setup_frame() 343 restorer = ksig->ka.sa.sa_restorer; in __setup_frame() 362 regs->ip = (unsigned long)ksig->ka.sa.sa_handler; in __setup_frame() 383 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); in __setup_rt_frame() [all …]
|
/Linux-v5.4/arch/mips/include/asm/ |
D | signal.h | 17 #define sig_uses_siginfo(ka, abi) \ argument 19 ((ka)->sa.sa_flags & SA_SIGINFO)) 21 #define sig_uses_siginfo(ka, abi) \ argument 24 ((ka)->sa.sa_flags & SA_SIGINFO) : 1) )
|
/Linux-v5.4/arch/h8300/kernel/ |
D | signal.c | 171 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame() 185 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_rt_frame() 186 ret = (unsigned char *)(ksig->ka.sa.sa_restorer); in setup_rt_frame() 201 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame() 211 handle_restart(struct pt_regs *regs, struct k_sigaction *ka) in handle_restart() argument 215 if (!ka) in handle_restart() 220 if (!ka) { in handle_restart() 227 if (!(ka->sa.sa_flags & SA_RESTART)) { in handle_restart() 250 handle_restart(regs, &ksig->ka); in handle_signal()
|
/Linux-v5.4/arch/s390/kernel/ |
D | signal.c | 267 get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size) in get_sigframe() argument 279 if (ka->sa.sa_flags & SA_ONSTACK) { in get_sigframe() 287 static int setup_frame(int sig, struct k_sigaction *ka, in setup_frame() argument 304 frame = get_sigframe(ka, regs, frame_size); in setup_frame() 335 if (ka->sa.sa_flags & SA_RESTORER) { in setup_frame() 336 restorer = (unsigned long) ka->sa.sa_restorer; in setup_frame() 352 regs->psw.addr = (unsigned long) ka->sa.sa_handler; in setup_frame() 388 frame = get_sigframe(&ksig->ka, regs, frame_size); in setup_rt_frame() 398 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_rt_frame() 399 restorer = (unsigned long) ksig->ka.sa.sa_restorer; in setup_rt_frame() [all …]
|
D | compat_signal.c | 233 get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size) in get_sigframe() argument 245 if (ka->sa.sa_flags & SA_ONSTACK) { in get_sigframe() 270 frame = get_sigframe(&ksig->ka, regs, frame_size); in setup_frame32() 302 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame32() 304 ksig->ka.sa.sa_restorer | PSW32_ADDR_AMODE; in setup_frame32() 320 regs->psw.addr = (__force __u64) ksig->ka.sa.sa_handler; in setup_frame32() 359 frame = get_sigframe(&ksig->ka, regs, frame_size); in setup_rt_frame32() 369 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_rt_frame32() 371 ksig->ka.sa.sa_restorer | PSW32_ADDR_AMODE; in setup_rt_frame32() 402 regs->psw.addr = (__u64 __force) ksig->ka.sa.sa_handler; in setup_rt_frame32() [all …]
|
/Linux-v5.4/arch/sh/kernel/ |
D | signal_32.c | 252 get_sigframe(struct k_sigaction *ka, unsigned long sp, size_t frame_size) in get_sigframe() argument 254 if (ka->sa.sa_flags & SA_ONSTACK) { in get_sigframe() 273 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); in setup_frame() 286 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame() 287 regs->pr = (unsigned long) ksig->ka.sa.sa_restorer; in setup_frame() 317 (struct fdpic_func_descriptor __user *)ksig->ka.sa.sa_handler; in setup_frame() 322 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; in setup_frame() 339 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); in setup_rt_frame() 356 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_rt_frame() 357 regs->pr = (unsigned long) ksig->ka.sa.sa_restorer; in setup_rt_frame() [all …]
|
D | signal_64.c | 93 handle_syscall_restart(regs, &ksig.ka.sa); in do_signal() 363 get_sigframe(struct k_sigaction *ka, unsigned long sp, size_t frame_size) in get_sigframe() argument 365 if ((ka->sa.sa_flags & SA_ONSTACK) != 0 && ! sas_ss_flags(sp)) in get_sigframe() 380 frame = get_sigframe(&ksig->ka, regs->regs[REG_SP], sizeof(*frame)); in setup_frame() 401 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame() 406 ksig->ka->sa.sa_restorer | 0x1); in setup_frame() 449 regs->pc = neff_sign_extend((unsigned long)ksig->ka.sa.sa_handler); in setup_frame() 466 frame = get_sigframe(&ksig->ka, regs->regs[REG_SP], sizeof(*frame)); in setup_rt_frame() 493 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_rt_frame() 498 ksig->ka.sa.sa_restorer | 0x1); in setup_rt_frame() [all …]
|
/Linux-v5.4/include/trace/events/ |
D | signal.h | 98 TP_PROTO(int sig, struct kernel_siginfo *info, struct k_sigaction *ka), 100 TP_ARGS(sig, info, ka), 113 __entry->sa_handler = (unsigned long)ka->sa.sa_handler; 114 __entry->sa_flags = ka->sa.sa_flags;
|
/Linux-v5.4/arch/x86/ia32/ |
D | ia32_signal.c | 230 if (ksig->ka.sa.sa_flags & SA_ONSTACK) in get_sigframe() 234 !(ksig->ka.sa.sa_flags & SA_RESTORER) && in get_sigframe() 235 ksig->ka.sa.sa_restorer) in get_sigframe() 236 sp = (unsigned long) ksig->ka.sa.sa_restorer; in get_sigframe() 287 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in ia32_setup_frame() 288 restorer = ksig->ka.sa.sa_restorer; in ia32_setup_frame() 313 regs->ip = (unsigned long) ksig->ka.sa.sa_handler; in ia32_setup_frame() 368 if (ksig->ka.sa.sa_flags & SA_RESTORER) in ia32_setup_rt_frame() 369 restorer = ksig->ka.sa.sa_restorer; in ia32_setup_rt_frame() 392 regs->ip = (unsigned long) ksig->ka.sa.sa_handler; in ia32_setup_rt_frame()
|
/Linux-v5.4/arch/arc/kernel/ |
D | signal.c | 251 if (unlikely(ksig->ka.sa.sa_flags & SA_SIGINFO)) { in setup_rt_frame() 276 regs->ret = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame() 282 if(!(ksig->ka.sa.sa_flags & SA_RESTORER)) in setup_rt_frame() 285 regs->blink = (unsigned long)ksig->ka.sa.sa_restorer; in setup_rt_frame() 300 static void arc_restart_syscall(struct k_sigaction *ka, struct pt_regs *regs) in arc_restart_syscall() argument 320 if (!(ka->sa.sa_flags & SA_RESTART)) { in arc_restart_syscall() 367 arc_restart_syscall(&ksig.ka, regs); in do_signal()
|
/Linux-v5.4/arch/powerpc/kernel/ |
D | signal.c | 53 static void check_syscall_restart(struct pt_regs *regs, struct k_sigaction *ka, in check_syscall_restart() argument 80 restart = !has_handler || (ka->sa.sa_flags & SA_RESTART) != 0; in check_syscall_restart() 116 check_syscall_restart(tsk->thread.regs, &ksig.ka, ksig.sig > 0); in do_signal() 140 if (ksig.ka.sa.sa_flags & SA_SIGINFO) in do_signal()
|
/Linux-v5.4/arch/parisc/kernel/ |
D | signal.c | 176 get_sigframe(struct k_sigaction *ka, unsigned long sp, size_t frame_size) in get_sigframe() argument 182 (unsigned long)ka, sp, frame_size); in get_sigframe() 186 if ((ka->sa.sa_flags & SA_ONSTACK) != 0 && ! sas_ss_flags(sp)) in get_sigframe() 242 frame = get_sigframe(&ksig->ka, usp, sizeof(*frame)); in setup_rt_frame() 315 haddr = A(ksig->ka.sa.sa_handler); in setup_rt_frame() 425 ksig->sig, ksig->ka, ksig->info, oldset, regs); in handle_signal() 487 syscall_restart(struct pt_regs *regs, struct k_sigaction *ka) in syscall_restart() argument 501 if (!(ka->sa.sa_flags & SA_RESTART)) { in syscall_restart() 589 syscall_restart(regs, &ksig.ka); in do_signal()
|
/Linux-v5.4/arch/unicore32/kernel/ |
D | signal.c | 185 static inline void __user *get_sigframe(struct k_sigaction *ka, in get_sigframe() argument 194 if ((ka->sa.sa_flags & SA_ONSTACK) && !sas_ss_flags(sp)) in get_sigframe() 211 static int setup_return(struct pt_regs *regs, struct k_sigaction *ka, in setup_return() argument 214 unsigned long handler = (unsigned long)ka->sa.sa_handler; in setup_return() 220 if (ka->sa.sa_flags & SA_SIGINFO) in setup_return() 241 struct sigframe __user *frame = get_sigframe(&ksig->ka, regs, sizeof(*frame)); in setup_frame() 254 err |= setup_return(regs, &ksig->ka, frame->retcode, frame, in setup_frame() 264 get_sigframe(&ksig->ka, regs, sizeof(*frame)); in setup_rt_frame() 277 err |= setup_return(regs, &ksig->ka, frame->sig.retcode, frame, in setup_rt_frame() 319 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal() [all …]
|
/Linux-v5.4/arch/um/kernel/ |
D | signal.c | 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()
|
/Linux-v5.4/arch/x86/um/ |
D | signal.c | 374 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_signal_stack_sc() 375 restorer = ksig->ka.sa.sa_restorer; in setup_signal_stack_sc() 399 PT_REGS_IP(regs) = (unsigned long) ksig->ka.sa.sa_handler; in setup_signal_stack_sc() 419 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_signal_stack_si() 420 restorer = ksig->ka.sa.sa_restorer; in setup_signal_stack_si() 445 PT_REGS_IP(regs) = (unsigned long) ksig->ka.sa.sa_handler; in setup_signal_stack_si() 503 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in setup_signal_stack_si() 532 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_signal_stack_si() 533 err |= __put_user((void *)ksig->ka.sa.sa_restorer, in setup_signal_stack_si() 553 PT_REGS_IP(regs) = (unsigned long) ksig->ka.sa.sa_handler; in setup_signal_stack_si()
|
/Linux-v5.4/arch/arm/kernel/ |
D | signal.c | 365 unsigned long handler = (unsigned long)ksig->ka.sa.sa_handler; in setup_return() 386 if (ksig->ka.sa.sa_flags & SA_THIRTYTWO) in setup_return() 417 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_return() 418 retcode = (unsigned long)ksig->ka.sa.sa_restorer; in setup_return() 428 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_return() 439 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_return() 556 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal() 625 && !(ksig.ka.sa.sa_flags & SA_RESTART))) { in do_signal()
|
/Linux-v5.4/arch/sparc/kernel/ |
D | signal_32.c | 299 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame() 303 if (ksig->ka.ka_restorer) in setup_frame() 304 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; in setup_frame() 397 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame() 400 if (ksig->ka.ka_restorer) in setup_rt_frame() 401 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; in setup_rt_frame() 425 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal() 498 syscall_restart(orig_i0, regs, &ksig.ka.sa); in do_signal()
|
D | signal32.c | 459 regs->tpc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame32() 467 if (ksig->ka.ka_restorer) { in setup_frame32() 468 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; in setup_frame32() 591 regs->tpc = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame32() 599 if (ksig->ka.ka_restorer) in setup_rt_frame32() 600 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; in setup_rt_frame32() 625 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal32() 673 syscall_restart32(orig_i0, regs, &ksig.ka.sa); in do_signal32()
|
/Linux-v5.4/arch/arm64/kernel/ |
D | signal32.c | 318 static void compat_setup_return(struct pt_regs *regs, struct k_sigaction *ka, in compat_setup_return() argument 322 compat_ulong_t handler = ptr_to_compat(ka->sa.sa_handler); in compat_setup_return() 341 if (ka->sa.sa_flags & SA_RESTORER) { in compat_setup_return() 342 retcode = ptr_to_compat(ka->sa.sa_restorer); in compat_setup_return() 349 if (ka->sa.sa_flags & SA_SIGINFO) { in compat_setup_return() 371 if (ka->sa.sa_flags & SA_SIGINFO) in compat_setup_return() 453 compat_setup_return(regs, &ksig->ka, frame->sig.retcode, frame, usig); in compat_setup_rt_frame() 476 compat_setup_return(regs, &ksig->ka, frame->retcode, frame, usig); in compat_setup_frame()
|
D | signal.c | 723 static void setup_return(struct pt_regs *regs, struct k_sigaction *ka, in setup_return() argument 731 regs->pc = (unsigned long)ka->sa.sa_handler; in setup_return() 733 if (ka->sa.sa_flags & SA_RESTORER) in setup_return() 734 sigtramp = ka->sa.sa_restorer; in setup_return() 761 setup_return(regs, &ksig->ka, &user, usig); in setup_rt_frame() 762 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in setup_rt_frame() 796 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal() 877 !(ksig.ka.sa.sa_flags & SA_RESTART)))) { in do_signal()
|
/Linux-v5.4/arch/microblaze/kernel/ |
D | signal.c | 172 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame() 230 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame() 242 handle_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler) in handle_restart() argument 252 if (has_handler && !(ka->sa.sa_flags & SA_RESTART)) { in handle_restart() 303 handle_restart(regs, &ksig.ka, 1); in do_signal()
|
/Linux-v5.4/arch/xtensa/kernel/ |
D | signal.c | 343 if ((ksig->ka.sa.sa_flags & SA_ONSTACK) != 0 && sas_ss_flags(sp) == 0) { in setup_frame() 356 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in setup_frame() 368 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame() 369 ra = (unsigned long)ksig->ka.sa.sa_restorer; in setup_frame() 390 start_thread(regs, (unsigned long) ksig->ka.sa.sa_handler, in setup_frame() 447 if (!(ksig.ka.sa.sa_flags & SA_RESTART)) { in do_signal()
|
/Linux-v5.4/arch/alpha/kernel/ |
D | signal.c | 344 r26 = (unsigned long) ksig->ka.ka_restorer; in setup_frame() 359 regs->r27 = regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame() 398 r26 = (unsigned long) ksig->ka.ka_restorer; in setup_rt_frame() 413 regs->r27 = regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame() 437 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal() 447 struct pt_regs *regs, struct k_sigaction *ka) in syscall_restart() argument 451 if (!(ka->sa.sa_flags & SA_RESTART)) { in syscall_restart() 494 syscall_restart(r0, r19, regs, &ksig.ka); in do_signal()
|
/Linux-v5.4/arch/openrisc/kernel/ |
D | signal.c | 164 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame() 193 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; /* what we enter NOW */ in setup_rt_frame() 269 && !(ksig.ka.sa.sa_flags & SA_RESTART))) { in do_signal()
|
/Linux-v5.4/arch/c6x/kernel/ |
D | signal.c | 192 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame() 209 handle_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler) in handle_restart() argument 219 if (has_handler && !(ka->sa.sa_flags & SA_RESTART)) { in handle_restart() 250 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal()
|