diff options
author | Frans Kaashoek <[email protected]> | 2017-08-07 14:35:05 -0400 |
---|---|---|
committer | Frans Kaashoek <[email protected]> | 2017-08-07 14:35:05 -0400 |
commit | 61cb32aa9bc457a6b39c5055cbf7fdd718dab7c2 (patch) | |
tree | 74f1a818d7722264d8a0fe825760d01ea7a83a9a /exec.c | |
parent | 5cbccef811ce0347370723c0b931e108c306279e (diff) | |
parent | c9fa90f7e514f27fa1ac071cd9795f3830ab6a1b (diff) | |
download | xv6-labs-61cb32aa9bc457a6b39c5055cbf7fdd718dab7c2.tar.gz xv6-labs-61cb32aa9bc457a6b39c5055cbf7fdd718dab7c2.tar.bz2 xv6-labs-61cb32aa9bc457a6b39c5055cbf7fdd718dab7c2.zip |
Merge branch 'nogs'
Diffstat (limited to 'exec.c')
-rw-r--r-- | exec.c | 16 |
1 files changed, 9 insertions, 7 deletions
@@ -17,11 +17,13 @@ exec(char *path, char **argv) struct inode *ip; struct proghdr ph; pde_t *pgdir, *oldpgdir; + struct proc *curproc = myproc(); begin_op(); if((ip = namei(path)) == 0){ end_op(); + cprintf("exec: fail\n"); return -1; } ilock(ip); @@ -89,15 +91,15 @@ exec(char *path, char **argv) for(last=s=path; *s; s++) if(*s == '/') last = s+1; - safestrcpy(proc->name, last, sizeof(proc->name)); + safestrcpy(curproc->name, last, sizeof(curproc->name)); // Commit to the user image. - oldpgdir = proc->pgdir; - proc->pgdir = pgdir; - proc->sz = sz; - proc->tf->eip = elf.entry; // main - proc->tf->esp = sp; - switchuvm(proc); + oldpgdir = curproc->pgdir; + curproc->pgdir = pgdir; + curproc->sz = sz; + curproc->tf->eip = elf.entry; // main + curproc->tf->esp = sp; + switchuvm(curproc); freevm(oldpgdir); return 0; |