Skip to main content

Module syscall

Module syscall 

Source
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ยง

fs ๐Ÿ”’
File and filesystem-related syscalls
process ๐Ÿ”’
Process management syscalls

Constantsยง

SYSCALL_EXIT ๐Ÿ”’
SYSCALL_GET_TIME ๐Ÿ”’
SYSCALL_SBRK ๐Ÿ”’
SYSCALL_WRITE ๐Ÿ”’
SYSCALL_YIELD ๐Ÿ”’

Functionsยง

syscall
handle syscall exception with syscall_id and other arguments