summaryrefslogtreecommitdiff
path: root/kernel/exec.c
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2020-08-10 13:05:17 -0400
committerGitHub <[email protected]>2020-08-10 13:05:17 -0400
commitc31d35d8031c88b7e1ea8657cc9806dfdd4c3ef9 (patch)
treea6c903e1c61c08f4cb87700c320752a737081dcb /kernel/exec.c
parent90eb90b5e203299427c3fde8c996a48835fc93cf (diff)
parentd8fe1773b26758c7c7b8f36724cd822555b33612 (diff)
downloadxv6-labs-c31d35d8031c88b7e1ea8657cc9806dfdd4c3ef9.tar.gz
xv6-labs-c31d35d8031c88b7e1ea8657cc9806dfdd4c3ef9.tar.bz2
xv6-labs-c31d35d8031c88b7e1ea8657cc9806dfdd4c3ef9.zip
Merge branch 'riscv' into riscv
Diffstat (limited to 'kernel/exec.c')
-rw-r--r--kernel/exec.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/exec.c b/kernel/exec.c
index 74ef654..1077ac0 100644
--- a/kernel/exec.c
+++ b/kernel/exec.c
@@ -97,7 +97,7 @@ exec(char *path, char **argv)
// arguments to user main(argc, argv)
// argc is returned via the system call return
// value, which goes in a0.
- p->tf->a1 = sp;
+ p->trapframe->a1 = sp;
// Save program name for debugging.
for(last=s=path; *s; s++)
@@ -109,9 +109,10 @@ exec(char *path, char **argv)
oldpagetable = p->pagetable;
p->pagetable = pagetable;
p->sz = sz;
- p->tf->epc = elf.entry; // initial program counter = main
- p->tf->sp = sp; // initial stack pointer
+ p->trapframe->epc = elf.entry; // initial program counter = main
+ p->trapframe->sp = sp; // initial stack pointer
proc_freepagetable(oldpagetable, oldsz);
+
return argc; // this ends up in a0, the first argument to main(argc, argv)
bad: