about summary refs log tree commit diff
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.gz
glibc-0f501b7f2a40ffaabb89dc35724aad11db2846c9.tar.xz
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