summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-05-06kernel/proc: reorganize the functionsdzwdz
2022-05-06kernel/proc: move shutdown() to process_killdzwdz
2022-05-06kernel/proc: simplify `process_free()`dzwdz
2022-05-06kernel/proc: get rid of the PS_DEADER state, free processes asapdzwdz
2022-05-05kernel/driver: clean up the ps2/serial driversdzwdz
2022-05-05kernel: fix a few minor compiler warningsdzwdz
2022-05-05kernel: move fsroot to kernel/arch/i386dzwdz
2022-05-05kernel: each driver registers its own mountsdzwdz
2022-05-05kernel: syscalls now have to explicitly save the return valuedzwdz
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-05kernel/proc: remove WAITS4IRQdzwdz
2022-05-05kernel: move the COM1 driver to a separate handlerdzwdz
2022-05-05kernel: ps2 driver is now a separate backenddzwdz
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-02meta: write a script to generate `src/init/syscalls.c`dzwdz
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-05-01init/fs: make directory listings respect offsetsdzwdz
2022-05-01init/libc: libc_file wrapper over the raw syscallsdzwdz
2022-05-01init/cat: read files until EOFdzwdz
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-28init: run shells from a child process to expose bug in process_free()dzwdz
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