Move definition of sigcontext union to bits/armsigctx.h.
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / linux / arm / profil-counter.h
index 802cbd5..55a11bd 100644 (file)
@@ -1,5 +1,5 @@
 /* Low-level statistical profiling support function.  Linux/ARM version.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998 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
    Boston, MA 02111-1307, USA.  */
 
 #include <signal.h>
+#include <asm/ptrace.h>
+#include <bits/armsigctx.h>
 
 void
-profil_counter (int signo, struct sigcontext sc)
+profil_counter (int signo, int _a2, int _a3, int _a4, union k_sigcontext sc)
 {
-  profil_count ((void *) sc.eip);
+  void *pc;
+  if (sc.v20.magic == SIGCONTEXT_2_0_MAGIC)
+    pc = (void *) sc.v20.reg.ARM_pc;
+  else
+    pc = (void *) sc.v21.arm_pc;
+  profil_count (pc);
 }