strace/linux/powerpc/arch_sigreturn.c
Dmitry V. Levin 92e347b556 Add copyright headers to some files that lack them
We do our best to keep copyright headers up to date, yet
git history provides better information on this subject
and is more accurate than copyright headers.
2018-12-24 23:46:43 +00:00

43 lines
814 B
C

/*
* Copyright (c) 2015-2018 The strace developers.
* All rights reserved.
*
* SPDX-License-Identifier: LGPL-2.1-or-later
*/
static void
arch_sigreturn(struct tcb *tcp)
{
kernel_ulong_t addr;
if (!get_stack_pointer(tcp, &addr))
return;
/* Skip dummy stack frame. */
addr += 64;
#ifdef POWERPC64
/* The only sigreturn on ppc64 is compat_sys_sigreturn. */
typedef struct {
unsigned int _unused[4];
int signal;
unsigned int handler;
unsigned int oldmask;
/* all the rest is irrelevant */
} sigreturn_context;
#else
typedef struct sigcontext sigreturn_context;
#endif
sigreturn_context sc;
if (!umove_or_printaddr(tcp, addr, &sc)) {
const unsigned int mask[NSIG_BYTES / sizeof(int)] = {
sc.oldmask,
sc._unused[3]
};
tprintsigmask_addr("{mask=", mask);
tprints("}");
}
}