Remove vobjcnt field of Proc
This commit is contained in:
@ -180,7 +180,7 @@ void proc_reaper(void) {
|
||||
Proc *zombie = head;
|
||||
LL_REMOVE(PROCS.procs, zombie);
|
||||
|
||||
for (size_t i = 0; i < zombie->vobjcnt; i++) {
|
||||
for (size_t i = 0; i < PROC_VFSHANDLES_MAX; i++) {
|
||||
if (zombie->vobjs[i] != NULL) {
|
||||
vfs_close(zombie->vobjs[i]);
|
||||
zombie->vobjs[i] = NULL;
|
||||
|
||||
@ -55,7 +55,6 @@ typedef struct Proc {
|
||||
VasRange *vas;
|
||||
|
||||
VfsObj *vobjs[PROC_VFSHANDLES_MAX];
|
||||
uint64_t vobjcnt;
|
||||
|
||||
IpcPipe *pipes[PROC_PIPEHANDLES_MAX];
|
||||
SpinLock pipes_spinlock;
|
||||
|
||||
@ -38,17 +38,15 @@ int32_t SYSCALL2(sys_fs_openf, opath1, oflags1) {
|
||||
Proc *proc = PROCS.current;
|
||||
spinlock_release(&PROCS.spinlock);
|
||||
|
||||
if (proc->vobjcnt < PROC_VFSHANDLES_MAX) {
|
||||
for (size_t i = 0; i < PROC_VFSHANDLES_MAX; i++) {
|
||||
if (proc->vobjs[i] == NULL) {
|
||||
proc->vobjs[i] = vobj;
|
||||
ret = i;
|
||||
break;
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
ret = E_NOMEMORY;
|
||||
}
|
||||
|
||||
done:
|
||||
return ret;
|
||||
|
||||
Reference in New Issue
Block a user