X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/474a5dd282586c31abfefc7953f148acdc226731..5be90ccccd441b1a38dbbf4fc99c7375cede8d8d:/lunaix-os/kernel/process.c?ds=sidebyside diff --git a/lunaix-os/kernel/process.c b/lunaix-os/kernel/process.c index a783efe..4d6a77e 100644 --- a/lunaix-os/kernel/process.c +++ b/lunaix-os/kernel/process.c @@ -114,7 +114,7 @@ __DEFINE_LXSYSCALL2(int, setpgid, pid_t, pid, pid_t, pgid) struct proc_info* proc = pid ? get_process(pid) : __current; if (!proc) { - __current->k_status = LXINVL; + __current->k_status = EINVAL; return -1; } @@ -123,7 +123,7 @@ __DEFINE_LXSYSCALL2(int, setpgid, pid_t, pid, pid_t, pgid) struct proc_info* gruppenfuhrer = get_process(pgid); if (!gruppenfuhrer || proc->pgid == proc->pid) { - __current->k_status = LXINVL; + __current->k_status = EINVAL; return -1; } @@ -184,6 +184,7 @@ dup_proc() pcb->intr_ctx = __current->intr_ctx; pcb->parent = __current; + memcpy(pcb->fdtable, __current->fdtable, sizeof(struct v_fdtable)); region_copy(&__current->mm.regions, &pcb->mm.regions); setup_proc_mem(pcb, PD_REFERENCED);