# mod.rs - source
Source of the Rust file `src/syscall/mod.rs`.
Keywords: rust, rustlang, rust-lang

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

    const SYSCALL_WRITE: usize = 64;
    const SYSCALL_EXIT: usize = 93;
    const SYSCALL_YIELD: usize = 124;
    //const SYSCALL_GET_TIME: usize = 169;

    mod fs;
    mod process;

    use fs::*;
    use process::*;

    /// handle syscall exception with `syscall_id` and other arguments
    pub fn syscall(syscall_id: usize, args: [usize; 3]) -> isize {
        match syscall_id {
            SYSCALL_WRITE => sys_write(args[0], args[1] as *const u8, args[2]),
            SYSCALL_EXIT => sys_exit(args[0] as i32),
            SYSCALL_YIELD => sys_yield(),
            _ => panic!("Unsupported syscall_id: {}", syscall_id),
        }
    }