diff options
author | dzwdz | 2022-03-27 17:49:54 +0200 |
---|---|---|
committer | dzwdz | 2022-03-27 17:49:54 +0200 |
commit | f1cefa851c3bc8aa6a8c2e6b86d23d87db342a2d (patch) | |
tree | ba5a67cbf7a60f19bbe6a2ca83dedf2132b991ba /src/kernel | |
parent | 2cd4a60b2f8dd3fc5196fe97c6f1882e2e8ebe0d (diff) |
init: userland tty emulator ; also workaround a fork() bug
Diffstat (limited to 'src/kernel')
-rw-r--r-- | src/kernel/syscalls.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/kernel/syscalls.c b/src/kernel/syscalls.c index f41aabf..faa7ccc 100644 --- a/src/kernel/syscalls.c +++ b/src/kernel/syscalls.c @@ -179,7 +179,13 @@ handle_t _syscall_fs_fork2(void) { * also there's this whole thing with handling errors here properly and * errno * TODO figure this out */ - if (front == 0) panic_unimplemented(); + if (front == 0) { + // dumb hack + front = process_find_handle(process_current); + if (front < 0) return -1; + process_current->handles[front].type = HANDLE_FS_FRONT; + process_current->handles[0].type = HANDLE_EMPTY; + } backend = kmalloc(sizeof *backend); // TODO never freed backend->type = VFS_BACK_USER; |