/linux-4.1.27/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-4.1.27/arch/um/kernel/ |
H A D | signal.c | 21 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 D | signal.c | 130 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 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, handle_rt_signal64() argument
|
H A D | signal.c | 34 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 D | signal_64.c | 715 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 D | signal_32.c | 986 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 D | signal.c | 161 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 D | signal.c | 189 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 D | abi.h | 16 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 D | signal.c | 274 __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 D | signal.c | 165 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 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, 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 D | signal.c | 143 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 D | signal.c | 138 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 D | signal.c | 165 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 D | signal.c | 39 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 D | signal.c | 212 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 D | signal32.c | 439 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 D | signal_32.c | 265 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 D | signal_64.c | 44 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 D | signal_32.c | 190 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 D | signal32.c | 318 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 D | signal_64.c | 319 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 D | signal.c | 206 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 D | signal.c | 195 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 D | signal.c | 148 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 D | compat_signal.c | 190 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 D | signal.c | 153 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 D | signal.c | 176 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 D | signal.c | 275 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 D | signal.c | 148 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 D | signal.c | 135 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 D | signal.c | 283 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 D | signal_n32.c | 105 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 D | signal-common.h | 25 extern void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
|
H A D | signal32.c | 491 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 D | signal.c | 130 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 D | signal.c | 241 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 D | signal.c | 373 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 D | signal.c | 386 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 D | compat_signal.c | 390 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 D | entry.h | 55 void handle_signal32(struct ksignal *ksig, sigset_t *oldset,
|
/linux-4.1.27/arch/arm/kernel/ |
H A D | signal.c | 302 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 D | ia32_signal.c | 307 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 D | signal.c | 334 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 D | signal.c | 229 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 D | signal.c | 316 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 D | signal.c | 838 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 D | signal.h | 295 extern int get_signal(struct ksignal *ksig); 296 extern void signal_setup_done(int failed, struct ksignal *ksig, int stepping);
|
H A D | sched.h | 2456 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 D | signal.c | 2181 int get_signal(struct ksignal *ksig) get_signal() argument 2251 signr = dequeue_signal(current, ¤t->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, ¤t->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 D | fpu-internal.h | 30 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 D | compat.h | 270 extern int compat_setup_rt_frame(struct ksignal *ksig, sigset_t *set,
|