summaryrefslogtreecommitdiff
path: root/src/kernel
AgeCommit message (Collapse)Author
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
2022-04-10shared: implement a basic ring bufferdzwdz
2022-04-10kernel/i386: rewrite the serial driver to wait for IRQdzwdz
proper multiprocess support!
2022-04-10init/fs: handle delegated reads in a subprocessdzwdz
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-10kernel: idle processdzwdz
2022-04-10kernel: process_find_multipledzwdz
2022-04-09kernel: prevent switching processes in syscall handlersdzwdz
2022-04-09kernel/vfs: prevent the vfs functions from switching processesdzwdz
2022-04-09kernel: `vfs_request_accept` now doesn't switch processesdzwdz
2022-04-07kernel/vfs: fix panic when using an user fs which hadn't yet wait()eddzwdz
2022-04-07kernel/vfs: implement a vfs request queuedzwdz
2022-04-07kernel: remove the `/tty` devicedzwdz
2022-04-07kernel: add a /com1 devicedzwdz
2022-04-05kernel/ps2: don't discard entire buffer on partial readsdzwdz
2022-03-30kernel: remove the keyboard driver, add a `/ps2` devicedzwdz
2022-03-27init: userland tty emulator ; also workaround a fork() bugdzwdz
2022-03-27shared/syscalls: change some pointer types to void*dzwdz
2022-03-27kernel/vfs: partial ATA drive supportdzwdz
2022-03-27style: remove the semicolons after cases in ISRdzwdz
2022-03-27kernel/tty: poll only on IRQs, don't burn cyclesdzwdz
2022-03-27kernel/i386: implement the ps/2 keymap as an arraydzwdz
2022-03-27kernel/vfs: `/vga` nodedzwdz
2022-03-26kernel: IRQs; PS/2 keyboard supportdzwdz
2022-03-06kernel: print newlines after every boot stagedzwdz
IIRC i haven't done this because the vga driver doesn't support newlines - but it doesn't support a lot of other stuff used by the shell. This doesn't make the VGA output look any worse than it already did, and it makes the serial output nicer.
2022-03-06shared: add strcmp() testcases, fix invalid implementationdzwdz
2021-11-20kernel: fs_wait returns a success val; the op type is put in the structdzwdz
2021-11-16kernel/vfs: add a capacity field to fs_wait_responsedzwdz
2021-11-14kernel/vfs: slightly tidy up the root driverdzwdz
2021-11-14shared: use a single implementation of mem* functions everywheredzwdz
2021-11-14kernel/vfs: allow reading the root directorydzwdz
2021-11-04Merge branch 'main' into fork2dzwdz
2021-11-03kernel/vfs: tidy up path_simplify, fix a bug and add regression testsdzwdz
the bug related to paths ending with /.. and not resolving to /
2021-11-03kernel: implement virt_cpy2kmallocdzwdz