Module Name: src
Committed By: matt
Date: Tue Jan 18 01:13:04 UTC 2011
Modified Files:
src/sys/compat/linux/arch/powerpc: linux_machdep.c
Log Message:
Deal with changes in the trapframe.
To generate a diff of this commit:
cvs rdiff -u -r1.43 -r1.44 src/sys/compat/linux/arch/powerpc/linux_machdep.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/compat/linux/arch/powerpc/linux_machdep.c
diff -u src/sys/compat/linux/arch/powerpc/linux_machdep.c:1.43 src/sys/compat/linux/arch/powerpc/linux_machdep.c:1.44
--- src/sys/compat/linux/arch/powerpc/linux_machdep.c:1.43 Fri Jan 14 02:06:33 2011
+++ src/sys/compat/linux/arch/powerpc/linux_machdep.c Tue Jan 18 01:13:03 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: linux_machdep.c,v 1.43 2011/01/14 02:06:33 rmind Exp $ */
+/* $NetBSD: linux_machdep.c,v 1.44 2011/01/18 01:13:03 matt Exp $ */
/*-
* Copyright (c) 1995, 2000, 2001 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.43 2011/01/14 02:06:33 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: linux_machdep.c,v 1.44 2011/01/18 01:13:03 matt Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -140,7 +140,7 @@
((char *)l->l_sigstk.ss_sp +
l->l_sigstk.ss_size);
} else {
- fp = tf->fixreg[1];
+ fp = tf->tf_fixreg[1];
}
#ifdef DEBUG_LINUX
printf("fp at start of linux_sendsig = %x\n", fp);
@@ -164,18 +164,18 @@
* Save register context.
*/
for (i = 0; i < 32; i++)
- linux_regs.lgpr[i] = tf->fixreg[i];
- linux_regs.lnip = tf->srr0;
- linux_regs.lmsr = tf->srr1 & PSL_USERSRR1;
- linux_regs.lorig_gpr3 = tf->fixreg[3]; /* XXX Is that right? */
- linux_regs.lctr = tf->ctr;
- linux_regs.llink = tf->lr;
- linux_regs.lxer = tf->xer;
- linux_regs.lccr = tf->cr;
+ linux_regs.lgpr[i] = tf->tf_fixreg[i];
+ linux_regs.lnip = tf->tf_srr0;
+ linux_regs.lmsr = tf->tf_srr1 & PSL_USERSRR1;
+ linux_regs.lorig_gpr3 = tf->tf_fixreg[3]; /* XXX Is that right? */
+ linux_regs.lctr = tf->tf_ctr;
+ linux_regs.llink = tf->tf_lr;
+ linux_regs.lxer = tf->tf_xer;
+ linux_regs.lccr = tf->tf_cr;
linux_regs.lmq = 0; /* Unused, 601 only */
- linux_regs.ltrap = tf->exc;
- linux_regs.ldar = tf->dar;
- linux_regs.ldsisr = tf->dsisr;
+ linux_regs.ltrap = tf->tf_exc;
+ linux_regs.ldar = tf->tf_dar;
+ linux_regs.ldsisr = tf->tf_dsisr;
linux_regs.lresult = 0;
memset(&frame, 0, sizeof(frame));
@@ -232,11 +232,11 @@
* Set the registers according to how the Linux process expects them.
* "Mind the gap" Linux expects a gap here.
*/
- tf->fixreg[1] = fp - LINUX__SIGNAL_FRAMESIZE;
- tf->lr = (int)catcher;
- tf->fixreg[3] = (int)native_to_linux_signo[sig];
- tf->fixreg[4] = fp;
- tf->srr0 = (int)p->p_sigctx.ps_sigcode;
+ tf->tf_fixreg[1] = fp - LINUX__SIGNAL_FRAMESIZE;
+ tf->tf_lr = (int)catcher;
+ tf->tf_fixreg[3] = (int)native_to_linux_signo[sig];
+ tf->tf_fixreg[4] = fp;
+ tf->tf_srr0 = (int)p->p_sigctx.ps_sigcode;
#ifdef DEBUG_LINUX
printf("fp at end of linux_sendsig = %x\n", fp);
@@ -308,13 +308,13 @@
return (EINVAL);
for (i = 0; i < 32; i++)
- tf->fixreg[i] = lregs->lgpr[i];
- tf->lr = lregs->llink;
- tf->cr = lregs->lccr;
- tf->xer = lregs->lxer;
- tf->ctr = lregs->lctr;
- tf->srr0 = lregs->lnip;
- tf->srr1 = lregs->lmsr;
+ tf->tf_fixreg[i] = lregs->lgpr[i];
+ tf->tf_lr = lregs->llink;
+ tf->tf_cr = lregs->lccr;
+ tf->tf_xer = lregs->lxer;
+ tf->tf_ctr = lregs->lctr;
+ tf->tf_srr0 = lregs->lnip;
+ tf->tf_srr1 = lregs->lmsr;
/*
* Make sure the fpu state is discarded
@@ -398,13 +398,13 @@
return (EINVAL);
for (i = 0; i < 32; i++)
- tf->fixreg[i] = lregs->lgpr[i];
- tf->lr = lregs->llink;
- tf->cr = lregs->lccr;
- tf->xer = lregs->lxer;
- tf->ctr = lregs->lctr;
- tf->srr0 = lregs->lnip;
- tf->srr1 = lregs->lmsr;
+ tf->tf_fixreg[i] = lregs->lgpr[i];
+ tf->tf_lr = lregs->llink;
+ tf->tf_cr = lregs->lccr;
+ tf->tf_xer = lregs->lxer;
+ tf->tf_ctr = lregs->lctr;
+ tf->tf_srr0 = lregs->lnip;
+ tf->tf_srr1 = lregs->lmsr;
/*
* Make sure the fpu state is discarded