* Add yanix crate This commit adds `yanix` crate as a Unix dependency for `wasi-common`. `yanix` stands for Yet Another Nix crate and is exactly what the name suggests: a crate in the spirit of the `nix` crate, but which takes a different approach, using lower-level interfaces with less abstraction, so that it fits better with its main use case, implementation of WASI syscalls. * Replace nix with yanix crate Having introduced `yanix` crate as an in-house replacement for the `nix` crate, this commit makes the necessary changes to `wasi-common` to depend _only_ on `yanix` crate. * Address review comments * make `fd_dup` unsafe * rename `get_fd` to `get_fd_flags`, etc. * reuse `io::Error::last_os_error()` to get the last errno value * Address more comments * make all `fcntl` fns unsafe * adjust `wasi-common` impl appropriately * Make all fns operating on RawFd unsafe * Fix linux build * Address more comments
25 lines
742 B
Rust
25 lines
742 B
Rust
use crate::wasi;
|
|
use cfg_if::cfg_if;
|
|
|
|
cfg_if! {
|
|
if #[cfg(unix)] {
|
|
mod unix;
|
|
pub(crate) use self::unix::*;
|
|
pub use self::unix::preopen_dir;
|
|
|
|
pub(crate) fn errno_from_host(err: i32) -> wasi::__wasi_errno_t {
|
|
host_impl::errno_from_nix(yanix::Errno::from_i32(err)).as_wasi_errno()
|
|
}
|
|
} else if #[cfg(windows)] {
|
|
mod windows;
|
|
pub(crate) use self::windows::*;
|
|
pub use self::windows::preopen_dir;
|
|
|
|
pub(crate) fn errno_from_host(err: i32) -> wasi::__wasi_errno_t {
|
|
host_impl::errno_from_win(winx::winerror::WinError::from_u32(err as u32))
|
|
}
|
|
} else {
|
|
compile_error!("wasi-common doesn't compile for this platform yet");
|
|
}
|
|
}
|