about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h')
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h b/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h
index 06711a5eee..7e56c239bb 100644
--- a/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h
+++ b/sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h
@@ -15,5 +15,15 @@
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
-#define SIGCONTEXT siginfo_t *_si, struct sigcontext *
-#define GET_PC(ctx)	((ctx)->sc_ip)
+#ifndef _SIGCONTEXTINFO_H
+#define _SIGCONTEXTINFO_H
+
+/* Unlike other architectures, ia64 passes 'struct sigcontext' pointer as
+   the third argument to a sa_sigaction handler with SA_SIGINFO enabled.  */
+static inline uintptr_t
+sigcontext_get_pc (const struct sigcontext *ctx)
+{
+  return ctx->sc_ip;
+}
+
+#endif