summaryrefslogtreecommitdiff
path: root/src/kernel/syscalls.c
AgeCommit message (Collapse)Author
2022-05-06syscalls: merge fork() and fs_fork2()dzwdz
2022-05-06kernel/proc: reorganize the functionsdzwdz
2022-05-06kernel/proc: get rid of the PS_DEADER state, free processes asapdzwdz
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: move the COM1 driver to a separate handlerdzwdz
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-04kernel: refcount vfs_backenddzwdz
what a mess
2022-05-03kernel: reference count mount objects, free them on process killsdzwdz
2022-05-02syscalls: fork() noreap flagdzwdz
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-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-14kernel/proc: only change state through `process_transition`dzwdz
2022-04-14kernel: port init's `printf` implementationdzwdz
2022-04-12kernel: make all sizes unsigned, sort out the sign messdzwdz
2022-04-09kernel: prevent switching processes in syscall handlersdzwdz
2022-04-09kernel: `vfs_request_accept` now doesn't switch processesdzwdz
2022-04-07kernel/vfs: implement a vfs request queuedzwdz
2022-03-27init: userland tty emulator ; also workaround a fork() bugdzwdz
2022-03-27shared/syscalls: change some pointer types to void*dzwdz
2021-11-14shared: use a single implementation of mem* functions everywheredzwdz
2021-11-04Merge branch 'main' into fork2dzwdz
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