aboutsummaryrefslogtreecommitdiff
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)