Age | Commit message (Collapse) | Author | |
---|---|---|---|
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 | |
2021-09-05 | move most of the memory stuff to kernel/mem/ | dzwdz | |
2021-09-04 | refactor finding empty handles to a function | dzwdz | |
2021-09-04 | rename file descriptors to handles | dzwdz | |
2021-08-25 | remove FD_STDOUT | dzwdz | |
init can just open `/tty` instead | |||
2021-08-25 | implement vfs_mount_seed, which creates the vfs passed to init | dzwdz | |
2021-08-24 | switch to using user_ptr for pointers coming from userland | dzwdz | |
this avoid accidental dereferences, and now it's easy to tell apart which pointers are safe to directly read and which aren't. cons: - const is completely discarded | |||
2021-08-24 | replace () with (void) in function definitions | dzwdz | |
`()` means that any amt of arguments will be accepted, which isn't what i want |