diff options
author | Yunsup Lee <yunsup@cs.berkeley.edu> | 2010-09-07 00:28:58 -0700 |
---|---|---|
committer | Yunsup Lee <yunsup@cs.berkeley.edu> | 2010-09-07 00:28:58 -0700 |
commit | d196c68c350419e4c7d872c6a0c10934e8b3bdc7 (patch) | |
tree | 5c4b7bbfa905d2195d0eb91df6c1c3f0073c0844 | |
parent | 2351867c654572283c3c85b84e8f57e0021f9295 (diff) | |
download | pk-d196c68c350419e4c7d872c6a0c10934e8b3bdc7.zip pk-d196c68c350419e4c7d872c6a0c10934e8b3bdc7.tar.gz pk-d196c68c350419e4c7d872c6a0c10934e8b3bdc7.tar.bz2 |
[pk] new register mappings
-rw-r--r-- | pk/syscall.c | 8 |
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]); |