summaryrefslogtreecommitdiff
path: root/src/kernel/syscalls.c
AgeCommit message (Collapse)Author
2022-07-08syscall/fs_respond: get the file id from the buf argumentdzwdz
Previously, file ids could only be positive integers, so their range was 31 bits - not enough to represent the entire memory. Now, pointers can be safely used as file ids.
2022-07-07kernel/vfs: delegate support in _syscall_fs_respond!dzwdz
this is big in terms of speed, it avoids a lot of unnecessary context switches
2022-07-07shared: add a flags argument to _syscall_fs_responddzwdz
2022-07-06kernel: don't panic on nonexistent syscallsdzwdz
2022-07-06kernel/pipes: read & write supportdzwdz
2022-07-05kernel: initial partial pipe supportdzwdz
2022-07-01kernel: disable klogdzwdz
2022-07-01kernel: add the debug_klog syscall for tracking down process idsdzwdz
2022-06-29kernel/vfs: add the OPEN_CREATE flagdzwdz
2022-05-26kernel/style: don't return pointless values in _syscalldzwdz
2022-05-26syscalls/memflag: FINDFREE flagdzwdz
2022-05-21kernel/i386: only map what's absolutely necessary in the userdzwdz
2022-05-21syscall/memflag: zero out allocated pages to prevent leaksdzwdz
2022-05-21syscall/memflag: implement freeing memorydzwdz
2022-05-15syscall/await: ensure the children are reapable before hangingdzwdz
2022-05-15kernel/syscall: ensure SYSCALL_RETURN value is useddzwdz
2022-05-15kernel/mem: remove virt_cpy2kmallocdzwdz
2022-05-06kernel: remove the union in `struct handle`dzwdz
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.