aboutsummaryrefslogtreecommitdiff
path: root/pk
diff options
context:
space:
mode:
authorYunsup Lee <yunsup@cs.berkeley.edu>2010-09-07 00:28:58 -0700
committerYunsup Lee <yunsup@cs.berkeley.edu>2010-09-07 00:28:58 -0700
commitd196c68c350419e4c7d872c6a0c10934e8b3bdc7 (patch)
tree5c4b7bbfa905d2195d0eb91df6c1c3f0073c0844 /pk
parent2351867c654572283c3c85b84e8f57e0021f9295 (diff)
downloadpk-d196c68c350419e4c7d872c6a0c10934e8b3bdc7.zip
pk-d196c68c350419e4c7d872c6a0c10934e8b3bdc7.tar.gz
pk-d196c68c350419e4c7d872c6a0c10934e8b3bdc7.tar.bz2
[pk] new register mappings
Diffstat (limited to 'pk')
-rw-r--r--pk/syscall.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/pk/syscall.c b/pk/syscall.c
index f14c2e4..93ff12a 100644
--- a/pk/syscall.c
+++ b/pk/syscall.c
@@ -109,7 +109,7 @@ void handle_syscall(trapframe_t* tf)
};
syscall_t p;
- unsigned long n = tf->gpr[2];
+ unsigned long n = tf->gpr[1];
if(n >= sizeof(syscall_table)/sizeof(void*) || !syscall_table[n])
{
dump_tf(tf);
@@ -118,9 +118,9 @@ void handle_syscall(trapframe_t* tf)
else
p = (syscall_t)syscall_table[n];
- sysret_t ret = p(tf->gpr[4],tf->gpr[5],tf->gpr[6],tf->gpr[7],n);
- tf->gpr[2] = ret.result;
- tf->gpr[3] = ret.result == -1 ? ret.err : 0;
+ sysret_t ret = p(tf->gpr[3],tf->gpr[4],tf->gpr[5],tf->gpr[6],n);
+ tf->gpr[1] = ret.result;
+ tf->gpr[2] = ret.result == -1 ? ret.err : 0;
//printk("syscall %d (%x,%x,%x,%x) from %x == %d\n",n,tf->gpr[4],tf->gpr[5],tf->gpr[6],tf->gpr[7],tf->gpr[31],tf->gpr[2]);