about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/powerpc/powerpc32
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/powerpc/powerpc32')
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h62
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym34
2 files changed, 34 insertions, 62 deletions
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h b/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h
deleted file mode 100644
index f65b0ed58c..0000000000
--- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Offsets and other constants needed in the *context() function
-   implementation.
-   Copyright (C) 2002 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
-
-#define _FRAME_BACKCHAIN	0
-#define _FRAME_LR_SAVE	4
-#define _FRAME_PARM_SAVE1	8
-#define _FRAME_PARM_SAVE2	12
-#define _FRAME_PARM_SAVE3	16
-#define _FRAME_PARM_SAVE4	20
-
-#define _UC_LINK	4
-#define _UC_STACK_SP	8
-#define _UC_STACK_SIZE	16
-#define _UC_REGS_PTR	48
-#define _UC_SIGMASK	52
-#define _UC_REG_SPACE	180
-
-/* offsets within mcontext_t */
-#define _UC_GREGS	0
-#define _UC_FREGS	192
-#define _UC_VREGS	464
-#define _UC_VSCR	976
-#define _UC_VRSAVE	980
-
-/* The registers don't have a fixed offset within ucontext because the
-   orginal ucontext only contained the regs pointer.  Also with the
-   addition of VMX to the register state the mcontext may require
-   stronger alignment (16) then the containing ucontext (4).  All access
-   to register state (pt_regs/mcontext) must be indirect via the regs
-   (uc_regs) pointer.  This means we can't test the PPC32 mcontext
-   register offsets here.  */
-
-/* Tests run in stdlib/tst-ucontext-off.  */
-#define TESTS \
-  TEST (uc_link, _UC_LINK);					\
-  TEST (uc_stack.ss_sp, _UC_STACK_SP);				\
-  TEST (uc_stack.ss_size, _UC_STACK_SIZE);			\
-  TEST (uc_mcontext.regs, _UC_REGS_PTR);			\
-  TEST (uc_mcontext.uc_regs, _UC_REGS_PTR);			\
-  TEST (uc_sigmask, _UC_SIGMASK);				\
-  TEST (uc_reg_space, _UC_REG_SPACE);
-
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym b/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym
new file mode 100644
index 0000000000..662c693303
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.sym
@@ -0,0 +1,34 @@
+#include <stddef.h>
+#include <signal.h>
+#include <sys/ucontext.h>
+
+--
+
+SIG_BLOCK
+SIG_SETMASK
+
+-- XXX Do these correspond to some struct?
+_FRAME_BACKCHAIN	0
+_FRAME_LR_SAVE		4
+_FRAME_PARM_SAVE1	8
+_FRAME_PARM_SAVE2	12
+_FRAME_PARM_SAVE3	16
+_FRAME_PARM_SAVE4	20
+
+-- Offsets in ucontext_t.
+#define ucontext(member)	offsetof (ucontext_t, member)
+_UC_LINK		ucontext (uc_link)
+_UC_STACK_SP		ucontext (uc_stack.ss_sp)
+_UC_STACK_SIZE		ucontext (uc_stack.ss_size)
+_UC_REGS_PTR		ucontext (uc_mcontext.uc_regs)
+_UC_SIGMASK		ucontext (uc_sigmask)
+_UC_REG_SPACE		ucontext (uc_reg_space)
+
+-- Offsets in mcontext_t.
+#define mcontext(member)	offsetof (mcontext_t, member)
+_UC_GREGS		mcontext (gregs)
+_UC_FREGS		mcontext (fpregs)
+_UC_VREGS		mcontext (vrregs)
+_UC_VREGS		mcontext (vrregs)
+_UC_VSCR		mcontext (vrregs.vscr)
+_UC_VRSAVE		mcontext (vrregs.vrsave)