1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use crate::memory_host::*;

pub fn read_stdin(buf: &mut [u8]) -> std::io::Result<u32> {
    let mut len = 0;
    let errno = unsafe { memory_read(buf.as_mut_ptr(), buf.len() as _, &mut len) };
    if errno == 0 {
        return Ok(len);
    }
    let err = std::io::Error::from_raw_os_error(errno as i32);
    Err(err)
}

pub fn read_env_vars(buf: &mut [u8]) -> std::io::Result<u32> {
    let mut len = 0;
    let errno = unsafe { env_var_read(buf.as_mut_ptr(), buf.len() as _, &mut len) };
    if errno == 0 {
        return Ok(len);
    }
    let err = std::io::Error::from_raw_os_error(errno as i32);
    Err(err)
}