aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/ia64
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2003-06-02 19:56:35 +0000
committerRoland McGrath <roland@gnu.org>2003-06-02 19:56:35 +0000
commit0f501b7f2a40ffaabb89dc35724aad11db2846c9 (patch)
tree52c424d7ea09f31bb74ef13ab58a21501fa7467c /sysdeps/unix/sysv/linux/ia64
parent4a5f21e4417e29f3f781294b345a7c60abcbec29 (diff)
downloadglibc-0f501b7f2a40ffaabb89dc35724aad11db2846c9.tar
glibc-0f501b7f2a40ffaabb89dc35724aad11db2846c9.tar.gz
glibc-0f501b7f2a40ffaabb89dc35724aad11db2846c9.tar.bz2
glibc-0f501b7f2a40ffaabb89dc35724aad11db2846c9.zip
Replace hard-coded offsets into struct sigcontext with generated file.
* sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym: New file. * sysdeps/unix/sysv/linux/ia64/Makefile [$(subdir) = stdlib] (gen-as-const-headers): Add it. * sysdeps/unix/sysv/linux/ia64/ucontext_i.h: Include it instead of defining SC_* macros here.
Diffstat (limited to 'sysdeps/unix/sysv/linux/ia64')
-rw-r--r--sysdeps/unix/sysv/linux/ia64/Makefile1
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym16
-rw-r--r--sysdeps/unix/sysv/linux/ia64/ucontext_i.h14
3 files changed, 18 insertions, 13 deletions
diff --git a/sysdeps/unix/sysv/linux/ia64/Makefile b/sysdeps/unix/sysv/linux/ia64/Makefile
index 4c1e6f2059..6ede14a8f4 100644
--- a/sysdeps/unix/sysv/linux/ia64/Makefile
+++ b/sysdeps/unix/sysv/linux/ia64/Makefile
@@ -4,6 +4,7 @@ endif
ifeq ($(subdir),stdlib)
sysdep_routines += __start_context
+gen-as-const-headers += sigcontext-offsets.sym
endif
ifeq ($(subdir),misc)
diff --git a/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym b/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym
new file mode 100644
index 0000000000..943e68a667
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/ia64/sigcontext-offsets.sym
@@ -0,0 +1,16 @@
+#include <stddef.h>
+#include <sys/ucontext.h>
+
+--
+SC_NAT offsetof (struct sigcontext, sc_nat)
+SC_BSP offsetof (struct sigcontext, sc_ar_bsp)
+SC_RNAT offsetof (struct sigcontext, sc_ar_rnat)
+SC_UNAT offsetof (struct sigcontext, sc_ar_unat)
+SC_FPSR offsetof (struct sigcontext, sc_ar_fpsr)
+SC_PFS offsetof (struct sigcontext, sc_ar_pfs)
+SC_LC offsetof (struct sigcontext, sc_ar_lc)
+SC_PR offsetof (struct sigcontext, sc_pr)
+SC_BR offsetof (struct sigcontext, sc_br)
+SC_GR offsetof (struct sigcontext, sc_gr)
+SC_FR offsetof (struct sigcontext, sc_fr)
+SC_MASK offsetof (struct sigcontext, sc_mask)
diff --git a/sysdeps/unix/sysv/linux/ia64/ucontext_i.h b/sysdeps/unix/sysv/linux/ia64/ucontext_i.h
index 2d544a7438..e2a4d3c2b8 100644
--- a/sysdeps/unix/sysv/linux/ia64/ucontext_i.h
+++ b/sysdeps/unix/sysv/linux/ia64/ucontext_i.h
@@ -24,19 +24,7 @@
#define SIG_UNBLOCK 1
#define SIG_SETMASK 2
-#define SC_NAT 0x008
-#define SC_BSP 0x048
-#define SC_RNAT 0x050
-#define SC_UNAT 0x060
-#define SC_FPSR 0x068
-#define SC_PFS 0x070
-#define SC_LC 0x078
-#define SC_PR 0x080
-#define SC_BR 0x088
-#define SC_GR 0x0c8
-#define SC_FR 0x1d0
-#define SC_MASK 0xa50
-
+#include <sigcontext-offsets.h>
#define rTMP r16
#define rPOS r16