13 #include <linux/signal.h>
16 #include <asm/hw_breakpoint.h>
17 #include <asm/uaccess.h>
18 #include <asm/unistd.h>
19 #include <asm/debug.h>
33 size_t frame_size,
int is_32)
35 unsigned long oldsp, newsp;
38 oldsp = get_clean_sp(regs, is_32);
42 current->sas_ss_size && !on_sig_stack(oldsp))
46 newsp = (oldsp - frame_size) & ~0xFUL;
52 return (
void __user *)newsp;
58 unsigned long ret = regs->
gpr[3];
62 if (
TRAP(regs) != 0x0C00)
66 if (!(regs->
ccr & 0x10000000))
76 restart = !has_handler;
82 restart = !has_handler || (ka->
sa.sa_flags &
SA_RESTART) != 0;
102 regs->
ccr |= 0x10000000;
108 sigset_t *oldset = sigmask_to_save();
118 check_syscall_restart(regs, &ka, signr > 0);
122 restore_saved_sigmask();
127 #ifndef CONFIG_PPC_ADV_DEBUG_REGS
171 tracehook_notify_resume(regs);
176 unsigned long r5,
unsigned long r6,
unsigned long r7,