in_syscall
if (user_mode(regs) && in_syscall(regs))
restart_scall = in_syscall(regs) && syscall_restartable(regs);
bool syscall = in_syscall(regs);
if (in_syscall(regs)) {
if (in_syscall(regs)) {
extern asmlinkage void do_notify_resume(struct pt_regs *regs, int in_syscall);
static void do_signal(struct pt_regs *regs, int in_syscall)
pr_info("do signal: %p %d\n", regs, in_syscall);
if (in_syscall)
if (in_syscall)
asmlinkage void do_notify_resume(struct pt_regs *regs, int in_syscall)
do_signal(regs, in_syscall);
if (in_syscall)
setup_sigcontext(struct sigcontext __user *sc, struct pt_regs *regs, long in_syscall)
if (in_syscall) {
long in_syscall)
&compat_frame->regs, regs, in_syscall);
err |= setup_sigcontext(&frame->uc.uc_mcontext, regs, in_syscall);
if (in_syscall)
__func__, haddr, regs->gr[19], in_syscall);
if (in_syscall) {
handle_signal(struct ksignal *ksig, struct pt_regs *regs, long in_syscall)
ret = setup_rt_frame(ksig, oldset, regs, in_syscall);
static void do_signal(struct pt_regs *regs, long in_syscall)
if (in_syscall)
handle_signal(&ksig, regs, in_syscall);
asmlinkage void do_notify_resume(struct pt_regs *regs, long in_syscall)
do_signal(regs, in_syscall);
sys_rt_sigreturn(struct pt_regs *regs, int in_syscall)
struct pt_regs *regs, int in_syscall)
if (in_syscall) {
struct pt_regs *regs, int in_syscall);
u8 in_syscall : 1; /* TX out of user context */
} else if (c_tx->in_syscall) {
qp->tx_ctx.in_syscall = 1;
qp->tx_ctx.in_syscall = 0;