Start of an experiment to remove the use of gs for cpu local variables.
This commit is contained in:
parent
59cdd6c63b
commit
abf847a083
17 changed files with 145 additions and 123 deletions
14
sysfile.c
14
sysfile.c
|
|
@ -26,7 +26,7 @@ argfd(int n, int *pfd, struct file **pf)
|
|||
|
||||
if(argint(n, &fd) < 0)
|
||||
return -1;
|
||||
if(fd < 0 || fd >= NOFILE || (f=proc->ofile[fd]) == 0)
|
||||
if(fd < 0 || fd >= NOFILE || (f=myproc()->ofile[fd]) == 0)
|
||||
return -1;
|
||||
if(pfd)
|
||||
*pfd = fd;
|
||||
|
|
@ -43,8 +43,8 @@ fdalloc(struct file *f)
|
|||
int fd;
|
||||
|
||||
for(fd = 0; fd < NOFILE; fd++){
|
||||
if(proc->ofile[fd] == 0){
|
||||
proc->ofile[fd] = f;
|
||||
if(myproc()->ofile[fd] == 0){
|
||||
myproc()->ofile[fd] = f;
|
||||
return fd;
|
||||
}
|
||||
}
|
||||
|
|
@ -97,7 +97,7 @@ sys_close(void)
|
|||
|
||||
if(argfd(0, &fd, &f) < 0)
|
||||
return -1;
|
||||
proc->ofile[fd] = 0;
|
||||
myproc()->ofile[fd] = 0;
|
||||
fileclose(f);
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -386,9 +386,9 @@ sys_chdir(void)
|
|||
return -1;
|
||||
}
|
||||
iunlock(ip);
|
||||
iput(proc->cwd);
|
||||
iput(myproc()->cwd);
|
||||
end_op();
|
||||
proc->cwd = ip;
|
||||
myproc()->cwd = ip;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -432,7 +432,7 @@ sys_pipe(void)
|
|||
fd0 = -1;
|
||||
if((fd0 = fdalloc(rf)) < 0 || (fd1 = fdalloc(wf)) < 0){
|
||||
if(fd0 >= 0)
|
||||
proc->ofile[fd0] = 0;
|
||||
myproc()->ofile[fd0] = 0;
|
||||
fileclose(rf);
|
||||
fileclose(wf);
|
||||
return -1;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue