summaryrefslogtreecommitdiff
path: root/src/kernel
AgeCommit message (Collapse)Author
2021-10-02serial: implement a selftestdzwdz
2021-10-02rename kernel/arch/log.h to io.hdzwdz
it's not related to logging but to general io, the old name didn't make sense
2021-09-23_syscall_mount(): ignore trailing slash in mount pathdzwdz
2021-09-22free the mounts created in tests/vfs.cdzwdz
2021-09-22kfree: detect double freesdzwdz
2021-09-22kfree: check for a magic value before freeing to detect invalid freesdzwdz
2021-09-22_syscall_open: strip the mount prefix in a better waydzwdz
2021-09-21start using sparse's `-Wnon-pointer-null`dzwdz
While I personally don't see a reason to use NULL instead of 0, I assume that whoever made that a sparse default knew what they were doing.
2021-09-21start using sparse's `-Wdecl`dzwdz
2021-09-21fix the assert kernel panic messagedzwdz
2021-09-21implement (safe) min/max macrosdzwdz
2021-09-21refactor `await_finish` into `process_try2collect`dzwdz
the new name is terrible, but at least the function now has a clear purpose
2021-09-21make await() fail gracefully when callee has no alive children alreadydzwdz
2021-09-21add `__force` for marking casts across adress spacesdzwdz
2021-09-20create a few specialized panic()sdzwdz
thanks to this i can tell which ones are placeholders, and which ones should stay
2021-09-20add an offset parameter to read() and write()dzwdz
2021-09-20remove some unused variablesdzwdz
2021-09-20use a single struct for all fs_wait return valuesdzwdz
2021-09-20add some missing includes to `kernel/vfs/request.h`dzwdz
2021-09-19slightly tidy up some syscallsdzwdz
yay for pointless changes
2021-09-19show the malloc balance on halt; remove a bad kfree() calldzwdz
the kfree() call was freeing a buffer which was inside a process struct
2021-09-19remove the unused static_strcmp macrodzwdz
2021-09-19call sysenter_setup before kmain_earlydzwdz
makes the code slightly simpler, imo
2021-09-19mark run_init as _Noreturndzwdz
2021-09-18_syscall_mount: actually use the just computed `backend` vardzwdz
whoops
2021-09-18remove `struct process.stack_top` - it was unuseddzwdz
2021-09-18implement NULL mountsdzwdz
2021-09-18put the `handle_t` typedef in `shared/types.h`dzwdz
2021-09-18merge `kernel/types.h` and `init/types.h`dzwdz
2021-09-16implement output from vfs callsdzwdz
2021-09-16fs_read stub, basic implementation in userlanddzwdz
2021-09-15fs_wait: pass the file ID toodzwdz
2021-09-14merge the `syscall_handler` and `_syscall` declarationsdzwdz
i think that making the call a bit more "transparent" makes the code nicer
2021-09-14add support for 4-parameter syscallsdzwdz
2021-09-12fix typo; use the right union elementdzwdz
the values are the same, it only caused a warning in sparse
2021-09-12simplify `fs_respond`'s signaturedzwdz
2021-09-12first working access function!dzwdz
2021-09-12move `enum vs_operation` to shared/flags.hdzwdz
2021-09-12allow vfs_request_finish to returndzwdz
thanks to this, the fs provider can continue executing until the next fs_wait() call. that should speed things up a bit
2021-09-12implement part of `fs_respond`dzwdz
2021-09-12log cr2 on page faultsdzwdz
2021-09-12make the inline functions staticdzwdz
otherwise this doesn't compile with -O0
2021-09-12barebones `memflag()` implementation - letting the user allocate pagesdzwdz
2021-09-12implement most of fs_waitdzwdz
awaited_req is a garbage name but i couldn't come up with a better one. i also have no idea how to handle all the failure states
2021-09-12vfs_request refactor pt2dzwdz
2021-09-12vfs request refactor pt1dzwdz
2021-09-12remove some dead codedzwdz
2021-09-12remove obsolete commentdzwdz
2021-09-11add some helper functions for copying between virtual and physical memorydzwdz
this was already possible, but now it's slightly safer
2021-09-11replace `user_ptr` with a linux-style `__user` annotationdzwdz