From 06d50155ac0bd079bfca0f5728346d8beeb205f2 Mon Sep 17 00:00:00 2001 From: sotech117 Date: Tue, 14 May 2024 03:19:46 +0000 Subject: weenix fixes --- kernel/proc/proc.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'kernel/proc/proc.c') diff --git a/kernel/proc/proc.c b/kernel/proc/proc.c index f13064a..2ade163 100644 --- a/kernel/proc/proc.c +++ b/kernel/proc/proc.c @@ -223,9 +223,6 @@ proc_t *proc_create(const char *name) proc_initproc = proc; } - proc->p_vmmap = vmmap_clone(curproc->p_vmmap); - curproc->p_vmmap->vmm_proc = proc; - #ifdef __VFS__ // clone and ref the files from curproc for (int fd = 0; fd < NFILES; fd++) @@ -243,6 +240,23 @@ proc_t *proc_create(const char *name) } #endif +#ifdef __VM__ + proc->p_vmmap = vmmap_clone(curproc->p_vmmap); + curproc->p_vmmap->vmm_proc = proc; + + KASSERT(proc->p_vmmap != NULL); //FIXME! + + // copy the table of file descriptors + for (int i = 0; i < NFILES; i++) + { + if (curproc->p_files[i] != NULL) + { + fref(curproc->p_files[i]); + proc->p_files[i] = curproc->p_files[i]; + } + } +#endif + return proc; } -- cgit v1.2.3-70-g09d2