1 /*
2 * Copyright (c) 2015-2021 Dmitry V. Levin <ldv@strace.io>
3 * Copyright (c) 2021-2023 The strace developers.
4 * All rights reserved.
5 *
6 * SPDX-License-Identifier: LGPL-2.1-or-later
7 */
8
9 #include "defs.h"
10 #include "ptrace.h"
11 #include "nsig.h"
12 #include "regs.h"
13
14 #if defined HAVE_ASM_SIGCONTEXT_H && !defined HAVE_STRUCT_SIGCONTEXT
15 # include <asm/sigcontext.h>
16 #endif
17
18 /* The following function might be unused, hence the inline qualifier. */
19 static inline void
20 print_sigmask_addr_size(const void *const addr, const unsigned int size)
21 {
22 tprint_struct_begin();
23 tprints_field_name("mask");
24 tprints_string(sprintsigmask_n("", addr, size));
25 tprint_struct_end();
26 }
27
28 #define tprintsigmask_addr(mask_) \
29 print_sigmask_addr_size((mask_), sizeof(mask_))
30
31 #include "arch_sigreturn.c"
32
33 SYS_FUNC(sigreturn)
34 {
35 arch_sigreturn(tcp);
36
37 return RVAL_DECODED;
38 }