Age | Commit message (Collapse) | Author | |
---|---|---|---|
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 | |||
2022-05-03 | kernel: reference count mount objects, free them on process kills | dzwdz | |
2022-05-03 | kernel/proc: fix double decrement of potential_handlers | dzwdz | |
2022-05-02 | syscalls: fork() noreap flag | dzwdz | |
2022-05-02 | kernel/vfs: always separately allocate the request object | dzwdz | |
2022-05-01 | kernel/proc: `process_handle_get` for safely accepting handle ids | dzwdz | |
2022-05-01 | kernel/proc: make handles separate refcounted objects | dzwdz | |
2022-04-28 | kernel/proc: automatically free processes given the chance | dzwdz | |
2022-04-28 | kernel/proc: reparent deathbedded processes | dzwdz | |
dead processes now can't have alive children | |||
2022-04-28 | kernel/proc: simplify `process_seed` | dzwdz | |
2022-04-28 | kernel/proc: explicitly handle all process states in switch()es | dzwdz | |
2022-04-28 | kernel/vfs: don't wait for IRQs when system is about to halt | dzwdz | |
2022-04-22 | kernel: recursive process_free | dzwdz | |
2022-04-21 | kernel: consolidate `process_seed` and `run_init` | dzwdz | |
2022-04-21 | kernel/proc: only expose `process_switch_any()` | dzwdz | |
other parts of the kernel don't need to care about which process exactly gets switched into | |||
2022-04-21 | kernel/proc: only kill deathbedded processes on switch attempt | dzwdz | |
this makes `process_transition` safe again, as it won't be able to free processes. it was a pretty unintuitive behaviour | |||
2022-04-21 | kernel: recursive kill() | dzwdz | |
2022-04-21 | kernel: `shutdown()`; temporarily print process states on shutdown | dzwdz | |
2022-04-16 | kernel/vfs: store the queue in `vfs_request` itself | dzwdz | |
2022-04-15 | kernel/vfs: don't hang on orphaned vfs calls | dzwdz | |
2022-04-15 | kernel/vfs: don't hang waiting for a vfs backend after it exit()s | dzwdz | |
2022-04-14 | kernel/proc: only change state through `process_transition` | dzwdz | |
2022-04-14 | kernel: store a pointer to the callback function in .waits4irq | dzwdz | |
removes `proc.c`'s pointless dependency on `vfs/root.h` | |||
2022-04-14 | kernel: port init's `printf` implementation | dzwdz | |
2022-04-14 | kernel: basic page allocator, `process_free` | dzwdz | |
2022-04-12 | kernel/proc: implement `process_next` for simple process iteration | dzwdz | |
2022-04-11 | kernel: implement `cpu_pause()` in assembly, remove `irq_interrupt_flag()` | dzwdz | |
2022-04-11 | kernel/arch: only allow IRQs in the idle process | dzwdz | |
2022-04-11 | kernel: shutdown when init quits | dzwdz | |
thanks to this it's easier to power off - instead of waiting for all processses to quit (which now involves writing `quit` both on serial and ps/2), one of those can just somehow kill init. currently this is just done by exiting from any shell - init will return from await and exit too | |||
2022-04-10 | init/fs: handle delegated reads in a subprocess | dzwdz | |
first off: this is horrible. there's no CoW, so this is horribly slow. the sole purpose of this is to let the userland delegate handle multiple requests at once, because i'm implementing concurrent IO and I kinda need that. it's possible that handling of multiple requests could be handled in a better way - but this could be good enough once i implement CoW | |||
2022-04-10 | kernel: idle process | dzwdz | |
2022-04-10 | kernel: process_find_multiple | dzwdz | |
2022-04-09 | kernel: `vfs_request_accept` now doesn't switch processes | dzwdz | |
2021-11-14 | shared: use a single implementation of mem* functions everywhere | dzwdz | |
2021-11-02 | fork2 refactor: every process now has (only) a single controlled vfs_backend | dzwdz | |
2021-10-15 | kernel: quit QEMU once there are no running processes left | dzwdz | |
2021-10-04 | remove unused variables in process_try2collect | dzwdz | |
2021-10-04 | implement process_kill() | dzwdz | |
2021-10-04 | remove support for processes returning strings on exit | dzwdz | |
This isn't really all that useful, it doesn't enable anything that wasn't possible before. With it removed I'll be able to implement process_exit() in a much simpler way. | |||
2021-09-21 | start using sparse's `-Wdecl` | dzwdz | |
2021-09-21 | implement (safe) min/max macros | dzwdz | |
2021-09-21 | refactor `await_finish` into `process_try2collect` | dzwdz | |
the new name is terrible, but at least the function now has a clear purpose | |||
2021-09-20 | create a few specialized panic()s | dzwdz | |
thanks to this i can tell which ones are placeholders, and which ones should stay | |||
2021-09-19 | show the malloc balance on halt; remove a bad kfree() call | dzwdz | |
the kfree() call was freeing a buffer which was inside a process struct | |||
2021-09-18 | remove `struct process.stack_top` - it was unused | dzwdz | |
2021-09-12 | implement part of `fs_respond` | dzwdz | |
2021-09-11 | replace `user_ptr` with a linux-style `__user` annotation | dzwdz | |
2021-09-08 | style: simplify the `kmalloc(sizeof(...` calls | dzwdz | |