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

    //! File and filesystem-related syscalls

    const FD_STDOUT: usize = 1;

    /// write buf of length `len`  to a file with `fd`
    pub fn sys_write(fd: usize, buf: *const u8, len: usize) -> isize {
        match fd {
            FD_STDOUT => {
                let slice = unsafe { core::slice::from_raw_parts(buf, len) };
                let str = core::str::from_utf8(slice).unwrap();
                print!("{}", str);
                len as isize
            }
            _ => {
                panic!("Unsupported fd in sys_write!");
            }
        }
    }