summaryrefslogtreecommitdiff
path: root/src/kernel/syscalls.c
AgeCommit message (Collapse)Author
2021-11-03kernel: implement virt_cpy2kmallocdzwdz
2021-11-02fork2() refactor: implement fs_fork2()dzwdz
2021-11-02fork2 refactor: every process now has (only) a single controlled vfs_backenddzwdz
2021-10-04implement process_kill()dzwdz
2021-10-04remove support for processes returning strings on exitdzwdz
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-23_syscall_mount(): ignore trailing slash in mount pathdzwdz
2021-09-22_syscall_open: strip the mount prefix in a better waydzwdz
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-20use a single struct for all fs_wait return valuesdzwdz
2021-09-19slightly tidy up some syscallsdzwdz
yay for pointless changes
2021-09-18_syscall_mount: actually use the just computed `backend` vardzwdz
whoops
2021-09-18implement NULL mountsdzwdz
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-12simplify `fs_respond`'s signaturedzwdz
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-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
2021-09-09basic _syscall_fs_wait() impl, doesn't pass the req yetdzwdz
2021-09-08style: simplify the `kmalloc(sizeof(...` callsdzwdz
2021-09-08copy _syscall_fs_open's argument to a new buffer instead of a shared onedzwdz
this will be needed for storing vfs_op's properly
2021-09-08process struct: replace the generic saved_addr with an uniondzwdz
2021-09-08scaffolding for user fs dispatchdzwdz
2021-09-07reimplement _syscall_mountdzwdz
2021-09-07implement fs_create(), front/back fs handlesdzwdz
2021-09-05fix some warningsdzwdz
2021-09-05rename virt_user_cpy to virt_cpy, since it's no longer limited to virtual memorydzwdz
2021-09-05make virt_iter support iterating over physical memory toodzwdz
2021-09-05move most of the memory stuff to kernel/mem/dzwdz
2021-09-05remove the fd_ / fs_ prefixes from syscall namesdzwdz
2021-09-05remove unused variabledzwdz
2021-09-05don't allow calling open() if there are no empty handles leftdzwdz
2021-09-05root vfs: implement writing to /ttydzwdz
2021-09-04new vfs impl pt. 1: implement open()dzwdz
2021-09-04refactor finding empty handles to a functiondzwdz