This is the mail archive of the libc-hacker@sourceware.org mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] PPC ucontext checking 2nd try


The attached patch only covers the offsets used in the current
implementations.

2005-10-18  Steven Munroe  <sjmunroe@us.ibm.com>

	* sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h (TESTS):
	Define.
	* sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.h (TESTS):
	Define.

diff -urN libc24-cvstip-20051017/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h libc24/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h
--- libc24-cvstip-20051017/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h	2004-01-15 22:49:35.000000000 -0600
+++ libc24/sysdeps/unix/sysv/linux/powerpc/powerpc32/ucontext_i.h	2005-10-19 10:37:32.616038112 -0500
@@ -41,3 +41,22 @@
 #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 -urN libc24-cvstip-20051017/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.h libc24/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.h
--- libc24-cvstip-20051017/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.h	2004-01-15 22:49:59.000000000 -0600
+++ libc24/sysdeps/unix/sysv/linux/powerpc/powerpc64/ucontext_i.h	2005-10-19 09:34:24.034971536 -0500
@@ -58,3 +58,18 @@
 #define SIGCONTEXT_FP_REGS 616
 #define SIGCONTEXT_V_REGS_PTR 880
 #define SIGCONTEXT_V_RESERVE 888
+
+/* Tests run in stdlib/tst-ucontext-off.  */
+#define TESTS \
+  TEST (uc_link, UCONTEXT_LINK);				\
+  TEST (uc_stack.ss_sp, UCONTEXT_STACK_SP);			\
+  TEST (uc_stack.ss_size, UCONTEXT_STACK_SIZE);			\
+  TEST (uc_sigmask, UCONTEXT_SIGMASK);				\
+  TEST (uc_mcontext.signal, SIGCONTEXT_SIGNAL);			\
+  TEST (uc_mcontext.handler, SIGCONTEXT_HANDLER);		\
+  TEST (uc_mcontext.oldmask, SIGCONTEXT_OLDMASK);		\
+  TEST (uc_mcontext.regs, SIGCONTEXT_PT_REGS);			\
+  TEST (uc_mcontext.gp_regs, SIGCONTEXT_GP_REGS);		\
+  TEST (uc_mcontext.fp_regs, SIGCONTEXT_FP_REGS);		\
+  TEST (uc_mcontext.v_regs, SIGCONTEXT_V_REGS_PTR);		\
+  TEST (uc_mcontext.vmx_reserve, SIGCONTEXT_V_RESERVE);

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]