diff options
author | Frans Kaashoek <[email protected]> | 2012-08-22 20:20:17 -0400 |
---|---|---|
committer | Frans Kaashoek <[email protected]> | 2012-08-22 20:20:17 -0400 |
commit | 432acbaf9e8817e16026bfcaaa8bca0ba7c8a6f8 (patch) | |
tree | 0b107cc92179b5b936d36174ff5af87e8fd3eec8 /syscall.c | |
parent | 4ce832ddd280a4cea36e16115ddeaea74213314e (diff) | |
parent | 9d59eb015141697da616a4b98ac27cf4269cd780 (diff) | |
download | xv6-labs-432acbaf9e8817e16026bfcaaa8bca0ba7c8a6f8.tar.gz xv6-labs-432acbaf9e8817e16026bfcaaa8bca0ba7c8a6f8.tar.bz2 xv6-labs-432acbaf9e8817e16026bfcaaa8bca0ba7c8a6f8.zip |
Merge branch 'master' of git+ssh://amsterdam.csail.mit.edu/home/am0/6.828/xv6
Diffstat (limited to 'syscall.c')
-rw-r--r-- | syscall.c | 18 |
1 files changed, 9 insertions, 9 deletions
@@ -13,28 +13,28 @@ // library system call function. The saved user %esp points // to a saved program counter, and then the first argument. -// Fetch the int at addr from process p. +// Fetch the int at addr from the current process. int -fetchint(struct proc *p, uint addr, int *ip) +fetchint(uint addr, int *ip) { - if(addr >= p->sz || addr+4 > p->sz) + if(addr >= proc->sz || addr+4 > proc->sz) return -1; *ip = *(int*)(addr); return 0; } -// Fetch the nul-terminated string at addr from process p. +// Fetch the nul-terminated string at addr from the current process. // Doesn't actually copy the string - just sets *pp to point at it. // Returns length of string, not including nul. int -fetchstr(struct proc *p, uint addr, char **pp) +fetchstr(uint addr, char **pp) { char *s, *ep; - if(addr >= p->sz) + if(addr >= proc->sz) return -1; *pp = (char*)addr; - ep = (char*)p->sz; + ep = (char*)proc->sz; for(s = *pp; s < ep; s++) if(*s == 0) return s - *pp; @@ -45,7 +45,7 @@ fetchstr(struct proc *p, uint addr, char **pp) int argint(int n, int *ip) { - return fetchint(proc, proc->tf->esp + 4 + 4*n, ip); + return fetchint(proc->tf->esp + 4 + 4*n, ip); } // Fetch the nth word-sized system call argument as a pointer @@ -74,7 +74,7 @@ argstr(int n, char **pp) int addr; if(argint(n, &addr) < 0) return -1; - return fetchstr(proc, addr, pp); + return fetchstr(addr, pp); } extern int sys_chdir(void); |