# Module os::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 🔒

## 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