Remove vobjcnt field of Proc

This commit is contained in:
2025-10-14 20:07:42 +02:00
parent 406434fed0
commit 01b37e41c2
3 changed files with 8 additions and 11 deletions

View File

@ -180,7 +180,7 @@ void proc_reaper(void) {
Proc *zombie = head; Proc *zombie = head;
LL_REMOVE(PROCS.procs, zombie); 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) { if (zombie->vobjs[i] != NULL) {
vfs_close(zombie->vobjs[i]); vfs_close(zombie->vobjs[i]);
zombie->vobjs[i] = NULL; zombie->vobjs[i] = NULL;

View File

@ -55,7 +55,6 @@ typedef struct Proc {
VasRange *vas; VasRange *vas;
VfsObj *vobjs[PROC_VFSHANDLES_MAX]; VfsObj *vobjs[PROC_VFSHANDLES_MAX];
uint64_t vobjcnt;
IpcPipe *pipes[PROC_PIPEHANDLES_MAX]; IpcPipe *pipes[PROC_PIPEHANDLES_MAX];
SpinLock pipes_spinlock; SpinLock pipes_spinlock;

View File

@ -38,17 +38,15 @@ int32_t SYSCALL2(sys_fs_openf, opath1, oflags1) {
Proc *proc = PROCS.current; Proc *proc = PROCS.current;
spinlock_release(&PROCS.spinlock); spinlock_release(&PROCS.spinlock);
if (proc->vobjcnt < PROC_VFSHANDLES_MAX) {
for (size_t i = 0; i < PROC_VFSHANDLES_MAX; i++) { for (size_t i = 0; i < PROC_VFSHANDLES_MAX; i++) {
if (proc->vobjs[i] == NULL) { if (proc->vobjs[i] == NULL) {
proc->vobjs[i] = vobj; proc->vobjs[i] = vobj;
ret = i; ret = i;
break; goto done;
} }
} }
} else {
ret = E_NOMEMORY; ret = E_NOMEMORY;
}
done: done:
return ret; return ret;