cvs commit: src/sys/amd64/amd64 exception.S trap.c
src/sys/amd64/include frame.h signal.h ucontext.h
Daniel Eischen
eischen at vigrid.com
Tue Oct 14 22:19:49 PDT 2003
On Tue, 14 Oct 2003, Peter Wemm wrote:
> David Xu wrote:
>
> > > Modified files:
> > > sys/amd64/amd64 exception.S trap.c
> > > sys/amd64/include frame.h signal.h ucontext.h
> > > Log:
> > > Pull the tier-2 card one last time and break the get/setcontext and
> > > sigreturn() ABI and the signal context on the stack.
> ...
> > The change you made to ucontext.h breaks libkse. :-(
>
> Yep. And probably libc_r as well, but I'm not sure about that one yet. I'll
> take a shot at patching it up when I get home if nobody beats me to it. :-)
Here's a quick attempt at a fix for libpthread.
--
Dan Eischen
%%%%%
Index: context.S
===================================================================
RCS file: /opt/FreeBSD/cvs/src/lib/libpthread/arch/amd64/amd64/context.S,v
retrieving revision 1.3
diff -u -r1.3 context.S
--- context.S 16 Sep 2003 00:00:53 -0000 1.3
+++ context.S 15 Oct 2003 11:00:39 -0000
@@ -79,10 +79,10 @@
* Where do we define these?
*/
#define MC_SIZE 800 /* sizeof mcontext_t */
-#define MC_LEN_OFFSET (24*8) /* offset to mc_len from mcontext */
-#define MC_FPFMT_OFFSET (25*8) /* offset to mc_fpformat from mcontext */
-#define MC_FPFMT_NODEV 0x10000
-#define MC_OWNEDFP_OFFSET (26*8) /* offset to mc_ownedfp from mcontext */
+#define MC_LEN_OFFSET (25*8) /* offset to mc_len from mcontext */
+#define MC_FPFMT_OFFSET (26*8) /* offset to mc_fpformat from mcontext */
+#define MC_FPFMT_NODEV 0x10000
+#define MC_OWNEDFP_OFFSET (27*8) /* offset to mc_ownedfp from mcontext */
#define MC_OWNEDFP_NONE 0x20000
#define MC_OWNEDFP_FPU 0x20001
#define MC_OWNEDFP_PCB 0x20002
@@ -104,9 +104,10 @@
#define MC_R13 (13 * 8)
#define MC_R14 (14 * 8)
#define MC_R15 (15 * 8)
-#define MC_RIP (19 * 8)
-#define MC_RFLAGS (21 * 8)
-#define MC_RSP (22 * 8)
+#define MC_FLAGS (18 * 8)
+#define MC_RIP (20 * 8)
+#define MC_RFLAGS (22 * 8)
+#define MC_RSP (23 * 8)
/*
* _amd64_ctx_save(mcontext_t *mcp)
%%%%%
More information about the cvs-src
mailing list