diff options
Diffstat (limited to 'src/linux/s390/arch_sigreturn.c')
-rw-r--r-- | src/linux/s390/arch_sigreturn.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/linux/s390/arch_sigreturn.c b/src/linux/s390/arch_sigreturn.c new file mode 100644 index 000000000..0c9aa4fd5 --- /dev/null +++ b/src/linux/s390/arch_sigreturn.c @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2015-2019 The strace developers. + * All rights reserved. + * + * SPDX-License-Identifier: LGPL-2.1-or-later + */ + +#ifndef SIGNAL_FRAMESIZE +# define SIGNAL_FRAMESIZE 96 +#endif +#ifndef PTR_TYPE +# define PTR_TYPE unsigned long +#endif + +static void +arch_sigreturn(struct tcb *tcp) +{ + kernel_ulong_t addr; + + if (!get_stack_pointer(tcp, &addr)) + return; + addr += SIGNAL_FRAMESIZE; + + PTR_TYPE mask[NSIG_BYTES / sizeof(PTR_TYPE)]; + if (!umove_or_printaddr(tcp, addr, &mask)) { + tprintsigmask_addr(mask); + } +} |