summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/i386
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2005-12-22 05:18:34 +0000
committerRoland McGrath <roland@gnu.org>2005-12-22 05:18:34 +0000
commit0c7c6d531f8514aaee236ab1388ed88c1c31a630 (patch)
treea049c3500bba177e7567307645d3eb0442fc4bd7 /sysdeps/unix/sysv/linux/i386
parentc72565e5f1124c2dc72573e83406fe999e56091f (diff)
* sysdeps/unix/sysv/linux/i386/ucontext_i.h: File removed.
* sysdeps/unix/sysv/linux/i386/ucontext_i.sym: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h: File removed. * sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym: New file. * sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.h: File removed. * sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.sym: New file. * sysdeps/unix/sysv/linux/s390/s390-32/ucontext_i.h: File removed. * sysdeps/unix/sysv/linux/s390/s390-64/ucontext_i.h: File removed. * sysdeps/unix/sysv/linux/s390/ucontext_i.sym: New file. * sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.h: File removed. * sysdeps/unix/sysv/linux/sh/sh3/ucontext_i.sym: New file. * sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.h: File removed. * sysdeps/unix/sysv/linux/sh/sh4/ucontext_i.sym: New file. * sysdeps/unix/sysv/linux/x86_64/ucontext_i.h: File removed. * sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym: New file. * sysdeps/unix/sysv/linux/i386/Makefile [$(subdir) = stdlib]: (gen-as-const-headers): Add it. * sysdeps/unix/sysv/linux/powerpc/Makefile: Likewise. * sysdeps/unix/sysv/linux/sh/Makefile: Likewise. * sysdeps/unix/sysv/linux/s390/Makefile: Likewise. * sysdeps/unix/sysv/linux/x86_64/Makefile: Likewise. * stdlib/tst-ucontext-off.c: File removed. * stdlib/Makefile (tests): Remove it. * scripts/gen-as-const.awk: Support generating a test program. * Makerules [gen-as-const-headers] (tests): Add test-as-const. [gen-as-const-headers] ($(objpfx)test-as-const.c): New target.
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386')
-rw-r--r--sysdeps/unix/sysv/linux/i386/Makefile4
-rw-r--r--sysdeps/unix/sysv/linux/i386/ucontext_i.h61
-rw-r--r--sysdeps/unix/sysv/linux/i386/ucontext_i.sym30
3 files changed, 34 insertions, 61 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/Makefile b/sysdeps/unix/sysv/linux/i386/Makefile
index 1ae69407ff..7db3e3eeac 100644
--- a/sysdeps/unix/sysv/linux/i386/Makefile
+++ b/sysdeps/unix/sysv/linux/i386/Makefile
@@ -12,3 +12,7 @@ endif
ifeq ($(subdir),resource)
sysdep_routines += oldgetrlimit64
endif
+
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
diff --git a/sysdeps/unix/sysv/linux/i386/ucontext_i.h b/sysdeps/unix/sysv/linux/i386/ucontext_i.h
deleted file mode 100644
index c6319f2391..0000000000
--- a/sysdeps/unix/sysv/linux/i386/ucontext_i.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Offsets and other constants needed in the *context() function
- implementation.
- Copyright (C) 2001, 2005 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, write to the Free
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-#define SIG_BLOCK 0
-#define SIG_SETMASK 2
-
-/* Offsets of the fields in the ucontext_t structure. */
-#define oLINK 4
-#define oSS_SP 8
-#define oSS_SIZE 16
-#define oGS 20
-#define oFS 24
-#define oEDI 36
-#define oESI 40
-#define oEBP 44
-#define oESP 48
-#define oEBX 52
-#define oEDX 56
-#define oECX 60
-#define oEAX 64
-#define oEIP 76
-#define oFPREGS 96
-#define oSIGMASK 108
-#define oFPREGSMEM 236
-
-/* Tests run in stdlib/tst-ucontext-off. */
-#define TESTS \
- TEST (uc_link, oLINK); \
- TEST (uc_stack.ss_sp, oSS_SP); \
- TEST (uc_stack.ss_size, oSS_SIZE); \
- TEST (uc_mcontext.gregs[REG_GS], oGS); \
- TEST (uc_mcontext.gregs[REG_FS], oFS); \
- TEST (uc_mcontext.gregs[REG_EDI], oEDI); \
- TEST (uc_mcontext.gregs[REG_ESI], oESI); \
- TEST (uc_mcontext.gregs[REG_EBP], oEBP); \
- TEST (uc_mcontext.gregs[REG_ESP], oESP); \
- TEST (uc_mcontext.gregs[REG_EBX], oEBX); \
- TEST (uc_mcontext.gregs[REG_EDX], oEDX); \
- TEST (uc_mcontext.gregs[REG_ECX], oECX); \
- TEST (uc_mcontext.gregs[REG_EAX], oEAX); \
- TEST (uc_mcontext.gregs[REG_EIP], oEIP); \
- TEST (uc_mcontext.fpregs, oFPREGS); \
- TEST (uc_sigmask, oSIGMASK); \
- TEST (__fpregs_mem, oFPREGSMEM);
diff --git a/sysdeps/unix/sysv/linux/i386/ucontext_i.sym b/sysdeps/unix/sysv/linux/i386/ucontext_i.sym
new file mode 100644
index 0000000000..b11a5509cd
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/i386/ucontext_i.sym
@@ -0,0 +1,30 @@
+#include <stddef.h>
+#include <signal.h>
+#include <sys/ucontext.h>
+
+--
+
+SIG_BLOCK
+SIG_SETMASK
+
+#define ucontext(member) offsetof (ucontext_t, member)
+#define mcontext(member) ucontext (uc_mcontext.member)
+#define mreg(reg) mcontext (gregs[REG_##reg])
+
+oLINK ucontext (uc_link)
+oSS_SP ucontext (uc_stack.ss_sp)
+oSS_SIZE ucontext (uc_stack.ss_size)
+oGS mreg (GS)
+oFS mreg (FS)
+oEDI mreg (EDI)
+oESI mreg (ESI)
+oEBP mreg (EBP)
+oESP mreg (ESP)
+oEBX mreg (EBX)
+oEDX mreg (EDX)
+oECX mreg (ECX)
+oEAX mreg (EAX)
+oEIP mreg (EIP)
+oFPREGS mcontext (fpregs)
+oSIGMASK ucontext (uc_sigmask)
+oFPREGSMEM ucontext (__fpregs_mem)