linux/ia64/arch_regs.c \
linux/ia64/arch_regs.h \
linux/ia64/arch_rt_sigframe.c \
- linux/ia64/arch_sigreturn.c \
linux/ia64/get_error.c \
linux/ia64/get_scno.c \
linux/ia64/get_syscall_args.c \
+++ /dev/null
-static void
-arch_sigreturn(struct tcb *tcp)
-{
- /* offsetof(struct sigframe, sc) */
-#define OFFSETOF_STRUCT_SIGFRAME_SC 0xA0
- const unsigned long addr = *ia64_frame_ptr + 16 +
- OFFSETOF_STRUCT_SIGFRAME_SC +
- offsetof(struct sigcontext, sc_mask);
- tprints("{mask=");
- print_sigset_addr(tcp, addr);
- tprints("}");
-}
static void
arch_sigreturn(struct tcb *tcp)
{
-#if defined LINUX_MIPSO32
+ /* 64-bit ABIs do not have old sigreturn. */
+#ifdef LINUX_MIPSO32
/*
* offsetof(struct sigframe, sf_mask) ==
* sizeof(sf_ass) + sizeof(sf_pad) + sizeof(struct sigcontext)
*/
const kernel_ulong_t 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 kernel_ulong_t addr = mips_REG_SP + 6 * 4 + 128 +
- offsetof(struct ucontext, uc_sigmask);
-#endif
tprints("{mask=");
print_sigset_addr(tcp, addr);
tprints("}");
+#endif
}
-#define arch_sigreturn i386_arch_sigreturn
+/* Only x86 personality has old sigreturn syscall. */
#include "i386/arch_sigreturn.c"
-#undef arch_sigreturn
-
-static void
-arch_sigreturn(struct tcb *tcp)
-{
- if (current_personality == 1) {
- i386_arch_sigreturn(tcp);
- return;
- }
-
- typedef struct {
- uint32_t flags, link, stack[3], pad;
- struct sigcontext mcontext;
- } ucontext_x32_header;
-
-#define X86_64_SIGMASK_OFFSET offsetof(struct ucontext, uc_sigmask)
-#define X32_SIGMASK_OFFSET sizeof(ucontext_x32_header)
-
- const kernel_ulong_t offset =
-#ifdef X32
- X32_SIGMASK_OFFSET;
-#else
- current_personality == 2 ? X32_SIGMASK_OFFSET :
- X86_64_SIGMASK_OFFSET;
-#endif
- const kernel_ulong_t addr = (kernel_ulong_t) *x86_64_rsp_ptr + offset;
- tprints("{mask=");
- print_sigset_addr(tcp, addr);
- tprints("}");
-}