about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/x86_64
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/x86_64
parentc72565e5f1124c2dc72573e83406fe999e56091f (diff)
downloadglibc-0c7c6d531f8514aaee236ab1388ed88c1c31a630.tar.gz
glibc-0c7c6d531f8514aaee236ab1388ed88c1c31a630.tar.xz
glibc-0c7c6d531f8514aaee236ab1388ed88c1c31a630.zip
* 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/x86_64')
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/Makefile4
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/ucontext_i.h69
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym34
3 files changed, 38 insertions, 69 deletions
diff --git a/sysdeps/unix/sysv/linux/x86_64/Makefile b/sysdeps/unix/sysv/linux/x86_64/Makefile
index 627275db09..0f20367236 100644
--- a/sysdeps/unix/sysv/linux/x86_64/Makefile
+++ b/sysdeps/unix/sysv/linux/x86_64/Makefile
@@ -9,3 +9,7 @@ endif
 ifeq ($(subdir),stdlib)
 sysdep_routines += __start_context
 endif
+
+ifeq ($(subdir),stdlib)
+gen-as-const-headers += ucontext_i.sym
+endif
diff --git a/sysdeps/unix/sysv/linux/x86_64/ucontext_i.h b/sysdeps/unix/sysv/linux/x86_64/ucontext_i.h
deleted file mode 100644
index e5099084cf..0000000000
--- a/sysdeps/unix/sysv/linux/x86_64/ucontext_i.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Offsets and other constants needed in the *context() function
-   implementation for Linux/x86-64.
-   Copyright (C) 2002, 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
-
-/* Since we cannot include a header to define _NSIG/8, we define it
-   here.  */
-#define _NSIG8		8
-
-/* Offsets of the fields in the ucontext_t structure.  */
-#define oRBP		120
-#define oRSP		160
-#define oRBX		128
-#define oR8		40
-#define oR9		48
-#define oR12		72
-#define oR13		80
-#define oR14		88
-#define oR15		96
-#define oRDI		104
-#define oRSI		112
-#define oRDX		136
-#define oRAX		144
-#define oRCX		152
-#define oRIP		168
-#define oFPREGS		224
-#define oSIGMASK	296
-#define oFPREGSMEM	424
-#define oMXCSR		448
-
-/* Tests run in stdlib/tst-ucontext-off.  */
-#define TESTS \
-  TEST (uc_mcontext.gregs[REG_RBP], oRBP);				\
-  TEST (uc_mcontext.gregs[REG_RSP], oRSP);				\
-  TEST (uc_mcontext.gregs[REG_RBX], oRBX);				\
-  TEST (uc_mcontext.gregs[REG_R8], oR8);				\
-  TEST (uc_mcontext.gregs[REG_R9], oR9);				\
-  TEST (uc_mcontext.gregs[REG_R12], oR12);				\
-  TEST (uc_mcontext.gregs[REG_R13], oR13);				\
-  TEST (uc_mcontext.gregs[REG_R14], oR14);				\
-  TEST (uc_mcontext.gregs[REG_R15], oR15);				\
-  TEST (uc_mcontext.gregs[REG_RDI], oRDI);				\
-  TEST (uc_mcontext.gregs[REG_RSI], oRSI);				\
-  TEST (uc_mcontext.gregs[REG_RDX], oRDX);				\
-  TEST (uc_mcontext.gregs[REG_RAX], oRAX);				\
-  TEST (uc_mcontext.gregs[REG_RCX], oRCX);				\
-  TEST (uc_mcontext.gregs[REG_RIP], oRIP);				\
-  TEST (uc_mcontext.fpregs, oFPREGS);					\
-  TEST (uc_sigmask, oSIGMASK);						\
-  TEST (__fpregs_mem, oFPREGSMEM);					\
-  TEST (__fpregs_mem.mxcsr, oMXCSR);
diff --git a/sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym b/sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym
new file mode 100644
index 0000000000..b3cfe9aa4c
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/x86_64/ucontext_i.sym
@@ -0,0 +1,34 @@
+#include <stddef.h>
+#include <signal.h>
+#include <sys/ucontext.h>
+
+--
+
+SIG_BLOCK
+SIG_SETMASK
+
+_NSIG8		(_NSIG / 8)
+
+#define ucontext(member)	offsetof (ucontext_t, member)
+#define mcontext(member)	ucontext (uc_mcontext.member)
+#define mreg(reg)		mcontext (gregs[REG_##reg])
+
+oRBP		mreg (RBP)
+oRSP		mreg (RSP)
+oRBX		mreg (RBX)
+oR8		mreg (R8)
+oR9		mreg (R9)
+oR12		mreg (R12)
+oR13		mreg (R13)
+oR14		mreg (R14)
+oR15		mreg (R15)
+oRDI		mreg (RDI)
+oRSI		mreg (RSI)
+oRDX		mreg (RDX)
+oRAX		mreg (RAX)
+oRCX		mreg (RCX)
+oRIP		mreg (RIP)
+oFPREGS		mcontext (fpregs)
+oSIGMASK	ucontext (uc_sigmask)
+oFPREGSMEM	ucontext (__fpregs_mem)
+oMXCSR		ucontext (__fpregs_mem.mxcsr)