/linux-4.4.14/arch/cris/arch-v10/kernel/ |
D | signal.c | 206 get_sigframe(struct ksignal *ksig, size_t frame_size) in get_sigframe() argument 208 unsigned long sp = sigsp(rdusp(), ksig); in get_sigframe() 225 static int setup_frame(struct ksignal *ksig, sigset_t *set, in setup_frame() argument 232 frame = get_sigframe(ksig, sizeof(*frame)); in setup_frame() 250 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame() 251 return_ip = (unsigned long)ksig->ka.sa.sa_restorer; in setup_frame() 266 regs->irp = (unsigned long) ksig->ka.sa.sa_handler; /* what we enter NOW */ in setup_frame() 268 regs->r10 = ksig->sig; /* first argument is signo */ in setup_frame() 277 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 284 frame = get_sigframe(ksig, sizeof(*frame)); in setup_rt_frame() [all …]
|
/linux-4.4.14/arch/frv/kernel/ |
D | signal.c | 161 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument 164 unsigned long sp = sigsp(__frame->sp, ksig); in get_sigframe() 174 static int setup_frame(struct ksignal *ksig, sigset_t *set) in setup_frame() argument 177 int sig = ksig->sig; in setup_frame() 179 frame = get_sigframe(ksig, sizeof(*frame)); in setup_frame() 198 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame() 199 if (__put_user(ksig->ka.sa.sa_restorer, &frame->pretcode) < 0) in setup_frame() 219 (struct fdpic_func_descriptor __user *) ksig->ka.sa.sa_handler; in setup_frame() 226 __frame->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame() 247 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set) in setup_rt_frame() argument [all …]
|
/linux-4.4.14/arch/avr32/kernel/ |
D | signal.c | 130 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, int framesize) in get_sigframe() argument 132 unsigned long sp = sigsp(regs->sp, ksig); in get_sigframe() 138 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_rt_frame() argument 143 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 163 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 175 regs->r12 = ksig->sig; in setup_rt_frame() 179 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_rt_frame() 180 regs->lr = (unsigned long)ksig->ka.sa.sa_restorer; in setup_rt_frame() 188 current->comm, current->pid, ksig->sig, regs->sp, in setup_rt_frame() 189 regs->pc, ksig->ka.sa.sa_handler, regs->lr); in setup_rt_frame() [all …]
|
/linux-4.4.14/arch/powerpc/kernel/ |
D | signal.c | 34 void __user *get_sigframe(struct ksignal *ksig, unsigned long sp, in get_sigframe() argument 41 oldsp = sigsp(oldsp, ksig); in get_sigframe() 105 struct ksignal ksig; in do_signal() local 109 get_signal(&ksig); in do_signal() 112 check_syscall_restart(regs, &ksig.ka, ksig.sig > 0); in do_signal() 114 if (ksig.sig <= 0) { in do_signal() 135 if (ksig.ka.sa.sa_flags & SA_SIGINFO) in do_signal() 136 ret = handle_rt_signal32(&ksig, oldset, regs); in do_signal() 138 ret = handle_signal32(&ksig, oldset, regs); in do_signal() 140 ret = handle_rt_signal64(&ksig, oldset, regs); in do_signal() [all …]
|
D | signal.h | 15 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, in handle_rt_signal64() argument
|
D | signal_64.c | 726 int handle_rt_signal64(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in handle_rt_signal64() argument 732 frame = get_sigframe(ksig, get_tm_stackpointer(regs), sizeof(*frame), 0); in handle_rt_signal64() 738 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in handle_rt_signal64() 753 regs, ksig->sig, in handle_rt_signal64() 755 (unsigned long)ksig->ka.sa.sa_handler); in handle_rt_signal64() 760 err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, ksig->sig, in handle_rt_signal64() 761 NULL, (unsigned long)ksig->ka.sa.sa_handler, in handle_rt_signal64() 787 regs->nip = (unsigned long) ksig->ka.sa.sa_handler; in handle_rt_signal64() 796 (func_descr_t __user *) ksig->ka.sa.sa_handler; in handle_rt_signal64() 806 regs->gpr[3] = ksig->sig; in handle_rt_signal64() [all …]
|
D | signal_32.c | 991 int handle_rt_signal32(struct ksignal *ksig, sigset_t *oldset, in handle_rt_signal32() argument 1004 rt_sf = get_sigframe(ksig, get_tm_stackpointer(regs), sizeof(*rt_sf), 1); in handle_rt_signal32() 1010 if (copy_siginfo_to_user(&rt_sf->info, &ksig->info) in handle_rt_signal32() 1060 regs->gpr[3] = ksig->sig; in handle_rt_signal32() 1064 regs->nip = (unsigned long) ksig->ka.sa.sa_handler; in handle_rt_signal32() 1417 int handle_signal32(struct ksignal *ksig, sigset_t *oldset, struct pt_regs *regs) in handle_signal32() argument 1427 frame = get_sigframe(ksig, get_tm_stackpointer(regs), sizeof(*frame), 1); in handle_signal32() 1435 if (__put_user(to_user_ptr(ksig->ka.sa.sa_handler), &sc->handler) in handle_signal32() 1443 || __put_user(ksig->sig, &sc->signal)) in handle_signal32() 1478 regs->gpr[3] = ksig->sig; in handle_signal32() [all …]
|
/linux-4.4.14/arch/um/kernel/ |
D | signal.c | 21 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument 41 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal() 54 if ((ksig->ka.sa.sa_flags & SA_ONSTACK) && (sas_ss_flags(sp) == 0)) in handle_signal() 58 if (!(ksig->ka.sa.sa_flags & SA_SIGINFO)) in handle_signal() 59 err = setup_signal_stack_sc(sp, ksig, regs, oldset); in handle_signal() 62 err = setup_signal_stack_si(sp, ksig, regs, oldset); in handle_signal() 64 signal_setup_done(err, ksig, singlestep); in handle_signal() 69 struct ksignal ksig; in do_signal() local 72 if (get_signal(&ksig)) { in do_signal() 75 handle_signal(&ksig, regs); in do_signal()
|
/linux-4.4.14/arch/cris/arch-v32/kernel/ |
D | signal.c | 194 get_sigframe(struct ksignal *ksig, size_t frame_size) in get_sigframe() argument 196 unsigned long sp = sigsp(rdusp(), ksig); in get_sigframe() 212 setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_frame() argument 219 frame = get_sigframe(ksig, sizeof(*frame)); in setup_frame() 241 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame() 242 return_ip = (unsigned long)ksig->ka.sa.sa_restorer; in setup_frame() 269 regs->erp = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame() 271 regs->r10 = ksig->sig; in setup_frame() 280 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_rt_frame() argument 287 frame = get_sigframe(ksig, sizeof(*frame)); in setup_rt_frame() [all …]
|
/linux-4.4.14/arch/h8300/kernel/ |
D | signal.c | 153 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, size_t frame_size) in get_sigframe() argument 155 return (void __user *)((sigsp(rdusp(), ksig) - frame_size) & -8UL); in get_sigframe() 158 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 165 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 170 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame() 171 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 184 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_rt_frame() 185 ret = (unsigned char *)(ksig->ka.sa.sa_restorer); in setup_rt_frame() 200 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame() 201 regs->er0 = ksig->sig; in setup_rt_frame() [all …]
|
/linux-4.4.14/arch/mn10300/kernel/ |
D | signal.c | 189 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument 193 unsigned long sp = sigsp(regs->sp, ksig); in get_sigframe() 201 static int setup_frame(struct ksignal *ksig, sigset_t *set, in setup_frame() argument 205 int sig = ksig->sig; in setup_frame() 207 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_frame() 227 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame() 228 if (__put_user(ksig->ka.sa.sa_restorer, &frame->pretcode)) in setup_frame() 247 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame() 263 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 267 int sig = ksig->sig; in setup_rt_frame() [all …]
|
/linux-4.4.14/arch/openrisc/kernel/ |
D | signal.c | 135 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument 142 sp = sigsp(sp, ksig); in get_sigframe() 155 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 162 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() 197 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; /* what we enter NOW */ in setup_rt_frame() 199 regs->gpr[3] = (unsigned long)ksig->sig; /* arg 1: signo */ in setup_rt_frame() 210 handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument 214 ret = setup_rt_frame(ksig, sigmask_to_save(), regs); in handle_signal() [all …]
|
/linux-4.4.14/arch/x86/kernel/ |
D | signal.c | 277 __setup_frame(int sig, struct ksignal *ksig, sigset_t *set, in __setup_frame() argument 285 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); in __setup_frame() 307 if (ksig->ka.sa.sa_flags & SA_RESTORER) in __setup_frame() 308 restorer = ksig->ka.sa.sa_restorer; in __setup_frame() 327 regs->ip = (unsigned long)ksig->ka.sa.sa_handler; in __setup_frame() 340 static int __setup_rt_frame(int sig, struct ksignal *ksig, in __setup_rt_frame() argument 348 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame), &fpstate); in __setup_rt_frame() 369 if (ksig->ka.sa.sa_flags & SA_RESTORER) in __setup_rt_frame() 370 restorer = ksig->ka.sa.sa_restorer; in __setup_rt_frame() 383 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in __setup_rt_frame() [all …]
|
/linux-4.4.14/arch/metag/kernel/ |
D | signal.c | 143 static void __user *get_sigframe(struct ksignal *ksig, unsigned long sp) in get_sigframe() argument 145 sp = sigsp(sp, ksig); in get_sigframe() 151 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 158 frame = get_sigframe(ksig, regs->REG_SP); in setup_rt_frame() 162 err = copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 191 regs->REG_ARG1 = ksig->sig; in setup_rt_frame() 194 regs->REG_PC = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame() 208 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument 214 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal() 216 signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP)); in handle_signal() [all …]
|
/linux-4.4.14/arch/tile/kernel/ |
D | signal.c | 148 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 153 int err = 0, sig = ksig->sig; in setup_rt_frame() 155 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame)); in setup_rt_frame() 161 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in setup_rt_frame() 163 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 166 err |= __put_user(ksig->info.si_signo, &frame->info.si_signo); in setup_rt_frame() 180 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_rt_frame() 181 restorer = (unsigned long) ksig->ka.sa.sa_restorer; in setup_rt_frame() 190 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame() 210 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument [all …]
|
D | compat_signal.c | 190 int compat_setup_rt_frame(struct ksignal *ksig, sigset_t *set, in compat_setup_rt_frame() argument 195 int err = 0, sig = ksig->sig; in compat_setup_rt_frame() 197 frame = compat_get_sigframe(&ksig->ka, regs, sizeof(*frame)); in compat_setup_rt_frame() 203 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in compat_setup_rt_frame() 205 err |= copy_siginfo_to_user32(&frame->info, &ksig->info); in compat_setup_rt_frame() 208 err |= __put_user(ksig->info.si_signo, &frame->info.si_signo); in compat_setup_rt_frame() 222 if (ksig->ka.sa.sa_flags & SA_RESTORER) in compat_setup_rt_frame() 223 restorer = ptr_to_compat_reg(ksig->ka.sa.sa_restorer); in compat_setup_rt_frame() 232 regs->pc = ptr_to_compat_reg(ksig->ka.sa.sa_handler); in compat_setup_rt_frame()
|
/linux-4.4.14/arch/arc/kernel/ |
D | signal.c | 205 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument 209 unsigned long sp = sigsp(regs->sp, ksig); in get_sigframe() 227 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_rt_frame() argument 233 sf = get_sigframe(ksig, regs, sizeof(struct rt_sigframe)); in setup_rt_frame() 252 if (unlikely(ksig->ka.sa.sa_flags & SA_SIGINFO)) { in setup_rt_frame() 253 err |= copy_siginfo_to_user(&sf->info, &ksig->info); in setup_rt_frame() 274 regs->r0 = ksig->sig; in setup_rt_frame() 277 regs->ret = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame() 283 if(!(ksig->ka.sa.sa_flags & SA_RESTORER)) in setup_rt_frame() 286 regs->blink = (unsigned long)ksig->ka.sa.sa_restorer; in setup_rt_frame() [all …]
|
/linux-4.4.14/arch/sh/kernel/ |
D | signal_32.c | 265 static int setup_frame(struct ksignal *ksig, sigset_t *set, in setup_frame() argument 269 int err = 0, sig = ksig->sig; in setup_frame() 271 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); in setup_frame() 284 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame() 285 regs->pr = (unsigned long) ksig->ka.sa.sa_restorer; in setup_frame() 315 (struct fdpic_func_descriptor __user *)ksig->ka.sa.sa_handler; in setup_frame() 320 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; in setup_frame() 331 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 335 int err = 0, sig = ksig->sig; in setup_rt_frame() 337 frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame)); in setup_rt_frame() [all …]
|
D | signal_64.c | 44 handle_signal(struct ksignal *ksig, struct pt_regs *regs); 84 struct ksignal ksig; in do_signal() local 95 if (get_signal(&ksig)) { in do_signal() 96 handle_syscall_restart(regs, &ksig.ka.sa); in do_signal() 99 handle_signal(&ksig, regs); in do_signal() 377 static int setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_frame() argument 380 int err = 0, sig = ksig->sig; in setup_frame() 383 frame = get_sigframe(&ksig->ka, regs->regs[REG_SP], sizeof(*frame)); in setup_frame() 404 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame() 409 ksig->ka->sa.sa_restorer | 0x1); in setup_frame() [all …]
|
/linux-4.4.14/arch/m32r/kernel/ |
D | signal.c | 165 get_sigframe(struct ksignal *ksig, unsigned long sp, size_t frame_size) in get_sigframe() argument 167 return (void __user *)((sigsp(sp, ksig) - frame_size) & -8ul); in get_sigframe() 170 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 175 int sig = ksig->sig; in setup_rt_frame() 177 frame = get_sigframe(ksig, regs->spu, sizeof(*frame)); in setup_rt_frame() 188 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 202 regs->lr = (unsigned long)ksig->ka.sa.sa_restorer; in setup_rt_frame() 209 regs->bpc = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame() 237 handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument 251 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal() [all …]
|
/linux-4.4.14/arch/sparc/kernel/ |
D | signal_32.c | 201 static inline void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long f… in get_sigframe() argument 213 sp = sigsp(sp, ksig) - framesize; in get_sigframe() 226 static int setup_frame(struct ksignal *ksig, struct pt_regs *regs, in setup_frame() argument 245 get_sigframe(ksig, regs, sigframe_size); in setup_frame() 293 regs->u_regs[UREG_I0] = ksig->sig; in setup_frame() 298 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame() 302 if (ksig->ka.ka_restorer) in setup_frame() 303 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; in setup_frame() 321 static int setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs, in setup_rt_frame() argument 338 get_sigframe(ksig, regs, sigframe_size); in setup_rt_frame() [all …]
|
D | signal32.c | 332 static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long framesiz… in get_sigframe() argument 347 sp = sigsp(sp, ksig) - framesize; in get_sigframe() 418 static int setup_frame32(struct ksignal *ksig, struct pt_regs *regs, in setup_frame32() argument 441 get_sigframe(ksig, regs, sigframe_size); in setup_frame32() 520 regs->u_regs[UREG_I0] = ksig->sig; in setup_frame32() 525 regs->tpc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame32() 533 if (ksig->ka.ka_restorer) { in setup_frame32() 534 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; in setup_frame32() 549 static int setup_rt_frame32(struct ksignal *ksig, struct pt_regs *regs, in setup_rt_frame32() argument 572 get_sigframe(ksig, regs, sigframe_size); in setup_rt_frame32() [all …]
|
D | signal_64.c | 328 static inline void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, unsigned long f… in get_sigframe() argument 340 sp = sigsp(sp, ksig) - framesize; in get_sigframe() 354 setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs) in setup_rt_frame() argument 372 get_sigframe(ksig, regs, sf_size); in setup_rt_frame() 418 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame() 419 err |= copy_siginfo_to_user(&sf->info, &ksig->info); in setup_rt_frame() 421 err |= __put_user(ksig->sig, &sf->info.si_signo); in setup_rt_frame() 429 regs->u_regs[UREG_I0] = ksig->sig; in setup_rt_frame() 439 regs->tpc = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame() 446 regs->u_regs[UREG_I7] = (unsigned long)ksig->ka.ka_restorer; in setup_rt_frame() [all …]
|
/linux-4.4.14/arch/microblaze/kernel/ |
D | signal.c | 148 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, size_t frame_size) in get_sigframe() argument 151 unsigned long sp = sigsp(regs->r1, ksig); in get_sigframe() 156 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 160 int err = 0, sig = ksig->sig; in setup_rt_frame() 167 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 172 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame() 173 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 230 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame() 270 handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument 276 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal() [all …]
|
/linux-4.4.14/arch/blackfin/kernel/ |
D | signal.c | 138 static inline void *get_sigframe(struct ksignal *ksig, in get_sigframe() argument 141 unsigned long usp = sigsp(rdusp(), ksig); in get_sigframe() 147 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_rt_frame() argument 152 frame = get_sigframe(ksig, sizeof(*frame)); in setup_rt_frame() 154 err |= __put_user(ksig->sig, &frame->sig); in setup_rt_frame() 158 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 173 (struct fdpic_func_descriptor *) ksig->ka.sa.sa_handler; in setup_rt_frame() 182 regs->pc = (unsigned long)ksig->ka.sa.sa_handler; in setup_rt_frame() 227 handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument 234 handle_restart(regs, &ksig->ka, 1); in handle_signal() [all …]
|
/linux-4.4.14/arch/hexagon/kernel/ |
D | signal.c | 39 static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, in get_sigframe() argument 42 unsigned long sp = sigsp(regs->r29, ksig); in get_sigframe() 107 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 114 frame = get_sigframe(ksig, regs, sizeof(struct rt_sigframe)); in setup_rt_frame() 119 if (copy_siginfo_to_user(&frame->info, &ksig->info)) in setup_rt_frame() 136 | (unsigned long long)ksig->sig; in setup_rt_frame() 140 pt_set_elr(regs, (unsigned long)ksig->ka.sa.sa_handler); in setup_rt_frame() 148 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument 165 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal() 185 ret = setup_rt_frame(ksig, sigmask_to_save(), regs); in handle_signal() [all …]
|
/linux-4.4.14/arch/arm64/kernel/ |
D | signal.c | 212 static struct rt_sigframe __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument 218 sp = sp_top = sigsp(regs->sp, ksig); in get_sigframe() 250 static int setup_rt_frame(int usig, struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 256 frame = get_sigframe(ksig, regs); in setup_rt_frame() 266 setup_return(regs, &ksig->ka, frame, usig); in setup_rt_frame() 267 if (ksig->ka.sa.sa_flags & SA_SIGINFO) { in setup_rt_frame() 268 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 288 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument 292 int usig = ksig->sig; in handle_signal() 299 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal() [all …]
|
D | signal32.c | 439 static void __user *compat_get_sigframe(struct ksignal *ksig, in compat_get_sigframe() argument 443 compat_ulong_t sp = sigsp(regs->compat_sp, ksig); in compat_get_sigframe() 549 int compat_setup_rt_frame(int usig, struct ksignal *ksig, in compat_setup_rt_frame() argument 555 frame = compat_get_sigframe(ksig, regs, sizeof(*frame)); in compat_setup_rt_frame() 560 err |= copy_siginfo_to_user32(&frame->info, &ksig->info); in compat_setup_rt_frame() 570 compat_setup_return(regs, &ksig->ka, frame->sig.retcode, frame, usig); in compat_setup_rt_frame() 578 int compat_setup_frame(int usig, struct ksignal *ksig, sigset_t *set, in compat_setup_frame() argument 584 frame = compat_get_sigframe(ksig, regs, sizeof(*frame)); in compat_setup_frame() 593 compat_setup_return(regs, &ksig->ka, frame->retcode, frame, usig); in compat_setup_frame()
|
/linux-4.4.14/arch/arm/kernel/ |
D | signal.c | 302 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, int framesize) in get_sigframe() argument 304 unsigned long sp = sigsp(regs->ARM_sp, ksig); in get_sigframe() 322 setup_return(struct pt_regs *regs, struct ksignal *ksig, in setup_return() argument 325 unsigned long handler = (unsigned long)ksig->ka.sa.sa_handler; in setup_return() 335 if (ksig->ka.sa.sa_flags & SA_THIRTYTWO) in setup_return() 366 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_return() 367 retcode = (unsigned long)ksig->ka.sa.sa_restorer; in setup_return() 371 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_return() 407 regs->ARM_r0 = ksig->sig; in setup_return() 417 setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_frame() argument [all …]
|
/linux-4.4.14/arch/nios2/kernel/ |
D | signal.c | 165 static inline void *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, in get_sigframe() argument 174 usp = sigsp(usp, ksig); in get_sigframe() 180 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 186 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 188 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in setup_rt_frame() 189 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 207 regs->r4 = (unsigned long) ksig->sig; in setup_rt_frame() 210 regs->ea = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame() 214 force_sigsegv(ksig->sig, current); in setup_rt_frame() 221 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument [all …]
|
/linux-4.4.14/arch/c6x/kernel/ |
D | signal.c | 130 static inline void __user *get_sigframe(struct ksignal *ksig, in get_sigframe() argument 134 unsigned long sp = sigsp(regs->sp, ksig); in get_sigframe() 143 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 150 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 157 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 195 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame() 198 regs->a4 = ksig->sig; in setup_rt_frame() 238 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs, in handle_signal() argument 253 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal() 266 ret = setup_rt_frame(ksig, sigmask_to_save(), regs); in handle_signal() [all …]
|
/linux-4.4.14/arch/score/kernel/ |
D | signal.c | 176 static int setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs, in setup_rt_frame() argument 182 frame = get_sigframe(&ksig->ka, regs, sizeof(*frame)); in setup_rt_frame() 197 err |= copy_siginfo_to_user(&frame->rs_info, &ksig->info); in setup_rt_frame() 209 regs->regs[4] = ksig->sig; in setup_rt_frame() 212 regs->regs[29] = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame() 213 regs->cp0_epc = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame() 218 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs) in handle_signal() argument 229 if (!(ksig->ka.sa.sa_flags & SA_RESTART)) { in handle_signal() 245 ret = setup_rt_frame(ksig, regs, sigmask_to_save()); in handle_signal() 247 signal_setup_done(ret, ksig, 0); in handle_signal() [all …]
|
/linux-4.4.14/arch/x86/ia32/ |
D | ia32_signal.c | 214 static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, in get_sigframe() argument 225 if (ksig->ka.sa.sa_flags & SA_ONSTACK) in get_sigframe() 226 sp = sigsp(sp, ksig); in get_sigframe() 229 !(ksig->ka.sa.sa_flags & SA_RESTORER) && in get_sigframe() 230 ksig->ka.sa.sa_restorer) in get_sigframe() 231 sp = (unsigned long) ksig->ka.sa.sa_restorer; in get_sigframe() 250 int ia32_setup_frame(int sig, struct ksignal *ksig, in ia32_setup_frame() argument 269 frame = get_sigframe(ksig, regs, sizeof(*frame), &fpstate); in ia32_setup_frame() 286 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in ia32_setup_frame() 287 restorer = ksig->ka.sa.sa_restorer; in ia32_setup_frame() [all …]
|
/linux-4.4.14/arch/s390/kernel/ |
D | signal.c | 367 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 386 frame = get_sigframe(&ksig->ka, regs, frame_size); in setup_rt_frame() 396 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_rt_frame() 398 ksig->ka.sa.sa_restorer | PSW_ADDR_AMODE; in setup_rt_frame() 407 if (copy_siginfo_to_user(&frame->info, &ksig->info)) in setup_rt_frame() 429 regs->psw.addr = (unsigned long) ksig->ka.sa.sa_handler | PSW_ADDR_AMODE; in setup_rt_frame() 431 regs->gprs[2] = ksig->sig; in setup_rt_frame() 438 static void handle_signal(struct ksignal *ksig, sigset_t *oldset, in handle_signal() argument 444 if (ksig->ka.sa.sa_flags & SA_SIGINFO) in handle_signal() 445 ret = setup_rt_frame(ksig, oldset, regs); in handle_signal() [all …]
|
D | compat_signal.c | 370 static int setup_frame32(struct ksignal *ksig, sigset_t *set, in setup_frame32() argument 373 int sig = ksig->sig; in setup_frame32() 388 frame = get_sigframe(&ksig->ka, regs, frame_size); in setup_frame32() 419 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_frame32() 421 ksig->ka.sa.sa_restorer | PSW32_ADDR_AMODE; in setup_frame32() 437 regs->psw.addr = (__force __u64) ksig->ka.sa.sa_handler; in setup_frame32() 455 static int setup_rt_frame32(struct ksignal *ksig, sigset_t *set, in setup_rt_frame32() argument 477 frame = get_sigframe(&ksig->ka, regs, frame_size); in setup_rt_frame32() 487 if (ksig->ka.sa.sa_flags & SA_RESTORER) { in setup_rt_frame32() 489 ksig->ka.sa.sa_restorer | PSW32_ADDR_AMODE; in setup_rt_frame32() [all …]
|
D | entry.h | 52 void handle_signal32(struct ksignal *ksig, sigset_t *oldset,
|
/linux-4.4.14/arch/alpha/kernel/ |
D | signal.c | 275 get_sigframe(struct ksignal *ksig, unsigned long sp, size_t frame_size) in get_sigframe() argument 277 return (void __user *)((sigsp(sp, ksig) - frame_size) & -32ul); in get_sigframe() 338 setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_frame() argument 344 frame = get_sigframe(ksig, oldsp, sizeof(*frame)); in setup_frame() 354 r26 = (unsigned long) ksig->ka.ka_restorer; in setup_frame() 369 regs->r27 = regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame() 370 regs->r16 = ksig->sig; /* a0: signal number */ in setup_frame() 383 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs) in setup_rt_frame() argument 389 frame = get_sigframe(ksig, oldsp, sizeof(*frame)); in setup_rt_frame() 393 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() [all …]
|
/linux-4.4.14/arch/arm64/include/asm/ |
D | signal32.h | 27 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, in compat_setup_frame() argument 41 static inline int compat_setup_rt_frame(int usig, struct ksignal *ksig, sigset_t *set, in compat_setup_rt_frame() argument
|
/linux-4.4.14/arch/xtensa/kernel/ |
D | signal.c | 334 static int setup_frame(struct ksignal *ksig, sigset_t *set, in setup_frame() argument 338 int err = 0, sig = ksig->sig; in setup_frame() 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() 357 err |= copy_siginfo_to_user(&frame->info, &ksig->info); 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() 389 start_thread(regs, (unsigned long) ksig->ka.sa.sa_handler, in setup_frame() 420 struct ksignal ksig; in do_signal() local 424 if (get_signal(&ksig)) { in do_signal() [all …]
|
/linux-4.4.14/arch/parisc/kernel/ |
D | signal.c | 229 setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs, in setup_rt_frame() argument 243 frame = get_sigframe(&ksig->ka, usp, sizeof(*frame)); in setup_rt_frame() 246 DBG(1,"setup_rt_frame: frame %p info %p\n", frame, ksig->info); in setup_rt_frame() 255 err |= copy_siginfo_to_user32(&compat_frame->info, &ksig->info); in setup_rt_frame() 267 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 316 haddr = A(ksig->ka.sa.sa_handler); in setup_rt_frame() 388 regs->gr[26] = ksig->sig; /* signal number */ in setup_rt_frame() 420 handle_signal(struct ksignal *ksig, struct pt_regs *regs, int in_syscall) in handle_signal() argument 426 ksig->sig, ksig->ka, ksig->info, oldset, regs); in handle_signal() 429 ret = setup_rt_frame(ksig, oldset, regs, in_syscall); in handle_signal() [all …]
|
/linux-4.4.14/arch/unicore32/kernel/ |
D | signal.c | 241 static int setup_frame(struct ksignal *ksig, sigset_t *set, in setup_frame() argument 244 struct sigframe __user *frame = get_sigframe(&ksig->ka, regs, sizeof(*frame)); in setup_frame() 257 err |= setup_return(regs, &ksig->ka, frame->retcode, frame, in setup_frame() 258 ksig->sig); in setup_frame() 263 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 267 get_sigframe(&ksig->ka, regs, sizeof(*frame)); in setup_rt_frame() 273 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() 280 err |= setup_return(regs, &ksig->ka, frame->sig.retcode, frame, in setup_rt_frame() 281 ksig->sig); in setup_rt_frame() 304 static void handle_signal(struct ksignal *ksig, struct pt_regs *regs, in handle_signal() argument [all …]
|
/linux-4.4.14/arch/x86/um/ |
D | signal.c | 373 int setup_signal_stack_sc(unsigned long stack_top, struct ksignal *ksig, in setup_signal_stack_sc() argument 378 int err = 0, sig = ksig->sig; in setup_signal_stack_sc() 387 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_signal_stack_sc() 388 restorer = ksig->ka.sa.sa_restorer; in setup_signal_stack_sc() 412 PT_REGS_IP(regs) = (unsigned long) ksig->ka.sa.sa_handler; in setup_signal_stack_sc() 419 int setup_signal_stack_si(unsigned long stack_top, struct ksignal *ksig, in setup_signal_stack_si() argument 424 int err = 0, sig = ksig->sig; in setup_signal_stack_si() 432 if (ksig->ka.sa.sa_flags & SA_RESTORER) in setup_signal_stack_si() 433 restorer = ksig->ka.sa.sa_restorer; in setup_signal_stack_si() 439 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_signal_stack_si() [all …]
|
/linux-4.4.14/arch/ia64/kernel/ |
D | signal.c | 316 setup_frame(struct ksignal *ksig, sigset_t *set, struct sigscratch *scr) in setup_frame() argument 325 if (ksig->ka.sa.sa_flags & SA_ONSTACK) { in setup_frame() 349 return force_sigsegv_info(ksig->sig, (void __user *) in setup_frame() 356 return force_sigsegv_info(ksig->sig, frame); in setup_frame() 358 err = __put_user(ksig->sig, &frame->arg0); in setup_frame() 363 err |= __put_user(ksig->ka.sa.sa_handler, &frame->handler); in setup_frame() 365 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_frame() 371 return force_sigsegv_info(ksig->sig, frame); in setup_frame() 396 current->comm, current->pid, ksig->sig, scr->pt.r12, frame->sc.sc_ip, frame->handler); in setup_frame() 402 handle_signal (struct ksignal *ksig, struct sigscratch *scr) in handle_signal() argument [all …]
|
/linux-4.4.14/arch/mips/kernel/ |
D | signal.c | 519 void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs, in get_sigframe() argument 537 sp = sigsp(sp, ksig); in get_sigframe() 668 static int setup_frame(void *sig_return, struct ksignal *ksig, in setup_frame() argument 674 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_frame() 693 regs->regs[ 4] = ksig->sig; in setup_frame() 698 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame() 707 static int setup_rt_frame(void *sig_return, struct ksignal *ksig, in setup_rt_frame() argument 713 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame() 718 err |= copy_siginfo_to_user(&frame->rs_info, &ksig->info); in setup_rt_frame() 740 regs->regs[ 4] = ksig->sig; in setup_rt_frame() [all …]
|
D | signal_n32.c | 104 static int setup_rt_frame_n32(void *sig_return, struct ksignal *ksig, in setup_rt_frame_n32() argument 110 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame_n32() 115 err |= copy_siginfo_to_user32(&frame->rs_info, &ksig->info); in setup_rt_frame_n32() 137 regs->regs[ 4] = ksig->sig; in setup_rt_frame_n32() 142 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame_n32()
|
D | signal32.c | 316 static int setup_frame_32(void *sig_return, struct ksignal *ksig, in setup_frame_32() argument 322 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_frame_32() 342 regs->regs[ 4] = ksig->sig; in setup_frame_32() 347 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame_32() 356 static int setup_rt_frame_32(void *sig_return, struct ksignal *ksig, in setup_rt_frame_32() argument 362 frame = get_sigframe(ksig, regs, sizeof(*frame)); in setup_rt_frame_32() 367 err |= copy_siginfo_to_user32(&frame->rs_info, &ksig->info); in setup_rt_frame_32() 389 regs->regs[ 4] = ksig->sig; in setup_rt_frame_32() 394 regs->cp0_epc = regs->regs[25] = (unsigned long) ksig->ka.sa.sa_handler; in setup_rt_frame_32()
|
D | signal-common.h | 25 extern void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
|
/linux-4.4.14/arch/m68k/kernel/ |
D | signal.c | 838 get_sigframe(struct ksignal *ksig, size_t frame_size) in get_sigframe() argument 840 unsigned long usp = sigsp(rdusp(), ksig); in get_sigframe() 845 static int setup_frame(struct ksignal *ksig, sigset_t *set, in setup_frame() argument 851 int err = 0, sig = ksig->sig; in setup_frame() 861 frame = get_sigframe(ksig, sizeof(*frame) + fsize); in setup_frame() 898 regs->pc = (unsigned long) ksig->ka.sa.sa_handler; in setup_frame() 926 static int setup_rt_frame(struct ksignal *ksig, sigset_t *set, in setup_rt_frame() argument 931 int err = 0, sig = ksig->sig; in setup_rt_frame() 941 frame = get_sigframe(ksig, sizeof(*frame)); in setup_rt_frame() 949 err |= copy_siginfo_to_user(&frame->info, &ksig->info); in setup_rt_frame() [all …]
|
/linux-4.4.14/arch/um/include/shared/ |
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-4.4.14/arch/mips/include/asm/ |
D | abi.h | 17 int (* const setup_frame)(void *sig_return, struct ksignal *ksig, 19 int (* const setup_rt_frame)(void *sig_return, struct ksignal *ksig,
|
/linux-4.4.14/arch/x86/include/asm/fpu/ |
D | signal.h | 11 int ia32_setup_rt_frame(int sig, struct ksignal *ksig, 13 int ia32_setup_frame(int sig, struct ksignal *ksig,
|
/linux-4.4.14/kernel/ |
D | signal.c | 2130 int get_signal(struct ksignal *ksig) in get_signal() argument 2200 signr = dequeue_signal(current, ¤t->blocked, &ksig->info); in get_signal() 2206 signr = ptrace_signal(signr, &ksig->info); in get_signal() 2214 trace_signal_deliver(signr, &ksig->info, ka); in get_signal() 2220 ksig->ka = *ka; in get_signal() 2270 if (likely(do_signal_stop(ksig->info.si_signo))) { in get_signal() 2291 print_fatal_signal(ksig->info.si_signo); in get_signal() 2301 do_coredump(&ksig->info); in get_signal() 2307 do_group_exit(ksig->info.si_signo); in get_signal() 2312 ksig->sig = signr; in get_signal() [all …]
|
/linux-4.4.14/include/linux/ |
D | signal.h | 294 extern int get_signal(struct ksignal *ksig); 295 extern void signal_setup_done(int failed, struct ksignal *ksig, int stepping);
|
D | sched.h | 2561 static inline unsigned long sigsp(unsigned long sp, struct ksignal *ksig) in sigsp() argument 2563 if (unlikely((ksig->ka.sa.sa_flags & SA_ONSTACK)) && ! sas_ss_flags(sp)) in sigsp()
|
/linux-4.4.14/arch/tile/include/asm/ |
D | compat.h | 270 extern int compat_setup_rt_frame(struct ksignal *ksig, sigset_t *set,
|