Expand description
Implementation of syscalls
The single entry point to all system calls, syscall()
, is called
whenever userspace wishes to perform a system call using the ecall
instruction. In this case, the processor raises an ‘Environment call from
U-mode’ exception, which is handled as one of the cases in
crate::trap::trap_handler
.
For clarity, each single syscall is implemented as its own function, named
sys_
then the name of the syscall. You can find functions like this in
submodules, and you should also implement syscalls this way.
Modules
Constants
close syscall
exec syscall
exit syscall
fork syscall
fstat syscall
getpid syscall
gettime syscall
linkat syscall
mmap syscall
munmap syscall
open syscall
read syscall
sbrk syscall
setpriority syscall
spawn syscall
taskinfo syscall
unlinkat syscall
waitpid syscall
write syscall
yield syscall
Functions
handle syscall exception with syscall_id
and other arguments