aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/ia64
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/ia64')
-rw-r--r--sysdeps/unix/sysv/linux/ia64/profil-counter.h31
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sigcontextinfo.h14
2 files changed, 12 insertions, 33 deletions
diff --git a/sysdeps/unix/sysv/linux/ia64/profil-counter.h b/sysdeps/unix/sysv/linux/ia64/profil-counter.h
deleted file mode 100644
index cafe0903c8..0000000000
--- a/sysdeps/unix/sysv/linux/ia64/profil-counter.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Machine-dependent SIGPROF signal handler. IA-64 version.
- Copyright (C) 1996-2019 Free Software Foundation, Inc.
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; if not, see
- <http://www.gnu.org/licenses/>. */
-
-/* In many Unix systems signal handlers are called like this
- and the interrupted PC is easily findable in the `struct sigcontext'. */
-
-static void
-__profil_counter (int signr, siginfo_t *si, struct sigcontext *scp)
-{
- unsigned long ip = scp->sc_ip & ~0X3ULL, slot = scp->sc_ip & 0x3ull;
-
- /* Note: Linux/ia64 encodes the slot number in bits 0 and 1. We
- want to multiply the slot number by four so we can use bins of
- width 4 to get accurate instruction-level profiling. */
- profil_count ((void *) (ip + 4*slot));
-}
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