mirror of
https://github.com/Fennix-Project/Kernel.git
synced 2025-05-28 15:34:33 +00:00
Update Linux fork and execve functions
This commit is contained in:
parent
321305e795
commit
235f42b8d8
@ -715,6 +715,8 @@ static pid_t linux_fork(SysFrm *sf)
|
|||||||
NewProcess->vma->Fork(Parent->vma);
|
NewProcess->vma->Fork(Parent->vma);
|
||||||
NewProcess->ProgramBreak->SetTable(NewProcess->PageTable);
|
NewProcess->ProgramBreak->SetTable(NewProcess->PageTable);
|
||||||
NewProcess->FileDescriptors->Fork(Parent->FileDescriptors);
|
NewProcess->FileDescriptors->Fork(Parent->FileDescriptors);
|
||||||
|
NewProcess->Executable = Parent->Executable;
|
||||||
|
NewProcess->CurrentWorkingDirectory = Parent->CurrentWorkingDirectory;
|
||||||
|
|
||||||
TCB *NewThread =
|
TCB *NewThread =
|
||||||
TaskManager->CreateThread(NewProcess,
|
TaskManager->CreateThread(NewProcess,
|
||||||
@ -965,6 +967,13 @@ __no_sanitize("undefined") static int linux_execve(SysFrm *sf, const char *pathn
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *baseName;
|
||||||
|
cwk_path_get_basename(pPathname, &baseName, nullptr);
|
||||||
|
|
||||||
|
pcb->Rename(baseName);
|
||||||
|
pcb->SetWorkingDirectory(File->node->Parent);
|
||||||
|
pcb->SetExe(pPathname);
|
||||||
|
|
||||||
delete File;
|
delete File;
|
||||||
Tasking::Task *ctx = pcb->GetContext();
|
Tasking::Task *ctx = pcb->GetContext();
|
||||||
// ctx->Sleep(1000);
|
// ctx->Sleep(1000);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user