summaryrefslogtreecommitdiffstats
path: root/sys/powerpc/powerpc
diff options
context:
space:
mode:
authorbenno <benno@FreeBSD.org>2002-05-28 12:24:29 +0000
committerbenno <benno@FreeBSD.org>2002-05-28 12:24:29 +0000
commit4fc9c21665166e4e9e124c40462138c91f084a0c (patch)
tree574710ab5af4f109af3bcd57f8ed6f7d48376309 /sys/powerpc/powerpc
parent1af92dbd990523626c74a0e064236c1dfaef3a16 (diff)
downloadFreeBSD-src-4fc9c21665166e4e9e124c40462138c91f084a0c.zip
FreeBSD-src-4fc9c21665166e4e9e124c40462138c91f084a0c.tar.gz
- Move macros that represent where syscall args are kept in a trapframe from
trap.c to frame.h - Use the macros in vm_machdep.c:cpu_fork() to set up the trap frame of the new thread.
Diffstat (limited to 'sys/powerpc/powerpc')
-rw-r--r--sys/powerpc/powerpc/trap.c5
-rw-r--r--sys/powerpc/powerpc/vm_machdep.c6
2 files changed, 5 insertions, 6 deletions
diff --git a/sys/powerpc/powerpc/trap.c b/sys/powerpc/powerpc/trap.c
index 0967358..b037185 100644
--- a/sys/powerpc/powerpc/trap.c
+++ b/sys/powerpc/powerpc/trap.c
@@ -75,11 +75,6 @@ static const char rcsid[] =
#include <machine/spr.h>
#include <machine/sr.h>
-/* These definitions should probably be somewhere else XXX */
-#define FIRSTARG 3 /* first argument is in reg 3 */
-#define NARGREG 8 /* 8 args are in registers */
-#define MOREARGS(sp) ((caddr_t)((int)(sp) + 8)) /* more args go here */
-
#ifndef MULTIPROCESSOR
extern int intr_depth;
#endif
diff --git a/sys/powerpc/powerpc/vm_machdep.c b/sys/powerpc/powerpc/vm_machdep.c
index 1ca7350..12aeaf2 100644
--- a/sys/powerpc/powerpc/vm_machdep.c
+++ b/sys/powerpc/powerpc/vm_machdep.c
@@ -85,6 +85,7 @@
#include <machine/clock.h>
#include <machine/cpu.h>
#include <machine/fpu.h>
+#include <machine/frame.h>
#include <machine/md_var.h>
#include <dev/ofw/openfirm.h>
@@ -151,7 +152,10 @@ cpu_fork(struct thread *td1, struct proc *p2, struct thread *td2, int flags)
tf = (struct trapframe *)pcb - 1;
bcopy(td1->td_frame, tf, sizeof(*tf));
- /* XXX: Set up trap frame? */
+ /* Set up trap frame. */
+ tf->fixreg[FIRSTARG] = 0;
+ tf->fixreg[FIRSTARG + 1] = 0;
+ tf->cr &= ~0x10000000;
td2->td_frame = tf;
OpenPOWER on IntegriCloud