summaryrefslogtreecommitdiff
path: root/src/linux/sparc64/arch_rt_sigframe.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/linux/sparc64/arch_rt_sigframe.c')
-rw-r--r--src/linux/sparc64/arch_rt_sigframe.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/linux/sparc64/arch_rt_sigframe.c b/src/linux/sparc64/arch_rt_sigframe.c
new file mode 100644
index 000000000..ef9dc2659
--- /dev/null
+++ b/src/linux/sparc64/arch_rt_sigframe.c
@@ -0,0 +1,17 @@
+/*
+ * Copyright (c) 2017-2018 Dmitry V. Levin <ldv@strace.io>
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier: LGPL-2.1-or-later
+ */
+
+#define STACK_BIAS 2047
+
+FUNC_GET_RT_SIGFRAME_ADDR
+{
+ kernel_ulong_t sp;
+ if (!get_stack_pointer(tcp, &sp))
+ return 0;
+ return tcp->currpers == 1 ? sp & 0xffffffffUL
+ : sp + STACK_BIAS;
+}