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§
- exec syscall
- exit syscall
- fork syscall
- getpid syscall
- gettime syscall
- mmap syscall
- munmap syscall
- read syscall
- sbrk syscall
- setpriority syscall
- spawn syscall
- taskinfo syscall
- waitpid syscall
- write syscall
- yield syscall
Functions§
- handle syscall exception with
syscall_id
and other arguments