27 #include <linux/sched.h>
29 #include <linux/kernel.h>
30 #include <linux/signal.h>
32 #include <linux/errno.h>
33 #include <linux/wait.h>
34 #include <linux/ptrace.h>
36 #include <linux/stddef.h>
38 #include <linux/personality.h>
39 #include <linux/tty.h>
40 #include <linux/binfmts.h>
43 #include <asm/setup.h>
44 #include <asm/uaccess.h>
45 #include <asm/pgtable.h>
46 #include <asm/traps.h>
47 #include <asm/ucontext.h>
56 siginitset(&blocked, mask);
75 siginitset(&new_ka.
sa.sa_mask, mask);
110 #if defined(CONFIG_CPU_H8S)
125 #if defined(CONFIG_CPU_H8S)
150 #define COPY(r) err |= __get_user(regs->r, &usc->sc_##r)
156 ccr = regs->
ccr & 0x10;
173 unsigned long usp = rdusp();
188 if (restore_sigcontext(regs, &frame->
sc, &er0))
200 unsigned long usp = rdusp();
212 if (restore_sigcontext(regs, &frame->
uc.uc_mcontext, &er0))
255 if (!sas_ss_flags(usp))
258 return (
void *)((usp - frame_size) & -8
UL);
269 frame = get_sigframe(ka, regs,
sizeof(*frame));
284 err |= setup_sigcontext(&frame->
sc, regs,
set->sig[0]);
297 ret = (
unsigned char *)(ka->
sa.sa_restorer);
301 (
unsigned long *)(frame->
retcode + 0));
312 wrusp ((
unsigned long) frame);
313 regs->
pc = (
unsigned long) ka->
sa.sa_handler;
337 frame = get_sigframe(ka, regs,
sizeof(*frame));
362 &frame->
uc.uc_stack.ss_sp);
364 &frame->
uc.uc_stack.ss_flags);
366 err |= setup_sigcontext(&frame->
uc.uc_mcontext, regs,
set->sig[0]);
374 ret = (
unsigned char *)(ka->
sa.sa_restorer);
378 (
unsigned long *)(frame->
retcode + 0));
387 wrusp ((
unsigned long) frame);
388 regs->
pc = (
unsigned long) ka->
sa.sa_handler;
412 sigset_t *oldset = sigmask_to_save();
436 ret = setup_rt_frame(sig, ka, info, oldset, regs);
438 ret = setup_frame(sig, ka, oldset, regs);
461 if ((regs->
ccr & 0x10))
469 handle_signal(signr, &info, &ka, regs);
488 restore_saved_sigmask();
498 tracehook_notify_resume(regs);