summaryrefslogtreecommitdiff
path: root/src/kernel
AgeCommit message (Collapse)Author
2022-05-05kernel/vfs: refactor vfs_backend to allow multiple kernel backendsdzwdz
2022-05-05kernel/vfs: rename the vfsreq funcs, merge vfsreq_finish & vfsreq_canceldzwdz
2022-05-05kernel/vfs_root: fix nullptr dereferencedzwdz
2022-05-05kernel/proc: remove deathbeddingdzwdz
2022-05-04kernel/proc: leave the vfs_request when killing a WAITS4FS procdzwdz
...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-04kernel: refcount vfs_backenddzwdz
what a mess
2022-05-03kernel: reference count mount objects, free them on process killsdzwdz
2022-05-03kernel/alloc: expose kmalloc_sanitydzwdz
2022-05-03kernel/proc: fix double decrement of potential_handlersdzwdz
2022-05-03kernel/alloc: print who allocated unfreed memory on shutdowndzwdz
2022-05-03kernel: stacktraces on panic()dzwdz
2022-05-03kernel/alloc: display details about all the unfreed memory on shutdowndzwdz
2022-05-03kernel/alloc: kfree() now actually frees memorydzwdz
2022-05-02syscalls: fork() noreap flagdzwdz
2022-05-02shared: fix some stuff i broke + compiler warningsdzwdz
2022-05-02kernel/vfs: always separately allocate the request objectdzwdz
2022-05-02kernel/vfs: pass `close()` calls to fs handlersdzwdz
2022-05-02kernel/syscall: implement _syscall_close()dzwdz
2022-05-01kernel/proc: `process_handle_get` for safely accepting handle idsdzwdz
2022-05-01kernel/proc: make handles separate refcounted objectsdzwdz
2022-04-28kernel/proc: automatically free processes given the chancedzwdz
2022-04-28kernel/proc: reparent deathbedded processesdzwdz
dead processes now can't have alive children
2022-04-28kernel/proc: simplify `process_seed`dzwdz
2022-04-28kernel/proc: explicitly handle all process states in switch()esdzwdz
2022-04-28kernel/vfs: don't wait for IRQs when system is about to haltdzwdz
2022-04-22kernel: recursive process_freedzwdz
2022-04-21kernel: consolidate `process_seed` and `run_init`dzwdz
2022-04-21kernel/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-21kernel/proc: only kill deathbedded processes on switch attemptdzwdz
this makes `process_transition` safe again, as it won't be able to free processes. it was a pretty unintuitive behaviour
2022-04-21kernel: recursive kill()dzwdz
2022-04-21kernel: `shutdown()`; temporarily print process states on shutdowndzwdz
2022-04-16kernel/vfs: store the queue in `vfs_request` itselfdzwdz
2022-04-16kernel/vfs: refactor `vfs_request_accept` into `vfs_backend_accept`dzwdz
handling the backend queue makes more sense here than in the syscall implementation. it's also just overall cleaner
2022-04-16kernel/vfs: be more strict about the state of `vfs_backend.handler`dzwdz
2022-04-15kernel/vfs: don't hang on orphaned vfs callsdzwdz
2022-04-15kernel/vfs: don't hang waiting for a vfs backend after it exit()sdzwdz
2022-04-14kernel/proc: only change state through `process_transition`dzwdz
2022-04-14kernel: store a pointer to the callback function in .waits4irqdzwdz
removes `proc.c`'s pointless dependency on `vfs/root.h`
2022-04-14kernel/root: don't panic on writes to `/ps2`dzwdz
2022-04-14kernel: port init's `printf` implementationdzwdz
2022-04-14kernel: slightly clean up `vfs/request.c`dzwdz
2022-04-14kernel: basic page allocator, `process_free`dzwdz
2022-04-12kernel/proc: implement `process_next` for simple process iterationdzwdz
2022-04-12shared: fix some minor warningsdzwdz
2022-04-12kernel: make all sizes unsigned, sort out the sign messdzwdz
2022-04-11kernel: implement `cpu_pause()` in assembly, remove `irq_interrupt_flag()`dzwdz
2022-04-11kernel/arch: only allow IRQs in the idle processdzwdz
2022-04-11kernel: shutdown when init quitsdzwdz
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-11kernel/rootvfs: don't overread from ps2/serialdzwdz
2022-04-10kernel/driver: modify the ps2/serial drivers to use ring_tdzwdz