Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-08-24 | move syscalls.h to shared/syscalls.h | dzwdz | |
2021-08-24 | remove _syscall_debug_log, as it's not needed anymore | dzwdz | |
2021-08-24 | fdop_dispatch: pass the fd struct instead of index | dzwdz | |
2021-08-24 | add some scaffolding for file descriptors | dzwdz | |
2021-08-22 | virt_iter: count bytes that were already iterated over | dzwdz | |
2021-08-22 | fs_open() accepts a signed length, fixes an infinite loop | dzwdz | |
it occureed if the path_simplify returned a negative value - instead of being interpreter as an error it just carried on, ending up in an infinite loop. | |||
2021-08-22 | basic mount resolving | dzwdz | |
2021-08-22 | fs_open() stub | dzwdz | |
2021-08-22 | process_switch_any: deduplicate some code | dzwdz | |
2021-08-22 | fix almost all compiler warnings | dzwdz | |
2021-08-22 | fix typo in _syscall_await definition | dzwdz | |
2021-08-22 | kernel: implement assert | dzwdz | |
2021-08-22 | await() 2: pass the exit message | dzwdz | |
2021-08-18 | await() 1: wait for child to die, without message passing | dzwdz | |
The length is a int, because the syscall will have a signed output. A negative return value will mean an error (such as when it gets called by a childless process). | |||
2021-08-18 | fork() now has a return value; you can tell the child and parent apart | dzwdz | |
2021-08-18 | rename process_clone to process_fork | dzwdz | |
2021-08-11 | abstract out iterating over virtual memory | dzwdz | |
most syscalls will have to do this to copy memory around or whatever. it's pretty ugly too, but i can't come up with a better abstraction... | |||
2021-08-11 | read _syscall_debuglog arguments across page boundaries | dzwdz | |
2021-08-09 | rename `log_` to `tty_`, `tty_` to `vga_` | dzwdz | |
2021-07-31 | change the syscall naming convention; same one in kernel and userland | dzwdz | |
2021-07-26 | exit() now switches to the first running process | dzwdz | |
i used a linked list because it's the simplest way to implement this | |||
2021-07-26 | fork() pt 1: cloning process memory | dzwdz | |
2021-07-26 | mark sc_exit() as noreturn | dzwdz | |
gets rid of the double panic() call | |||
2021-07-24 | save all registers on syscalls | dzwdz | |
2021-07-23 | add a barebones exit() syscall | dzwdz | |
2021-07-23 | update the process' EIP/ESP when it syscalls | dzwdz | |
2021-07-22 | implement the debuglog() syscall | dzwdz | |
2021-07-21 | syscall parameter & return value passing | dzwdz | |
Sadly, sysenter on i386 limits me to only 4 arguments (so, 1 for the syscall id + 3 real args). If that turns out to be an issue I'll either just switch to interrupts, or switch to x64. | |||
2021-07-21 | barebones syscall | dzwdz | |