summaryrefslogtreecommitdiff
path: root/sys/src/9/kw
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2013-05-30 23:26:21 +0200
committercinap_lenrek <cinap_lenrek@gmx.de>2013-05-30 23:26:21 +0200
commitd94ffb4808670993b2c434d612d432548c693832 (patch)
treeded3f05af0c1c46b5c8a7e5bfae405fe76b34ad2 /sys/src/9/kw
parent9652f5bec54d946775892249c83059c9ca0c6440 (diff)
kernel: do all fp state fork from procfork() (like pc kernel)
this simplifies the arm ports and keeps all the stuff in one place instead of spreading it thru notify(), trap() and syscall() functions and prevents useless fp state copying for kernel procs. also make sure to save fp in notify while still splhi().
Diffstat (limited to 'sys/src/9/kw')
-rw-r--r--sys/src/9/kw/fns.h2
-rw-r--r--sys/src/9/kw/softfpu.c21
-rw-r--r--sys/src/9/kw/syscall.c4
3 files changed, 0 insertions, 27 deletions
diff --git a/sys/src/9/kw/fns.h b/sys/src/9/kw/fns.h
index 8fdfb46b4..b2f4d0f99 100644
--- a/sys/src/9/kw/fns.h
+++ b/sys/src/9/kw/fns.h
@@ -99,8 +99,6 @@ extern void fpunotify(Ureg*);
extern void fpuprocrestore(Proc*);
extern void fpuprocsave(Proc*);
extern void fpusysprocsetup(Proc*);
-extern void fpusysrfork(Ureg*);
-extern void fpusysrforkchild(Proc*, Ureg *, Proc*);
extern int fpuemu(Ureg*);
/*
diff --git a/sys/src/9/kw/softfpu.c b/sys/src/9/kw/softfpu.c
index b412a6bf1..229c7e1a1 100644
--- a/sys/src/9/kw/softfpu.c
+++ b/sys/src/9/kw/softfpu.c
@@ -42,27 +42,6 @@ fpunoted(void)
}
void
-fpusysrfork(Ureg*)
-{
- /*
- * Called early in the non-interruptible path of
- * sysrfork() via the machine-dependent syscall() routine.
- * Save the state so that it can be easily copied
- * to the child process later.
- */
-}
-
-void
-fpusysrforkchild(Proc*, Ureg*, Proc*)
-{
- /*
- * Called later in sysrfork() via the machine-dependent
- * sysrforkchild() routine.
- * Copy the parent FPU state to the child.
- */
-}
-
-void
fpuprocsave(Proc*)
{
/*
diff --git a/sys/src/9/kw/syscall.c b/sys/src/9/kw/syscall.c
index 6aaba6db2..4853cfd83 100644
--- a/sys/src/9/kw/syscall.c
+++ b/sys/src/9/kw/syscall.c
@@ -201,8 +201,6 @@ syscall(Ureg* ureg)
scallnr = ureg->r0;
up->scallnr = scallnr;
- if(scallnr == RFORK)
- fpusysrfork(ureg);
spllo();
sp = ureg->sp;
@@ -332,6 +330,4 @@ forkchild(Proc *p, Ureg *ureg)
/* Things from bottom of syscall which were never executed */
p->psstate = 0;
p->insyscall = 0;
-
- fpusysrforkchild(p, cureg, up);
}