/arch/powerpc/kernel/ |
D | signal.c | 31 void __user * get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, in get_sigframe() argument 40 if ((ka->sa.sa_flags & SA_ONSTACK) && in get_sigframe() 64 static void check_syscall_restart(struct pt_regs *regs, struct k_sigaction *ka, in check_syscall_restart() argument 91 restart = !has_handler || (ka->sa.sa_flags & SA_RESTART) != 0; in check_syscall_restart() 120 struct k_sigaction ka; in do_signal() local 129 signr = get_signal_to_deliver(&info, &ka, regs, NULL); in do_signal() 132 check_syscall_restart(regs, &ka, signr > 0); in do_signal() 158 if (ka.sa.sa_flags & SA_SIGINFO) in do_signal() 159 ret = handle_rt_signal32(signr, &ka, &info, oldset, in do_signal() 162 ret = handle_signal32(signr, &ka, &info, oldset, in do_signal() [all …]
|
D | signal.h | 17 extern void __user * get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, 21 extern int handle_signal32(unsigned long sig, struct k_sigaction *ka, 25 extern int handle_rt_signal32(unsigned long sig, struct k_sigaction *ka, 42 extern int handle_rt_signal64(int signr, struct k_sigaction *ka, 48 static inline int handle_rt_signal64(int signr, struct k_sigaction *ka, in handle_rt_signal64() argument
|
/arch/cris/arch-v32/kernel/ |
D | signal.c | 272 get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size) in get_sigframe() argument 279 if (ka->sa.sa_flags & SA_ONSTACK) { in get_sigframe() 298 setup_frame(int sig, struct k_sigaction *ka, sigset_t *set, in setup_frame() argument 306 frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_frame() 328 if (ka->sa.sa_flags & SA_RESTORER) { in setup_frame() 329 return_ip = (unsigned long)ka->sa.sa_restorer; in setup_frame() 356 regs->erp = (unsigned long) ka->sa.sa_handler; in setup_frame() 367 ka->sa.sa_handler = SIG_DFL; in setup_frame() 374 setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, in setup_rt_frame() argument 382 frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_rt_frame() [all …]
|
/arch/cris/arch-v10/kernel/ |
D | signal.c | 277 get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size) in get_sigframe() argument 282 if (ka->sa.sa_flags & SA_ONSTACK) { in get_sigframe() 302 static int setup_frame(int sig, struct k_sigaction *ka, in setup_frame() argument 309 frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_frame() 327 if (ka->sa.sa_flags & SA_RESTORER) { in setup_frame() 328 return_ip = (unsigned long)ka->sa.sa_restorer; in setup_frame() 343 regs->irp = (unsigned long) ka->sa.sa_handler; /* what we enter NOW */ in setup_frame() 358 static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, in setup_rt_frame() argument 365 frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_rt_frame() 388 if (ka->sa.sa_flags & SA_RESTORER) { in setup_rt_frame() [all …]
|
/arch/x86/kernel/ |
D | signal.c | 201 get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size, in get_sigframe() argument 215 if (ka->sa.sa_flags & SA_ONSTACK) { in get_sigframe() 222 !(ka->sa.sa_flags & SA_RESTORER) && in get_sigframe() 223 ka->sa.sa_restorer) in get_sigframe() 224 sp = (unsigned long) ka->sa.sa_restorer; in get_sigframe() 277 __setup_frame(int sig, struct k_sigaction *ka, sigset_t *set, in __setup_frame() argument 285 frame = get_sigframe(ka, regs, sizeof(*frame), &fpstate); in __setup_frame() 306 if (ka->sa.sa_flags & SA_RESTORER) in __setup_frame() 307 restorer = ka->sa.sa_restorer; in __setup_frame() 326 regs->ip = (unsigned long)ka->sa.sa_handler; in __setup_frame() [all …]
|
/arch/microblaze/kernel/ |
D | signal.c | 161 get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size) in get_sigframe() argument 166 if ((ka->sa.sa_flags & SA_ONSTACK) != 0 && !on_sig_stack(sp)) in get_sigframe() 172 static void setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, in setup_rt_frame() argument 184 frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_rt_frame() 257 regs->pc = (unsigned long)ka->sa.sa_handler; in setup_rt_frame() 274 ka->sa.sa_handler = SIG_DFL; in setup_rt_frame() 280 handle_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler) in handle_restart() argument 290 if (has_handler && !(ka->sa.sa_flags & SA_RESTART)) { in handle_restart() 316 handle_signal(unsigned long sig, struct k_sigaction *ka, in handle_signal() argument 320 if (ka->sa.sa_flags & SA_SIGINFO) in handle_signal() [all …]
|
/arch/frv/kernel/ |
D | signal.c | 229 static inline void __user *get_sigframe(struct k_sigaction *ka, in get_sigframe() argument 238 if (ka->sa.sa_flags & SA_ONSTACK) { in get_sigframe() 251 static int setup_frame(int sig, struct k_sigaction *ka, sigset_t *set) in setup_frame() argument 258 frame = get_sigframe(ka, sizeof(*frame)); in setup_frame() 283 if (ka->sa.sa_flags & SA_RESTORER) { in setup_frame() 284 if (__put_user(ka->sa.sa_restorer, &frame->pretcode) < 0) in setup_frame() 304 (struct fdpic_func_descriptor __user *) ka->sa.sa_handler; in setup_frame() 311 __frame->pc = (unsigned long) ka->sa.sa_handler; in setup_frame() 341 static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, in setup_rt_frame() argument 349 frame = get_sigframe(ka, sizeof(*frame)); in setup_rt_frame() [all …]
|
/arch/s390/kernel/ |
D | signal.c | 225 get_sigframe(struct k_sigaction *ka, struct pt_regs * regs, size_t frame_size) in get_sigframe() argument 237 if (ka->sa.sa_flags & SA_ONSTACK) { in get_sigframe() 244 !(ka->sa.sa_flags & SA_RESTORER) && in get_sigframe() 245 ka->sa.sa_restorer) { in get_sigframe() 246 sp = (unsigned long) ka->sa.sa_restorer; in get_sigframe() 262 static int setup_frame(int sig, struct k_sigaction *ka, in setup_frame() argument 267 frame = get_sigframe(ka, regs, sizeof(sigframe)); in setup_frame() 284 if (ka->sa.sa_flags & SA_RESTORER) { in setup_frame() 286 ka->sa.sa_restorer | PSW_ADDR_AMODE; in setup_frame() 305 regs->psw.addr = (unsigned long) ka->sa.sa_handler | PSW_ADDR_AMODE; in setup_frame() [all …]
|
/arch/avr32/kernel/ |
D | signal.c | 140 get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, int framesize) in get_sigframe() argument 144 if ((ka->sa.sa_flags & SA_ONSTACK) && !sas_ss_flags(sp)) in get_sigframe() 151 setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, in setup_rt_frame() argument 157 frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_rt_frame() 198 if (ka->sa.sa_flags & SA_RESTORER) in setup_rt_frame() 199 regs->lr = (unsigned long)ka->sa.sa_restorer; in setup_rt_frame() 208 regs->pc, ka->sa.sa_handler, regs->lr); in setup_rt_frame() 210 regs->pc = (unsigned long) ka->sa.sa_handler; in setup_rt_frame() 226 handle_signal(unsigned long sig, struct k_sigaction *ka, siginfo_t *info, in handle_signal() argument 234 ret = setup_rt_frame(sig, ka, info, oldset, regs); in handle_signal() [all …]
|
/arch/openrisc/kernel/ |
D | signal.c | 155 static inline void __user *get_sigframe(struct k_sigaction *ka, in get_sigframe() argument 165 if ((ka->sa.sa_flags & SA_ONSTACK) && !onsigstack) { in get_sigframe() 189 static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, in setup_rt_frame() argument 196 frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_rt_frame() 204 if (ka->sa.sa_flags & SA_SIGINFO) in setup_rt_frame() 238 regs->pc = (unsigned long)ka->sa.sa_handler; /* what we enter NOW */ in setup_rt_frame() 256 siginfo_t *info, struct k_sigaction *ka, in handle_signal() argument 261 ret = setup_rt_frame(sig, ka, info, oldset, regs); in handle_signal() 265 block_sigmask(ka, sig); in handle_signal() 286 struct k_sigaction ka; in do_signal() local [all …]
|
/arch/um/kernel/ |
D | signal.c | 26 struct k_sigaction *ka, siginfo_t *info, in handle_signal() argument 45 if (!(ka->sa.sa_flags & SA_RESTART)) { in handle_signal() 58 if ((ka->sa.sa_flags & SA_ONSTACK) && (sas_ss_flags(sp) == 0)) in handle_signal() 62 if (!(ka->sa.sa_flags & SA_SIGINFO)) in handle_signal() 63 err = setup_signal_stack_sc(sp, signr, ka, regs, oldset); in handle_signal() 66 err = setup_signal_stack_si(sp, signr, ka, regs, info, oldset); in handle_signal() 71 block_sigmask(ka, signr); in handle_signal()
|
/arch/blackfin/kernel/ |
D | signal.c | 150 static inline void *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, in get_sigframe() argument 159 if (ka->sa.sa_flags & SA_ONSTACK) { in get_sigframe() 167 setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t * info, in setup_rt_frame() argument 173 frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_rt_frame() 202 (struct fdpic_func_descriptor *) ka->sa.sa_handler; in setup_rt_frame() 206 regs->pc = (unsigned long)ka->sa.sa_handler; in setup_rt_frame() 217 ka->sa.sa_handler = SIG_DFL; in setup_rt_frame() 223 handle_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler) in handle_restart() argument 233 if (has_handler && !(ka->sa.sa_flags & SA_RESTART)) { in handle_restart() 256 handle_signal(int sig, siginfo_t *info, struct k_sigaction *ka, in handle_signal() argument [all …]
|
/arch/tile/kernel/ |
D | signal.c | 132 static inline void __user *get_sigframe(struct k_sigaction *ka, in get_sigframe() argument 150 if (ka->sa.sa_flags & SA_ONSTACK) { in get_sigframe() 164 static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, in setup_rt_frame() argument 172 frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_rt_frame() 184 if (ka->sa.sa_flags & SA_SIGINFO) { in setup_rt_frame() 207 if (ka->sa.sa_flags & SA_RESTORER) in setup_rt_frame() 208 restorer = (unsigned long) ka->sa.sa_restorer; in setup_rt_frame() 217 regs->pc = (unsigned long) ka->sa.sa_handler; in setup_rt_frame() 246 struct k_sigaction *ka, sigset_t *oldset, in handle_signal() argument 261 if (!(ka->sa.sa_flags & SA_RESTART)) { in handle_signal() [all …]
|
/arch/h8300/kernel/ |
D | signal.c | 302 get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size) in get_sigframe() argument 310 if (ka->sa.sa_flags & SA_ONSTACK) { in get_sigframe() 317 static void setup_frame (int sig, struct k_sigaction *ka, in setup_frame() argument 325 frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_frame() 352 if (ka->sa.sa_flags & SA_RESTORER) in setup_frame() 353 ret = (unsigned char *)(ka->sa.sa_restorer); in setup_frame() 369 regs->pc = (unsigned long) ka->sa.sa_handler; in setup_frame() 384 static void setup_rt_frame (int sig, struct k_sigaction *ka, siginfo_t *info, in setup_rt_frame() argument 392 frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_rt_frame() 428 if (ka->sa.sa_flags & SA_RESTORER) in setup_rt_frame() [all …]
|
/arch/score/kernel/ |
D | signal.c | 121 static void __user *get_sigframe(struct k_sigaction *ka, in get_sigframe() argument 131 if ((ka->sa.sa_flags & SA_ONSTACK) && (!on_sig_stack(sp))) in get_sigframe() 192 static int setup_rt_frame(struct k_sigaction *ka, struct pt_regs *regs, in setup_rt_frame() argument 198 frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_rt_frame() 233 regs->regs[29] = (unsigned long) ka->sa.sa_handler; in setup_rt_frame() 234 regs->cp0_epc = (unsigned long) ka->sa.sa_handler; in setup_rt_frame() 240 ka->sa.sa_handler = SIG_DFL; in setup_rt_frame() 246 struct k_sigaction *ka, sigset_t *oldset, struct pt_regs *regs) in handle_signal() argument 257 if (!(ka->sa.sa_flags & SA_RESTART)) { in handle_signal() 273 ret = setup_rt_frame(ka, regs, sig, oldset, info); in handle_signal() [all …]
|
/arch/c6x/kernel/ |
D | signal.c | 130 static inline void __user *get_sigframe(struct k_sigaction *ka, in get_sigframe() argument 139 if ((ka->sa.sa_flags & SA_ONSTACK) && sas_ss_flags(sp) == 0) in get_sigframe() 149 static int setup_rt_frame(int signr, struct k_sigaction *ka, siginfo_t *info, in setup_rt_frame() argument 156 frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_rt_frame() 201 regs->pc = (unsigned long) ka->sa.sa_handler; in setup_rt_frame() 222 handle_restart(struct pt_regs *regs, struct k_sigaction *ka, int has_handler) in handle_restart() argument 232 if (has_handler && !(ka->sa.sa_flags & SA_RESTART)) { in handle_restart() 249 siginfo_t *info, struct k_sigaction *ka, in handle_signal() argument 265 if (!(ka->sa.sa_flags & SA_RESTART)) { in handle_signal() 278 ret = setup_rt_frame(sig, ka, info, oldset, regs); in handle_signal() [all …]
|
/arch/mn10300/kernel/ |
D | signal.c | 261 static inline void __user *get_sigframe(struct k_sigaction *ka, in get_sigframe() argument 271 if (ka->sa.sa_flags & SA_ONSTACK) { in get_sigframe() 282 static int setup_frame(int sig, struct k_sigaction *ka, sigset_t *set, in setup_frame() argument 288 frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_frame() 314 if (ka->sa.sa_flags & SA_RESTORER) { in setup_frame() 315 if (__put_user(ka->sa.sa_restorer, &frame->pretcode)) in setup_frame() 334 regs->pc = (unsigned long) ka->sa.sa_handler; in setup_frame() 358 static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, in setup_rt_frame() argument 364 frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_rt_frame() 394 if (ka->sa.sa_flags & SA_RESTORER) { in setup_rt_frame() [all …]
|
/arch/sh/kernel/ |
D | signal_32.c | 327 get_sigframe(struct k_sigaction *ka, unsigned long sp, size_t frame_size) in get_sigframe() argument 329 if (ka->sa.sa_flags & SA_ONSTACK) { in get_sigframe() 342 static int setup_frame(int sig, struct k_sigaction *ka, in setup_frame() argument 349 frame = get_sigframe(ka, regs->regs[15], sizeof(*frame)); in setup_frame() 368 if (ka->sa.sa_flags & SA_RESTORER) { in setup_frame() 369 regs->pr = (unsigned long) ka->sa.sa_restorer; in setup_frame() 399 (struct fdpic_func_descriptor __user *)ka->sa.sa_handler; in setup_frame() 404 regs->pc = (unsigned long)ka->sa.sa_handler; in setup_frame() 418 static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, in setup_rt_frame() argument 425 frame = get_sigframe(ka, regs->regs[15], sizeof(*frame)); in setup_rt_frame() [all …]
|
/arch/m32r/kernel/ |
D | signal.c | 181 get_sigframe(struct k_sigaction *ka, unsigned long sp, size_t frame_size) in get_sigframe() argument 184 if (ka->sa.sa_flags & SA_ONSTACK) { in get_sigframe() 192 static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, in setup_rt_frame() argument 199 frame = get_sigframe(ka, regs->spu, sizeof(*frame)); in setup_rt_frame() 233 regs->lr = (unsigned long)ka->sa.sa_restorer; in setup_rt_frame() 240 regs->bpc = (unsigned long)ka->sa.sa_handler; in setup_rt_frame() 274 handle_signal(unsigned long sig, struct k_sigaction *ka, siginfo_t *info, in handle_signal() argument 287 if (!(ka->sa.sa_flags & SA_RESTART)) { in handle_signal() 300 if (setup_rt_frame(sig, ka, info, oldset, regs)) in handle_signal() 304 sigorsets(¤t->blocked,¤t->blocked,&ka->sa.sa_mask); in handle_signal() [all …]
|
/arch/alpha/kernel/ |
D | signal.c | 305 get_sigframe(struct k_sigaction *ka, unsigned long sp, size_t frame_size) in get_sigframe() argument 307 if ((ka->sa.sa_flags & SA_ONSTACK) != 0 && ! sas_ss_flags(sp)) in get_sigframe() 370 setup_frame(int sig, struct k_sigaction *ka, sigset_t *set, in setup_frame() argument 377 frame = get_sigframe(ka, oldsp, sizeof(*frame)); in setup_frame() 387 if (ka->ka_restorer) { in setup_frame() 388 r26 = (unsigned long) ka->ka_restorer; in setup_frame() 403 regs->r27 = regs->pc = (unsigned long) ka->sa.sa_handler; in setup_frame() 422 setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, in setup_rt_frame() argument 429 frame = get_sigframe(ka, oldsp, sizeof(*frame)); in setup_rt_frame() 450 if (ka->ka_restorer) { in setup_rt_frame() [all …]
|
/arch/arm/kernel/ |
D | signal.c | 377 get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, int framesize) in get_sigframe() argument 385 if ((ka->sa.sa_flags & SA_ONSTACK) && !sas_ss_flags(sp)) in get_sigframe() 403 setup_return(struct pt_regs *regs, struct k_sigaction *ka, in setup_return() argument 406 unsigned long handler = (unsigned long)ka->sa.sa_handler; in setup_return() 416 if (ka->sa.sa_flags & SA_THIRTYTWO) in setup_return() 438 if (ka->sa.sa_flags & SA_RESTORER) { in setup_return() 439 retcode = (unsigned long)ka->sa.sa_restorer; in setup_return() 443 if (ka->sa.sa_flags & SA_SIGINFO) in setup_return() 478 setup_frame(int usig, struct k_sigaction *ka, sigset_t *set, struct pt_regs *regs) in setup_frame() argument 480 struct sigframe __user *frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_frame() [all …]
|
/arch/parisc/kernel/ |
D | signal.c | 189 get_sigframe(struct k_sigaction *ka, unsigned long sp, size_t frame_size) in get_sigframe() argument 195 (unsigned long)ka, sp, frame_size); in get_sigframe() 197 if ((ka->sa.sa_flags & SA_ONSTACK) != 0 && ! sas_ss_flags(sp)) in get_sigframe() 239 setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, in setup_rt_frame() argument 254 frame = get_sigframe(ka, usp, sizeof(*frame)); in setup_rt_frame() 338 haddr = A(ka->sa.sa_handler); in setup_rt_frame() 447 handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka, in handle_signal() argument 451 sig, ka, info, oldset, regs); in handle_signal() 454 if (!setup_rt_frame(sig, ka, info, oldset, regs, in_syscall)) in handle_signal() 458 sigorsets(¤t->blocked,¤t->blocked,&ka->sa.sa_mask); in handle_signal() [all …]
|
/arch/sparc/kernel/ |
D | signal_32.c | 259 static int setup_frame(struct k_sigaction *ka, struct pt_regs *regs, in setup_frame() argument 278 get_sigframe(&ka->sa, regs, sigframe_size); in setup_frame() 329 regs->pc = (unsigned long) ka->sa.sa_handler; in setup_frame() 333 if (ka->ka_restorer) in setup_frame() 334 regs->u_regs[UREG_I7] = (unsigned long)ka->ka_restorer; in setup_frame() 360 static int setup_rt_frame(struct k_sigaction *ka, struct pt_regs *regs, in setup_rt_frame() argument 377 get_sigframe(&ka->sa, regs, sigframe_size); in setup_rt_frame() 435 regs->pc = (unsigned long) ka->sa.sa_handler; in setup_rt_frame() 438 if (ka->ka_restorer) in setup_rt_frame() 439 regs->u_regs[UREG_I7] = (unsigned long)ka->ka_restorer; in setup_rt_frame() [all …]
|
/arch/unicore32/kernel/ |
D | signal.c | 194 static inline void __user *get_sigframe(struct k_sigaction *ka, in get_sigframe() argument 203 if ((ka->sa.sa_flags & SA_ONSTACK) && !sas_ss_flags(sp)) in get_sigframe() 220 static int setup_return(struct pt_regs *regs, struct k_sigaction *ka, in setup_return() argument 223 unsigned long handler = (unsigned long)ka->sa.sa_handler; in setup_return() 229 if (ka->sa.sa_flags & SA_SIGINFO) in setup_return() 247 static int setup_frame(int usig, struct k_sigaction *ka, in setup_frame() argument 250 struct sigframe __user *frame = get_sigframe(ka, regs, sizeof(*frame)); in setup_frame() 263 err |= setup_return(regs, ka, frame->retcode, frame, usig); in setup_frame() 268 static int setup_rt_frame(int usig, struct k_sigaction *ka, siginfo_t *info, in setup_rt_frame() argument 272 get_sigframe(ka, regs, sizeof(*frame)); in setup_rt_frame() [all …]
|
/arch/mips/include/asm/ |
D | abi.h | 16 int (* const setup_frame)(void *sig_return, struct k_sigaction *ka, 20 int (* const setup_rt_frame)(void *sig_return, struct k_sigaction *ka,
|