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Β§
- SYSCALL_
EXEC π - SYSCALL_
EXIT π - SYSCALL_
FORK π - SYSCALL_
GETPID π - SYSCALL_
GET_ πTIME - SYSCALL_
READ π - SYSCALL_
WAITPID π - SYSCALL_
WRITE π - SYSCALL_
YIELD π
FunctionsΒ§
- syscall
- handle syscall exception with
syscall_id
and other arguments