diff options
author | Robert Morris <[email protected]> | 2019-05-31 09:45:59 -0400 |
---|---|---|
committer | Robert Morris <[email protected]> | 2019-05-31 09:45:59 -0400 |
commit | 2ec1959fd1016a18ef3b2d154ce7076be8f237e4 (patch) | |
tree | 1aa75252085964283b3a2c735771f4da02346517 /exec.c | |
parent | 0f90388c893d1924e89e2e4d2187eda0004e9d73 (diff) | |
download | xv6-labs-2ec1959fd1016a18ef3b2d154ce7076be8f237e4.tar.gz xv6-labs-2ec1959fd1016a18ef3b2d154ce7076be8f237e4.tar.bz2 xv6-labs-2ec1959fd1016a18ef3b2d154ce7076be8f237e4.zip |
fork/wait/exit work
Diffstat (limited to 'exec.c')
-rw-r--r-- | exec.c | 22 |
1 files changed, 11 insertions, 11 deletions
@@ -19,8 +19,8 @@ exec(char *path, char **argv) struct inode *ip; struct proghdr ph; pde_t *pgdir, *oldpgdir; - struct proc *curproc = myproc(); - uint64 oldsz = curproc->sz; + struct proc *p = myproc(); + uint64 oldsz = p->sz; begin_op(); @@ -85,8 +85,8 @@ exec(char *path, char **argv) ustack[1] = argc; ustack[2] = sp - (argc+1)*sizeof(uint64); // argv pointer - curproc->sf->rdi = argc; - curproc->sf->rsi = sp - (argc+1)*sizeof(uint64); + p->sf->rdi = argc; + p->sf->rsi = sp - (argc+1)*sizeof(uint64); sp -= (3+argc+1) * sizeof(uint64); if(copyout(pgdir, sp, ustack, (3+argc+1)*sizeof(uint64)) < 0) @@ -96,15 +96,15 @@ exec(char *path, char **argv) for(last=s=path; *s; s++) if(*s == '/') last = s+1; - safestrcpy(curproc->name, last, sizeof(curproc->name)); + safestrcpy(p->name, last, sizeof(p->name)); // Commit to the user image. - oldpgdir = curproc->pgdir; - curproc->pgdir = pgdir; - curproc->sz = sz; - curproc->sf->rcx = elf.entry; // main - curproc->sf->rsp = sp; - switchuvm(curproc); + oldpgdir = p->pgdir; + p->pgdir = pgdir; + p->sz = sz; + p->sf->rcx = elf.entry; // main + p->sf->rsp = sp; + switchuvm(p); freevm(oldpgdir, oldsz); return 0; |