sigframe
struct sigframe *fp;
fp = (struct sigframe *)
fp = (struct sigframe *)oldsp;
fp = (struct sigframe *)((int)(fp - 1) & ~STACK_ALIGNBYTES);
struct linux_rt_sigframe *sfp, sigframe;
memset(&sigframe, 0, sizeof(sigframe));
memset(&sigframe.uc, 0, sizeof(struct linux_ucontext));
sigframe.uc.uc_mcontext.sc_onstack = onstack;
native_to_linux_old_sigset(&sigframe.uc.uc_mcontext.sc_mask, mask);
native_to_linux_sigset(&sigframe.uc.uc_sigmask, mask);
sigframe.uc.uc_mcontext.sc_pc = tf->tf_regs[FRAME_PC];
sigframe.uc.uc_mcontext.sc_ps = ALPHA_PSL_USERMODE;
frametoreg(tf, (struct reg *)sigframe.uc.uc_mcontext.sc_regs);
sigframe.uc.uc_mcontext.sc_regs[R_SP] = alpha_pal_rdusp();
sigframe.uc.uc_mcontext.sc_fpcr = alpha_read_fpcr();
sigframe.uc.uc_mcontext.sc_fp_control = alpha_read_fp_c(l);
sigframe.uc.uc_mcontext.sc_traparg_a0 = tf->tf_regs[FRAME_A0];
sigframe.uc.uc_mcontext.sc_traparg_a1 = tf->tf_regs[FRAME_A1];
sigframe.uc.uc_mcontext.sc_traparg_a2 = tf->tf_regs[FRAME_A2];
native_to_linux_siginfo(&sigframe.info, &ksi->ksi_info);
error = copyout((void *)&sigframe, (void *)sfp, fsize);
struct linux_sigframe *sfp, sigframe;
memset(&sigframe, 0, sizeof(sigframe));
memset(&sigframe.sf_sc, 0, sizeof(struct linux_sigcontext));
sigframe.sf_sc.sc_onstack = onstack;
native_to_linux_old_sigset(&sigframe.sf_sc.sc_mask, mask);
sigframe.sf_sc.sc_pc = tf->tf_regs[FRAME_PC];
sigframe.sf_sc.sc_ps = ALPHA_PSL_USERMODE;
frametoreg(tf, (struct reg *)sigframe.sf_sc.sc_regs);
sigframe.sf_sc.sc_regs[R_SP] = alpha_pal_rdusp();
sigframe.sf_sc.sc_fpcr = pcb->pcb_fp.fpr_cr;
sigframe.sf_sc.sc_traparg_a0 = tf->tf_regs[FRAME_A0];
sigframe.sf_sc.sc_traparg_a1 = tf->tf_regs[FRAME_A1];
sigframe.sf_sc.sc_traparg_a2 = tf->tf_regs[FRAME_A2];
error = copyout((void *)&sigframe, (void *)sfp, fsize);
struct linux_rt_sigframe *sfp, sigframe;
if (copyin((void *)sfp, &sigframe,
linux_to_native_sigset(&mask, &sigframe.uc.uc_sigmask);
return(linux_restore_sigcontext(l, sigframe.uc.uc_mcontext, &mask));
struct linux_rt_sigframe *sfp, sigframe;
memset(&sigframe, 0, sizeof(sigframe));
sigframe.pretcode =
sigframe.pretcode = NULL;
sigframe.uc.luc_flags = 0;
sigframe.uc.luc_link = NULL;
sigframe.uc.luc_stack.ss_sp = l->l_sigstk.ss_sp;
sigframe.uc.luc_stack.ss_size = l->l_sigstk.ss_size;
sigframe.uc.luc_stack.ss_flags = 0;
sigframe.uc.luc_stack.ss_flags |= LINUX_SS_ONSTACK;
sigframe.uc.luc_stack.ss_flags |= LINUX_SS_DISABLE;
sigframe.uc.luc_mcontext.r8 = tf->tf_r8;
sigframe.uc.luc_mcontext.r9 = tf->tf_r9;
sigframe.uc.luc_mcontext.r10 = tf->tf_r10;
sigframe.uc.luc_mcontext.r11 = tf->tf_r11;
sigframe.uc.luc_mcontext.r12 = tf->tf_r12;
sigframe.uc.luc_mcontext.r13 = tf->tf_r13;
sigframe.uc.luc_mcontext.r14 = tf->tf_r14;
sigframe.uc.luc_mcontext.r15 = tf->tf_r15;
sigframe.uc.luc_mcontext.rdi = tf->tf_rdi;
sigframe.uc.luc_mcontext.rsi = tf->tf_rsi;
sigframe.uc.luc_mcontext.rbp = tf->tf_rbp;
sigframe.uc.luc_mcontext.rbx = tf->tf_rbx;
sigframe.uc.luc_mcontext.rdx = tf->tf_rdx;
sigframe.uc.luc_mcontext.rax = tf->tf_rax;
sigframe.uc.luc_mcontext.rcx = tf->tf_rcx;
sigframe.uc.luc_mcontext.rsp = tf->tf_rsp;
sigframe.uc.luc_mcontext.rip = tf->tf_rip;
sigframe.uc.luc_mcontext.eflags = tf->tf_rflags;
sigframe.uc.luc_mcontext.cs = GSEL(GUCODE_SEL, SEL_UPL);
sigframe.uc.luc_mcontext.gs = tf->tf_gs & 0xFFFF;
sigframe.uc.luc_mcontext.fs = tf->tf_fs & 0xFFFF;
sigframe.uc.luc_mcontext.err = tf->tf_err;
sigframe.uc.luc_mcontext.trapno = tf->tf_trapno;
sigframe.uc.luc_mcontext.oldmask = lmask.sig[0];
sigframe.uc.luc_mcontext.cr2 = (long)pcb->pcb_onfault;
sigframe.uc.luc_mcontext.fpstate = fpsp;
native_to_linux_sigset(&sigframe.uc.luc_sigmask, mask);
native_to_linux_siginfo(&sigframe.info, &ksi->ksi_info);
error = copyout(&sigframe, sp, sizeof(sigframe));
tf->tf_rdi = sigframe.info.lsi_signo;
struct linux_rt_sigframe *scp, sigframe;
if (copyin((void *)scp, &sigframe, sizeof(*scp)))
if (copyin((void *)sigframe.luc.luc_context.lregs,
linux_to_native_sigset(&mask, &sigframe.luc.luc_sigmask);
struct linux32_sigframe sigframe;
error = copyin((void *)tf->tf_reg[13], &sigframe, sizeof(sigframe));
error = linux32_restore_sigcontext(l, &sigframe.uc);