Home
last modified time | relevance | path

Searched refs:ksig (Results 1 – 55 of 55) sorted by relevance

/linux-4.4.14/arch/cris/arch-v10/kernel/
Dsignal.c206 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/
Dsignal.c161 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/
Dsignal.c130 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/
Dsignal.c34 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 …]
Dsignal.h15 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
Dsignal_64.c726 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 …]
Dsignal_32.c991 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/
Dsignal.c21 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/
Dsignal.c194 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/
Dsignal.c153 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/
Dsignal.c189 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/
Dsignal.c135 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/
Dsignal.c277 __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/
Dsignal.c143 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/
Dsignal.c148 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 …]
Dcompat_signal.c190 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/
Dsignal.c205 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/
Dsignal_32.c265 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 …]
Dsignal_64.c44 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/
Dsignal.c165 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/
Dsignal_32.c201 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 …]
Dsignal32.c332 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 …]
Dsignal_64.c328 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/
Dsignal.c148 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/
Dsignal.c138 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/
Dsignal.c39 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/
Dsignal.c212 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 …]
Dsignal32.c439 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/
Dsignal.c302 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/
Dsignal.c165 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/
Dsignal.c130 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/
Dsignal.c176 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/
Dia32_signal.c214 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/
Dsignal.c367 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 …]
Dcompat_signal.c370 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 …]
Dentry.h52 void handle_signal32(struct ksignal *ksig, sigset_t *oldset,
/linux-4.4.14/arch/alpha/kernel/
Dsignal.c275 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/
Dsignal32.h27 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/
Dsignal.c334 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/
Dsignal.c229 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/
Dsignal.c241 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/
Dsignal.c373 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/
Dsignal.c316 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/
Dsignal.c519 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 …]
Dsignal_n32.c104 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()
Dsignal32.c316 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()
Dsignal-common.h25 extern void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
/linux-4.4.14/arch/m68k/kernel/
Dsignal.c838 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/
Dframe_kern.h9 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/
Dabi.h17 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/
Dsignal.h11 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/
Dsignal.c2130 int get_signal(struct ksignal *ksig) in get_signal() argument
2200 signr = dequeue_signal(current, &current->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/
Dsignal.h294 extern int get_signal(struct ksignal *ksig);
295 extern void signal_setup_done(int failed, struct ksignal *ksig, int stepping);
Dsched.h2561 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/
Dcompat.h270 extern int compat_setup_rt_frame(struct ksignal *ksig, sigset_t *set,