Age | Commit message (Collapse) | Author | |
---|---|---|---|
2022-07-09 | kernel/pipes: process queueing | dzwdz | |
2022-07-09 | syscalls/pipe: turn into a POSIX-style api with separate rw ends | dzwdz | |
Without separate read/write ends you can't tell when there are no more writers left if you have multiple readers. Consider this piece of code: int fd = pipe(); fork(); // execution continues in 2 processes while (read(fd, &some_buf, sizeof somebuf) >= 0) { ... } Once both processes call `read()`, it's obvious that no writes are possible - all the processes that hold a reference to the pipe are currently stuck on a `read()` call, so the kernel could just make it return an error in both. But, what then? It's still possible to write to the pipe, and you can't know if the other process will do that. Thus, if you don't want to miss any output, you have to keep reading the pipe. Forever. Both processes end up stuck. Having separate read/write ends prevents that. | |||
2022-07-08 | kernel/proc: remove the type argument from process_handle_get | dzwdz | |
2022-07-08 | kernel/syscalls: fix the SYSCALL_RETURN macro for returning pointers | dzwdz | |
2022-07-08 | kernel/fsroot: use req_preprocess to calculate offsets everywhere | dzwdz | |
2022-07-08 | syscall/fs_respond: get the file id from the buf argument | dzwdz | |
Previously, file ids could only be positive integers, so their range was 31 bits - not enough to represent the entire memory. Now, pointers can be safely used as file ids. | |||
2022-07-07 | kernel: add the vfsreq_finish_short shorthand function | dzwdz | |
2022-07-07 | kernel/vfs: delegate support in _syscall_fs_respond! | dzwdz | |
this is big in terms of speed, it avoids a lot of unnecessary context switches | |||
2022-07-07 | shared: add a flags argument to _syscall_fs_respond | dzwdz | |
2022-07-06 | kernel: don't panic on nonexistent syscalls | dzwdz | |
2022-07-06 | kernel/pipes: read & write support | dzwdz | |
2022-07-05 | kernel: initial partial pipe support | dzwdz | |
2022-07-01 | kernel/fsroot: respect offset when reading root | dzwdz | |
2022-07-01 | kernel: disable klog | dzwdz | |
2022-07-01 | kernel: add the debug_klog syscall for tracking down process ids | dzwdz | |
2022-06-30 | kernel: get lint to shut up about undeclared variables | dzwdz | |
2022-06-30 | kernel/linker: rename .text.early to .shared | dzwdz | |
It's not really just a text section, as it's writeable too. Makes gcc shut up about invalid section attributes. | |||
2022-06-29 | kernel/vfs: add the OPEN_CREATE flag | dzwdz | |
2022-05-29 | kernel: fix overlapping interrupt / regular stacks | dzwdz | |
2022-05-26 | kernel/style: don't return pointless values in _syscall | dzwdz | |
2022-05-26 | syscalls/memflag: FINDFREE flag | dzwdz | |
2022-05-21 | kernel/i386: only map what's absolutely necessary in the user | dzwdz | |
2022-05-21 | syscall/memflag: zero out allocated pages to prevent leaks | dzwdz | |
2022-05-21 | syscall/memflag: implement freeing memory | dzwdz | |
2022-05-21 | kernel/pagedir: explicitly mark the pagedir user/write fields as unused | dzwdz | |
2022-05-15 | shared/ring: ring_contig | dzwdz | |
2022-05-15 | syscall/await: ensure the children are reapable before hanging | dzwdz | |
2022-05-15 | kernel/syscall: ensure SYSCALL_RETURN value is used | dzwdz | |
2022-05-15 | kernel/mem: remove virt_cpy2kmalloc | dzwdz | |
2022-05-06 | kernel: remove the union in `struct handle` | dzwdz | |
2022-05-06 | kernel/proc: fork: be explicit about copying fields | dzwdz | |
2022-05-06 | syscalls: merge fork() and fs_fork2() | dzwdz | |
2022-05-06 | kernel/proc: reorganize the functions | dzwdz | |
2022-05-06 | kernel/proc: move shutdown() to process_kill | dzwdz | |
2022-05-06 | kernel/proc: simplify `process_free()` | dzwdz | |
2022-05-06 | kernel/proc: get rid of the PS_DEADER state, free processes asap | dzwdz | |
2022-05-05 | kernel/driver: clean up the ps2/serial drivers | dzwdz | |
2022-05-05 | kernel: fix a few minor compiler warnings | dzwdz | |
2022-05-05 | kernel: move fsroot to kernel/arch/i386 | dzwdz | |
2022-05-05 | kernel: each driver registers its own mounts | dzwdz | |
2022-05-05 | kernel: syscalls now have to explicitly save the return value | dzwdz | |
thus they can opt out of doing that so the calls which might return immediately but can return later don't have to both regs_savereturn and return to the caller. and because of that, the return values of a lot of VFS things have just got way saner | |||
2022-05-05 | kernel/proc: remove WAITS4IRQ | dzwdz | |
2022-05-05 | kernel: move the COM1 driver to a separate handler | dzwdz | |
2022-05-05 | kernel: ps2 driver is now a separate backend | dzwdz | |
2022-05-05 | kernel/vfs: refactor vfs_backend to allow multiple kernel backends | dzwdz | |
2022-05-05 | kernel/vfs: rename the vfsreq funcs, merge vfsreq_finish & vfsreq_cancel | dzwdz | |
2022-05-05 | kernel/vfs_root: fix nullptr dereference | dzwdz | |
2022-05-05 | kernel/proc: remove deathbedding | dzwdz | |
2022-05-04 | kernel/proc: leave the vfs_request when killing a WAITS4FS proc | dzwdz | |
...instead of letting the hwole process stay around. This could end up a bit more complex, I have no idea how to test killing processes during vfs requests. The upside of this is that I can remove all the deathbed/deadparent weirdness now. | |||
2022-05-04 | kernel: refcount vfs_backend | dzwdz | |
what a mess |