summaryrefslogtreecommitdiff
path: root/exec.c
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2019-05-31 09:45:59 -0400
committerRobert Morris <[email protected]>2019-05-31 09:45:59 -0400
commit2ec1959fd1016a18ef3b2d154ce7076be8f237e4 (patch)
tree1aa75252085964283b3a2c735771f4da02346517 /exec.c
parent0f90388c893d1924e89e2e4d2187eda0004e9d73 (diff)
downloadxv6-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.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/exec.c b/exec.c
index 743437a..6d0ef24 100644
--- a/exec.c
+++ b/exec.c
@@ -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;