Make arch_sigreturn.c files more self-sustained. While they are still being included by sigreturn.c, the latter no longer defines arch_sigreturn function. * linux/alpha/arch_sigreturn.c (arch_sigreturn): Define. * linux/arm/arch_sigreturn.c: Likewise. * linux/crisv10/arch_sigreturn.c: Likewise. * linux/i386/arch_sigreturn.c: Likewise. * linux/ia64/arch_sigreturn.c: Likewise. * linux/m68k/arch_sigreturn.c: Likewise. * linux/microblaze/arch_sigreturn.c: Likewise. * linux/mips/arch_sigreturn.c: Likewise. * linux/powerpc/arch_sigreturn.c: Likewise. * linux/s390/arch_sigreturn.c: Likewise. * linux/sparc/arch_sigreturn.c: Likewise. * linux/tile/arch_sigreturn.c: Likewise. * linux/x32/arch_sigreturn.c: Remove code. Include "x86_64/arch_sigreturn.c". * linux/x86_64/arch_sigreturn.c: Stop including "x32/arch_sigreturn.c". Include "i386/arch_sigreturn.c" with arch_sigreturn temporarily defined to i386_arch_sigreturn. (arch_sigreturn): Define. Add x32 personality support there. * sigreturn.c: Remove arch_sigreturn header and footer. Requested-by: Denys Vlasenko <dvlasenk@redhat.com>
27 lines
638 B
C
27 lines
638 B
C
static void
|
|
arch_sigreturn(struct tcb *tcp)
|
|
{
|
|
#if defined LINUX_MIPSO32
|
|
/*
|
|
* offsetof(struct sigframe, sf_mask) ==
|
|
* sizeof(sf_ass) + sizeof(sf_pad) + sizeof(struct sigcontext)
|
|
*/
|
|
const long addr = mips_REG_SP + 6 * 4 +
|
|
sizeof(struct sigcontext);
|
|
#else
|
|
/*
|
|
* This decodes rt_sigreturn.
|
|
* The 64-bit ABIs do not have sigreturn.
|
|
*
|
|
* offsetof(struct rt_sigframe, rs_uc) ==
|
|
* sizeof(sf_ass) + sizeof(sf_pad) + sizeof(struct siginfo)
|
|
*/
|
|
const long addr = mips_REG_SP + 6 * 4 + 128 +
|
|
offsetof(struct ucontext, uc_sigmask);
|
|
#endif
|
|
|
|
tprints("{mask=");
|
|
print_sigset_addr_len(tcp, addr, NSIG / 8);
|
|
tprints("}");
|
|
}
|