summaryrefslogtreecommitdiffstats
path: root/third_party/rust/lucet-wasi-wasmsbx/src/wasm32.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /third_party/rust/lucet-wasi-wasmsbx/src/wasm32.rs
parentInitial commit. (diff)
downloadfirefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz
firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/lucet-wasi-wasmsbx/src/wasm32.rs')
-rw-r--r--third_party/rust/lucet-wasi-wasmsbx/src/wasm32.rs1367
1 files changed, 1367 insertions, 0 deletions
diff --git a/third_party/rust/lucet-wasi-wasmsbx/src/wasm32.rs b/third_party/rust/lucet-wasi-wasmsbx/src/wasm32.rs
new file mode 100644
index 0000000000..9983b37907
--- /dev/null
+++ b/third_party/rust/lucet-wasi-wasmsbx/src/wasm32.rs
@@ -0,0 +1,1367 @@
+//! WASI types as defined in wasm32. This file was originally generated
+//! by running bindgen over wasi/core.h with a wasm32 target, and the content
+//! still largely reflects that, however it's been heavily modified, to
+//! be host-independent, to avoid exposing libc implementation details,
+//! to clean up cases where the headers use complex preprocessor macros,
+//! and to
+
+#![allow(non_camel_case_types)]
+#![allow(non_snake_case)]
+#![allow(dead_code)]
+
+// C types
+pub type char = i8;
+pub type schar = i8;
+pub type uchar = u8;
+pub type short = i16;
+pub type ushort = u16;
+pub type int = i32;
+pub type uint = u32;
+pub type long = i32;
+pub type ulong = u32;
+pub type longlong = i64;
+pub type ulonglong = u64;
+
+// libc stdint types
+pub type int8_t = i8;
+pub type uint8_t = u8;
+pub type int16_t = i16;
+pub type uint16_t = u16;
+pub type int32_t = i32;
+pub type uint32_t = u32;
+pub type int64_t = i64;
+pub type uint64_t = u64;
+pub type intmax_t = i64;
+pub type uintmax_t = u64;
+pub type int_least8_t = i8;
+pub type int_least16_t = i16;
+pub type int_least32_t = i32;
+pub type int_least64_t = i64;
+pub type uint_least8_t = u8;
+pub type uint_least16_t = u16;
+pub type uint_least32_t = u32;
+pub type uint_least64_t = u64;
+pub type int_fast8_t = i8;
+pub type int_fast16_t = i32;
+pub type int_fast32_t = i32;
+pub type int_fast64_t = i64;
+pub type uint_fast8_t = u8;
+pub type uint_fast16_t = u32;
+pub type uint_fast32_t = u32;
+pub type uint_fast64_t = u64;
+pub type size_t = ulong;
+pub type intptr_t = long;
+pub type uintptr_t = ulong;
+pub type wchar_t = i32;
+
+// libc types
+pub type dev_t = u64;
+pub type uid_t = u32;
+pub type gid_t = u32;
+pub type ino_t = u64;
+pub type ino64_t = u64;
+pub type mode_t = u32;
+pub type nlink_t = u64;
+pub type off_t = i64;
+pub type off64_t = i64;
+pub type pid_t = i32;
+pub type clock_t = i64;
+pub type rlim_t = u64;
+pub type rlim64_t = u64;
+pub type id_t = u32;
+pub type time_t = i64;
+pub type useconds_t = u32;
+pub type suseconds_t = i64;
+pub type daddr_t = i32;
+pub type key_t = i32;
+pub type clockid_t = i32;
+pub type timer_t = uintptr_t; // *mut ::std::os::raw::c_void
+pub type blksize_t = i64;
+pub type blkcnt_t = i64;
+pub type blkcnt64_t = i64;
+pub type fsblkcnt_t = u64;
+pub type fsblkcnt64_t = u64;
+pub type fsfilcnt_t = u64;
+pub type fsfilcnt64_t = u64;
+pub type fsword_t = i64;
+pub type ssize_t = i32;
+pub type loff_t = off64_t;
+pub type caddr_t = uintptr_t; // *mut i8
+pub type socklen_t = u32;
+pub type sig_atomic_t = i32;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct fsid_t {
+ pub __val: [i32; 2usize],
+}
+#[allow(non_snake_case)]
+#[test]
+fn bindgen_test_layout_fsid_t() {
+ assert_eq!(
+ ::std::mem::size_of::<fsid_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(fsid_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<fsid_t>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(fsid_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<fsid_t>())).__val as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(fsid_t),
+ "::",
+ stringify!(__val)
+ )
+ );
+}
+
+// WASI types
+pub type __wasi_advice_t = u8;
+pub type __wasi_clockid_t = u32;
+pub type __wasi_device_t = u64;
+pub type __wasi_dircookie_t = u64;
+pub type __wasi_errno_t = u16;
+pub type __wasi_eventrwflags_t = u16;
+pub type __wasi_eventtype_t = u8;
+pub type __wasi_exitcode_t = u32;
+pub type __wasi_fd_t = u32;
+pub type __wasi_fdflags_t = u16;
+pub type __wasi_fdsflags_t = u16;
+pub type __wasi_filedelta_t = i64;
+pub type __wasi_filesize_t = u64;
+pub type __wasi_filetype_t = u8;
+pub type __wasi_preopentype_t = u8;
+pub type __wasi_fstflags_t = u16;
+pub type __wasi_inode_t = u64;
+pub type __wasi_linkcount_t = u32;
+pub type __wasi_lookupflags_t = u32;
+pub type __wasi_oflags_t = u16;
+pub type __wasi_riflags_t = u16;
+pub type __wasi_rights_t = u64;
+pub type __wasi_roflags_t = u16;
+pub type __wasi_sdflags_t = u8;
+pub type __wasi_siflags_t = u16;
+pub type __wasi_signal_t = u8;
+pub type __wasi_subclockflags_t = u16;
+pub type __wasi_timestamp_t = u64;
+pub type __wasi_userdata_t = u64;
+pub type __wasi_whence_t = u8;
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __wasi_dirent_t {
+ pub d_next: __wasi_dircookie_t,
+ pub d_ino: __wasi_inode_t,
+ pub d_namlen: u32,
+ pub d_type: __wasi_filetype_t,
+ pub __bindgen_padding_0: [u8; 3usize],
+}
+#[test]
+fn bindgen_test_layout_wasi_dirent_t() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_dirent_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(__wasi_dirent_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_dirent_t>())).d_next as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_dirent_t),
+ "::",
+ stringify!(d_next)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_dirent_t>())).d_ino as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_dirent_t),
+ "::",
+ stringify!(d_ino)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_dirent_t>())).d_namlen as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_dirent_t),
+ "::",
+ stringify!(d_namlen)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_dirent_t>())).d_type as *const _ as usize },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_dirent_t),
+ "::",
+ stringify!(d_type)
+ )
+ );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __wasi_event_t {
+ pub userdata: __wasi_userdata_t,
+ pub error: __wasi_errno_t,
+ pub type_: __wasi_eventtype_t,
+ pub __bindgen_padding_0: u32,
+ pub __bindgen_anon_1: __wasi_event_t__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __wasi_prestat_t {
+ pub pr_type: __wasi_preopentype_t,
+ pub u: __wasi_prestat_t___wasi_prestat_u,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __wasi_prestat_t___wasi_prestat_u {
+ pub dir: __wasi_prestat_t___wasi_prestat_u___wasi_prestat_u_dir_t,
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __wasi_prestat_t___wasi_prestat_u___wasi_prestat_u_dir_t {
+ pub pr_name_len: size_t,
+}
+#[test]
+fn bindgen_test_layout___wasi_prestat_t___wasi_prestat_u___wasi_prestat_u_dir_t() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_prestat_t___wasi_prestat_u___wasi_prestat_u_dir_t>(),
+ 4usize,
+ concat!(
+ "Size of: ",
+ stringify!(__wasi_prestat_t___wasi_prestat_u___wasi_prestat_u_dir_t)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<__wasi_prestat_t___wasi_prestat_u___wasi_prestat_u_dir_t>(),
+ 4usize,
+ concat!(
+ "Alignment of ",
+ stringify!(__wasi_prestat_t___wasi_prestat_u___wasi_prestat_u_dir_t)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_prestat_t___wasi_prestat_u___wasi_prestat_u_dir_t>()))
+ .pr_name_len as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_prestat_t___wasi_prestat_u___wasi_prestat_u_dir_t),
+ "::",
+ stringify!(pr_name_len)
+ )
+ );
+}
+#[test]
+fn bindgen_test_layout___wasi_prestat_t___wasi_prestat_u() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_prestat_t___wasi_prestat_u>(),
+ 4usize,
+ concat!("Size of: ", stringify!(__wasi_prestat_t___wasi_prestat_u))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<__wasi_prestat_t___wasi_prestat_u>(),
+ 4usize,
+ concat!(
+ "Alignment of ",
+ stringify!(__wasi_prestat_t___wasi_prestat_u)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_prestat_t___wasi_prestat_u>())).dir as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_prestat_t___wasi_prestat_u),
+ "::",
+ stringify!(dir)
+ )
+ );
+}
+#[test]
+fn bindgen_test_layout___wasi_prestat_t() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_prestat_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(__wasi_prestat_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<__wasi_prestat_t>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(__wasi_prestat_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_prestat_t>())).pr_type as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_prestat_t),
+ "::",
+ stringify!(pr_type)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_prestat_t>())).u as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_prestat_t),
+ "::",
+ stringify!(u)
+ )
+ );
+}
+#[allow(non_snake_case)]
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __wasi_event_t__bindgen_ty_1 {
+ pub fd_readwrite: __wasi_event_t__bindgen_ty_1__bindgen_ty_1,
+ _bindgen_union_align: [u64; 2usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __wasi_event_t__bindgen_ty_1__bindgen_ty_1 {
+ pub nbytes: __wasi_filesize_t,
+ pub flags: __wasi_eventrwflags_t,
+ pub __bindgen_padding_0: [u16; 3usize],
+}
+#[allow(non_snake_case)]
+#[test]
+fn bindgen_test_layout_wasi_event_t__bindgen_ty_1__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_event_t__bindgen_ty_1__bindgen_ty_1>(),
+ 16usize,
+ concat!(
+ "Size of: ",
+ stringify!(__wasi_event_t__bindgen_ty_1__bindgen_ty_1)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_event_t__bindgen_ty_1__bindgen_ty_1>())).nbytes
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_event_t__bindgen_ty_1__bindgen_ty_1),
+ "::",
+ stringify!(nbytes)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_event_t__bindgen_ty_1__bindgen_ty_1>())).flags as *const _
+ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_event_t__bindgen_ty_1__bindgen_ty_1),
+ "::",
+ stringify!(flags)
+ )
+ );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __wasi_event_t__bindgen_ty_1__bindgen_ty_2 {
+ pub signal: __wasi_signal_t,
+ pub exitcode: __wasi_exitcode_t,
+}
+#[allow(non_snake_case)]
+#[test]
+fn bindgen_test_layout_wasi_event_t__bindgen_ty_1__bindgen_ty_2() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_event_t__bindgen_ty_1__bindgen_ty_2>(),
+ 8usize,
+ concat!(
+ "Size of: ",
+ stringify!(__wasi_event_t__bindgen_ty_1__bindgen_ty_2)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<__wasi_event_t__bindgen_ty_1__bindgen_ty_2>(),
+ 4usize,
+ concat!(
+ "Alignment of ",
+ stringify!(__wasi_event_t__bindgen_ty_1__bindgen_ty_2)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_event_t__bindgen_ty_1__bindgen_ty_2>())).signal
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_event_t__bindgen_ty_1__bindgen_ty_2),
+ "::",
+ stringify!(signal)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_event_t__bindgen_ty_1__bindgen_ty_2>())).exitcode
+ as *const _ as usize
+ },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_event_t__bindgen_ty_1__bindgen_ty_2),
+ "::",
+ stringify!(exitcode)
+ )
+ );
+}
+#[allow(non_snake_case)]
+#[test]
+fn bindgen_test_layout_wasi_event_t__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_event_t__bindgen_ty_1>(),
+ 16usize,
+ concat!("Size of: ", stringify!(__wasi_event_t__bindgen_ty_1))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_event_t__bindgen_ty_1>())).fd_readwrite as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_event_t__bindgen_ty_1),
+ "::",
+ stringify!(fd_readwrite)
+ )
+ );
+}
+#[test]
+fn bindgen_test_layout_wasi_event_t() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_event_t>(),
+ 32usize,
+ concat!("Size of: ", stringify!(__wasi_event_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_event_t>())).userdata as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_event_t),
+ "::",
+ stringify!(userdata)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_event_t>())).error as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_event_t),
+ "::",
+ stringify!(error)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_event_t>())).type_ as *const _ as usize },
+ 10usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_event_t),
+ "::",
+ stringify!(type_)
+ )
+ );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __wasi_fdstat_t {
+ pub fs_filetype: __wasi_filetype_t,
+ pub fs_flags: __wasi_fdflags_t,
+ pub __bindgen_padding_0: u32,
+ pub fs_rights_base: __wasi_rights_t,
+ pub fs_rights_inheriting: __wasi_rights_t,
+}
+#[test]
+fn bindgen_test_layout_wasi_fdstat_t() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_fdstat_t>(),
+ 24usize,
+ concat!("Size of: ", stringify!(__wasi_fdstat_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_fdstat_t>())).fs_filetype as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_fdstat_t),
+ "::",
+ stringify!(fs_filetype)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_fdstat_t>())).fs_flags as *const _ as usize },
+ 2usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_fdstat_t),
+ "::",
+ stringify!(fs_flags)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_fdstat_t>())).fs_rights_base as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_fdstat_t),
+ "::",
+ stringify!(fs_rights_base)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_fdstat_t>())).fs_rights_inheriting as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_fdstat_t),
+ "::",
+ stringify!(fs_rights_inheriting)
+ )
+ );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __wasi_filestat_t {
+ pub st_dev: __wasi_device_t,
+ pub st_ino: __wasi_inode_t,
+ pub st_filetype: __wasi_filetype_t,
+ pub st_nlink: __wasi_linkcount_t,
+ pub st_size: __wasi_filesize_t,
+ pub st_atim: __wasi_timestamp_t,
+ pub st_mtim: __wasi_timestamp_t,
+ pub st_ctim: __wasi_timestamp_t,
+}
+#[test]
+fn bindgen_test_layout_wasi_filestat_t() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_filestat_t>(),
+ 56usize,
+ concat!("Size of: ", stringify!(__wasi_filestat_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_filestat_t>())).st_dev as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_filestat_t),
+ "::",
+ stringify!(st_dev)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_filestat_t>())).st_ino as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_filestat_t),
+ "::",
+ stringify!(st_ino)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_filestat_t>())).st_filetype as *const _ as usize },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_filestat_t),
+ "::",
+ stringify!(st_filetype)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_filestat_t>())).st_nlink as *const _ as usize },
+ 20usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_filestat_t),
+ "::",
+ stringify!(st_nlink)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_filestat_t>())).st_size as *const _ as usize },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_filestat_t),
+ "::",
+ stringify!(st_size)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_filestat_t>())).st_atim as *const _ as usize },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_filestat_t),
+ "::",
+ stringify!(st_atim)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_filestat_t>())).st_mtim as *const _ as usize },
+ 40usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_filestat_t),
+ "::",
+ stringify!(st_mtim)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_filestat_t>())).st_ctim as *const _ as usize },
+ 48usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_filestat_t),
+ "::",
+ stringify!(st_ctim)
+ )
+ );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __wasi_ciovec_t {
+ pub buf: uintptr_t, // *const ::std::os::raw::c_void
+ pub buf_len: size_t,
+}
+#[test]
+fn bindgen_test_layout_wasi_ciovec_t() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_ciovec_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(__wasi_ciovec_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<__wasi_ciovec_t>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(__wasi_ciovec_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_ciovec_t>())).buf as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_ciovec_t),
+ "::",
+ stringify!(buf)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_ciovec_t>())).buf_len as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_ciovec_t),
+ "::",
+ stringify!(buf_len)
+ )
+ );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __wasi_iovec_t {
+ pub buf: uintptr_t, // *mut ::std::os::raw::c_void
+ pub buf_len: size_t,
+}
+#[test]
+fn bindgen_test_layout_wasi_iovec_t() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_iovec_t>(),
+ 8usize,
+ concat!("Size of: ", stringify!(__wasi_iovec_t))
+ );
+ assert_eq!(
+ ::std::mem::align_of::<__wasi_iovec_t>(),
+ 4usize,
+ concat!("Alignment of ", stringify!(__wasi_iovec_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_iovec_t>())).buf as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_iovec_t),
+ "::",
+ stringify!(buf)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_iovec_t>())).buf_len as *const _ as usize },
+ 4usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_iovec_t),
+ "::",
+ stringify!(buf_len)
+ )
+ );
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub struct __wasi_subscription_t {
+ pub userdata: __wasi_userdata_t,
+ pub type_: __wasi_eventtype_t,
+ pub __bindgen_padding_0: u32,
+ pub __bindgen_anon_1: __wasi_subscription_t__bindgen_ty_1,
+}
+#[repr(C)]
+#[derive(Copy, Clone)]
+pub union __wasi_subscription_t__bindgen_ty_1 {
+ pub clock: __wasi_subscription_t__bindgen_ty_1__bindgen_ty_1,
+ pub fd_readwrite: __wasi_subscription_t__bindgen_ty_1__bindgen_ty_3,
+ _bindgen_union_align: [u64; 5usize],
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __wasi_subscription_t__bindgen_ty_1__bindgen_ty_1 {
+ pub identifier: __wasi_userdata_t,
+ pub clock_id: __wasi_clockid_t,
+ pub __bindgen_padding_0: u32,
+ pub timeout: __wasi_timestamp_t,
+ pub precision: __wasi_timestamp_t,
+ pub flags: __wasi_subclockflags_t,
+ pub __bindgen_padding_1: [u16; 3usize],
+}
+#[allow(non_snake_case)]
+#[test]
+fn bindgen_test_layout_wasi_subscription_t__bindgen_ty_1__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_subscription_t__bindgen_ty_1__bindgen_ty_1>(),
+ 40usize,
+ concat!(
+ "Size of: ",
+ stringify!(__wasi_subscription_t__bindgen_ty_1__bindgen_ty_1)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_subscription_t__bindgen_ty_1__bindgen_ty_1>())).identifier
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_subscription_t__bindgen_ty_1__bindgen_ty_1),
+ "::",
+ stringify!(identifier)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_subscription_t__bindgen_ty_1__bindgen_ty_1>())).clock_id
+ as *const _ as usize
+ },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_subscription_t__bindgen_ty_1__bindgen_ty_1),
+ "::",
+ stringify!(clock_id)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_subscription_t__bindgen_ty_1__bindgen_ty_1>())).timeout
+ as *const _ as usize
+ },
+ 16usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_subscription_t__bindgen_ty_1__bindgen_ty_1),
+ "::",
+ stringify!(timeout)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_subscription_t__bindgen_ty_1__bindgen_ty_1>())).precision
+ as *const _ as usize
+ },
+ 24usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_subscription_t__bindgen_ty_1__bindgen_ty_1),
+ "::",
+ stringify!(precision)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_subscription_t__bindgen_ty_1__bindgen_ty_1>())).flags
+ as *const _ as usize
+ },
+ 32usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_subscription_t__bindgen_ty_1__bindgen_ty_1),
+ "::",
+ stringify!(flags)
+ )
+ );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __wasi_subscription_t__bindgen_ty_1__bindgen_ty_3 {
+ pub fd: __wasi_fd_t,
+}
+#[allow(non_snake_case)]
+#[test]
+fn bindgen_test_layout_wasi_subscription_t__bindgen_ty_1__bindgen_ty_3() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_subscription_t__bindgen_ty_1__bindgen_ty_3>(),
+ 4usize,
+ concat!(
+ "Size of: ",
+ stringify!(__wasi_subscription_t__bindgen_ty_1__bindgen_ty_3)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<__wasi_subscription_t__bindgen_ty_1__bindgen_ty_3>(),
+ 4usize,
+ concat!(
+ "Alignment of ",
+ stringify!(__wasi_subscription_t__bindgen_ty_1__bindgen_ty_3)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_subscription_t__bindgen_ty_1__bindgen_ty_3>())).fd
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_subscription_t__bindgen_ty_1__bindgen_ty_3),
+ "::",
+ stringify!(fd)
+ )
+ );
+}
+#[repr(C)]
+#[derive(Debug, Copy, Clone)]
+pub struct __wasi_subscription_t__bindgen_ty_1__bindgen_ty_5 {
+ pub fd: __wasi_fd_t,
+}
+#[allow(non_snake_case)]
+#[test]
+fn bindgen_test_layout_wasi_subscription_t__bindgen_ty_1__bindgen_ty_5() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_subscription_t__bindgen_ty_1__bindgen_ty_5>(),
+ 4usize,
+ concat!(
+ "Size of: ",
+ stringify!(__wasi_subscription_t__bindgen_ty_1__bindgen_ty_5)
+ )
+ );
+ assert_eq!(
+ ::std::mem::align_of::<__wasi_subscription_t__bindgen_ty_1__bindgen_ty_5>(),
+ 4usize,
+ concat!(
+ "Alignment of ",
+ stringify!(__wasi_subscription_t__bindgen_ty_1__bindgen_ty_5)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_subscription_t__bindgen_ty_1__bindgen_ty_5>())).fd
+ as *const _ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_subscription_t__bindgen_ty_1__bindgen_ty_5),
+ "::",
+ stringify!(fd)
+ )
+ );
+}
+#[allow(non_snake_case)]
+#[test]
+fn bindgen_test_layout_wasi_subscription_t__bindgen_ty_1() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_subscription_t__bindgen_ty_1>(),
+ 40usize,
+ concat!("Size of: ", stringify!(__wasi_subscription_t__bindgen_ty_1))
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_subscription_t__bindgen_ty_1>())).clock as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_subscription_t__bindgen_ty_1),
+ "::",
+ stringify!(clock)
+ )
+ );
+ assert_eq!(
+ unsafe {
+ &(*(::std::ptr::null::<__wasi_subscription_t__bindgen_ty_1>())).fd_readwrite as *const _
+ as usize
+ },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_subscription_t__bindgen_ty_1),
+ "::",
+ stringify!(fd_readwrite)
+ )
+ );
+}
+#[allow(non_snake_case)]
+#[test]
+fn bindgen_test_layout_wasi_subscription_t() {
+ assert_eq!(
+ ::std::mem::size_of::<__wasi_subscription_t>(),
+ 56usize,
+ concat!("Size of: ", stringify!(__wasi_subscription_t))
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_subscription_t>())).userdata as *const _ as usize },
+ 0usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_subscription_t),
+ "::",
+ stringify!(userdata)
+ )
+ );
+ assert_eq!(
+ unsafe { &(*(::std::ptr::null::<__wasi_subscription_t>())).type_ as *const _ as usize },
+ 8usize,
+ concat!(
+ "Offset of field: ",
+ stringify!(__wasi_subscription_t),
+ "::",
+ stringify!(type_)
+ )
+ );
+}
+
+pub fn strerror(errno: __wasi_errno_t) -> &'static str {
+ match errno {
+ __WASI_ESUCCESS => "__WASI_ESUCCESS",
+ __WASI_E2BIG => "__WASI_E2BIG",
+ __WASI_EACCES => "__WASI_EACCES",
+ __WASI_EADDRINUSE => "__WASI_EADDRINUSE",
+ __WASI_EADDRNOTAVAIL => "__WASI_EADDRNOTAVAIL",
+ __WASI_EAFNOSUPPORT => "__WASI_EAFNOSUPPORT",
+ __WASI_EAGAIN => "__WASI_EAGAIN",
+ __WASI_EALREADY => "__WASI_EALREADY",
+ __WASI_EBADF => "__WASI_EBADF",
+ __WASI_EBADMSG => "__WASI_EBADMSG",
+ __WASI_EBUSY => "__WASI_EBUSY",
+ __WASI_ECANCELED => "__WASI_ECANCELED",
+ __WASI_ECHILD => "__WASI_ECHILD",
+ __WASI_ECONNABORTED => "__WASI_ECONNABORTED",
+ __WASI_ECONNREFUSED => "__WASI_ECONNREFUSED",
+ __WASI_ECONNRESET => "__WASI_ECONNRESET",
+ __WASI_EDEADLK => "__WASI_EDEADLK",
+ __WASI_EDESTADDRREQ => "__WASI_EDESTADDRREQ",
+ __WASI_EDOM => "__WASI_EDOM",
+ __WASI_EDQUOT => "__WASI_EDQUOT",
+ __WASI_EEXIST => "__WASI_EEXIST",
+ __WASI_EFAULT => "__WASI_EFAULT",
+ __WASI_EFBIG => "__WASI_EFBIG",
+ __WASI_EHOSTUNREACH => "__WASI_EHOSTUNREACH",
+ __WASI_EIDRM => "__WASI_EIDRM",
+ __WASI_EILSEQ => "__WASI_EILSEQ",
+ __WASI_EINPROGRESS => "__WASI_EINPROGRESS",
+ __WASI_EINTR => "__WASI_EINTR",
+ __WASI_EINVAL => "__WASI_EINVAL",
+ __WASI_EIO => "__WASI_EIO",
+ __WASI_EISCONN => "__WASI_EISCONN",
+ __WASI_EISDIR => "__WASI_EISDIR",
+ __WASI_ELOOP => "__WASI_ELOOP",
+ __WASI_EMFILE => "__WASI_EMFILE",
+ __WASI_EMLINK => "__WASI_EMLINK",
+ __WASI_EMSGSIZE => "__WASI_EMSGSIZE",
+ __WASI_EMULTIHOP => "__WASI_EMULTIHOP",
+ __WASI_ENAMETOOLONG => "__WASI_ENAMETOOLONG",
+ __WASI_ENETDOWN => "__WASI_ENETDOWN",
+ __WASI_ENETRESET => "__WASI_ENETRESET",
+ __WASI_ENETUNREACH => "__WASI_ENETUNREACH",
+ __WASI_ENFILE => "__WASI_ENFILE",
+ __WASI_ENOBUFS => "__WASI_ENOBUFS",
+ __WASI_ENODEV => "__WASI_ENODEV",
+ __WASI_ENOENT => "__WASI_ENOENT",
+ __WASI_ENOEXEC => "__WASI_ENOEXEC",
+ __WASI_ENOLCK => "__WASI_ENOLCK",
+ __WASI_ENOLINK => "__WASI_ENOLINK",
+ __WASI_ENOMEM => "__WASI_ENOMEM",
+ __WASI_ENOMSG => "__WASI_ENOMSG",
+ __WASI_ENOPROTOOPT => "__WASI_ENOPROTOOPT",
+ __WASI_ENOSPC => "__WASI_ENOSPC",
+ __WASI_ENOSYS => "__WASI_ENOSYS",
+ __WASI_ENOTCONN => "__WASI_ENOTCONN",
+ __WASI_ENOTDIR => "__WASI_ENOTDIR",
+ __WASI_ENOTEMPTY => "__WASI_ENOTEMPTY",
+ __WASI_ENOTRECOVERABLE => "__WASI_ENOTRECOVERABLE",
+ __WASI_ENOTSOCK => "__WASI_ENOTSOCK",
+ __WASI_ENOTSUP => "__WASI_ENOTSUP",
+ __WASI_ENOTTY => "__WASI_ENOTTY",
+ __WASI_ENXIO => "__WASI_ENXIO",
+ __WASI_EOVERFLOW => "__WASI_EOVERFLOW",
+ __WASI_EOWNERDEAD => "__WASI_EOWNERDEAD",
+ __WASI_EPERM => "__WASI_EPERM",
+ __WASI_EPIPE => "__WASI_EPIPE",
+ __WASI_EPROTO => "__WASI_EPROTO",
+ __WASI_EPROTONOSUPPORT => "__WASI_EPROTONOSUPPORT",
+ __WASI_EPROTOTYPE => "__WASI_EPROTOTYPE",
+ __WASI_ERANGE => "__WASI_ERANGE",
+ __WASI_EROFS => "__WASI_EROFS",
+ __WASI_ESPIPE => "__WASI_ESPIPE",
+ __WASI_ESRCH => "__WASI_ESRCH",
+ __WASI_ESTALE => "__WASI_ESTALE",
+ __WASI_ETIMEDOUT => "__WASI_ETIMEDOUT",
+ __WASI_ETXTBSY => "__WASI_ETXTBSY",
+ __WASI_EXDEV => "__WASI_EXDEV",
+ __WASI_ENOTCAPABLE => "__WASI_ENOTCAPABLE",
+ other => panic!("Undefined errno value {:?}", other),
+ }
+}
+
+pub fn whence_to_str(whence: __wasi_whence_t) -> &'static str {
+ match whence {
+ __WASI_WHENCE_CUR => "__WASI_WHENCE_CUR",
+ __WASI_WHENCE_END => "__WASI_WHENCE_END",
+ __WASI_WHENCE_SET => "__WASI_WHENCE_SET",
+ other => panic!("Undefined whence value {:?}", other),
+ }
+}
+
+// libc constants
+pub const INT8_MIN: i32 = -128;
+pub const INT16_MIN: i32 = -32768;
+pub const INT32_MIN: i32 = -2147483648;
+pub const INT8_MAX: u32 = 127;
+pub const INT16_MAX: u32 = 32767;
+pub const INT32_MAX: u32 = 2147483647;
+pub const UINT8_MAX: u32 = 255;
+pub const UINT16_MAX: u32 = 65535;
+pub const UINT32_MAX: u32 = 4294967295;
+pub const INT_LEAST8_MIN: i32 = -128;
+pub const INT_LEAST16_MIN: i32 = -32768;
+pub const INT_LEAST32_MIN: i32 = -2147483648;
+pub const INT_LEAST8_MAX: u32 = 127;
+pub const INT_LEAST16_MAX: u32 = 32767;
+pub const INT_LEAST32_MAX: u32 = 2147483647;
+pub const UINT_LEAST8_MAX: u32 = 255;
+pub const UINT_LEAST16_MAX: u32 = 65535;
+pub const UINT_LEAST32_MAX: u32 = 4294967295;
+pub const INT_FAST8_MIN: i32 = -128;
+pub const INT_FAST16_MIN: i32 = -2147483648;
+pub const INT_FAST32_MIN: i32 = -2147483648;
+pub const INT_FAST8_MAX: u32 = 127;
+pub const INT_FAST16_MAX: u32 = 2147483647;
+pub const INT_FAST32_MAX: u32 = 2147483647;
+pub const UINT_FAST8_MAX: u32 = 255;
+pub const UINT_FAST16_MAX: u32 = 4294967295;
+pub const UINT_FAST32_MAX: u32 = 4294967295;
+pub const INTPTR_MIN: i32 = -2147483648;
+pub const INTPTR_MAX: u32 = 2147483647;
+pub const UINTPTR_MAX: u32 = 4294967295;
+pub const PTRDIFF_MIN: i32 = -2147483648;
+pub const PTRDIFF_MAX: u32 = 2147483647;
+pub const SIG_ATOMIC_MIN: i32 = -2147483648;
+pub const SIG_ATOMIC_MAX: u32 = 2147483647;
+pub const SIZE_MAX: u32 = 4294967295;
+pub const WINT_MIN: i32 = -2147483648;
+pub const WINT_MAX: i32 = 2147483647;
+
+// WASI constants
+pub const __WASI_ADVICE_NORMAL: __wasi_advice_t = 0;
+pub const __WASI_ADVICE_SEQUENTIAL: __wasi_advice_t = 1;
+pub const __WASI_ADVICE_RANDOM: __wasi_advice_t = 2;
+pub const __WASI_ADVICE_WILLNEED: __wasi_advice_t = 3;
+pub const __WASI_ADVICE_DONTNEED: __wasi_advice_t = 4;
+pub const __WASI_ADVICE_NOREUSE: __wasi_advice_t = 5;
+pub const __WASI_CLOCK_REALTIME: __wasi_clockid_t = 0;
+pub const __WASI_CLOCK_MONOTONIC: __wasi_clockid_t = 1;
+pub const __WASI_CLOCK_PROCESS_CPUTIME_ID: __wasi_clockid_t = 2;
+pub const __WASI_CLOCK_THREAD_CPUTIME_ID: __wasi_clockid_t = 3;
+pub const __WASI_DIRCOOKIE_START: __wasi_dircookie_t = 0;
+pub const __WASI_ESUCCESS: __wasi_errno_t = 0;
+pub const __WASI_E2BIG: __wasi_errno_t = 1;
+pub const __WASI_EACCES: __wasi_errno_t = 2;
+pub const __WASI_EADDRINUSE: __wasi_errno_t = 3;
+pub const __WASI_EADDRNOTAVAIL: __wasi_errno_t = 4;
+pub const __WASI_EAFNOSUPPORT: __wasi_errno_t = 5;
+pub const __WASI_EAGAIN: __wasi_errno_t = 6;
+pub const __WASI_EALREADY: __wasi_errno_t = 7;
+pub const __WASI_EBADF: __wasi_errno_t = 8;
+pub const __WASI_EBADMSG: __wasi_errno_t = 9;
+pub const __WASI_EBUSY: __wasi_errno_t = 10;
+pub const __WASI_ECANCELED: __wasi_errno_t = 11;
+pub const __WASI_ECHILD: __wasi_errno_t = 12;
+pub const __WASI_ECONNABORTED: __wasi_errno_t = 13;
+pub const __WASI_ECONNREFUSED: __wasi_errno_t = 14;
+pub const __WASI_ECONNRESET: __wasi_errno_t = 15;
+pub const __WASI_EDEADLK: __wasi_errno_t = 16;
+pub const __WASI_EDESTADDRREQ: __wasi_errno_t = 17;
+pub const __WASI_EDOM: __wasi_errno_t = 18;
+pub const __WASI_EDQUOT: __wasi_errno_t = 19;
+pub const __WASI_EEXIST: __wasi_errno_t = 20;
+pub const __WASI_EFAULT: __wasi_errno_t = 21;
+pub const __WASI_EFBIG: __wasi_errno_t = 22;
+pub const __WASI_EHOSTUNREACH: __wasi_errno_t = 23;
+pub const __WASI_EIDRM: __wasi_errno_t = 24;
+pub const __WASI_EILSEQ: __wasi_errno_t = 25;
+pub const __WASI_EINPROGRESS: __wasi_errno_t = 26;
+pub const __WASI_EINTR: __wasi_errno_t = 27;
+pub const __WASI_EINVAL: __wasi_errno_t = 28;
+pub const __WASI_EIO: __wasi_errno_t = 29;
+pub const __WASI_EISCONN: __wasi_errno_t = 30;
+pub const __WASI_EISDIR: __wasi_errno_t = 31;
+pub const __WASI_ELOOP: __wasi_errno_t = 32;
+pub const __WASI_EMFILE: __wasi_errno_t = 33;
+pub const __WASI_EMLINK: __wasi_errno_t = 34;
+pub const __WASI_EMSGSIZE: __wasi_errno_t = 35;
+pub const __WASI_EMULTIHOP: __wasi_errno_t = 36;
+pub const __WASI_ENAMETOOLONG: __wasi_errno_t = 37;
+pub const __WASI_ENETDOWN: __wasi_errno_t = 38;
+pub const __WASI_ENETRESET: __wasi_errno_t = 39;
+pub const __WASI_ENETUNREACH: __wasi_errno_t = 40;
+pub const __WASI_ENFILE: __wasi_errno_t = 41;
+pub const __WASI_ENOBUFS: __wasi_errno_t = 42;
+pub const __WASI_ENODEV: __wasi_errno_t = 43;
+pub const __WASI_ENOENT: __wasi_errno_t = 44;
+pub const __WASI_ENOEXEC: __wasi_errno_t = 45;
+pub const __WASI_ENOLCK: __wasi_errno_t = 46;
+pub const __WASI_ENOLINK: __wasi_errno_t = 47;
+pub const __WASI_ENOMEM: __wasi_errno_t = 48;
+pub const __WASI_ENOMSG: __wasi_errno_t = 49;
+pub const __WASI_ENOPROTOOPT: __wasi_errno_t = 50;
+pub const __WASI_ENOSPC: __wasi_errno_t = 51;
+pub const __WASI_ENOSYS: __wasi_errno_t = 52;
+pub const __WASI_ENOTCONN: __wasi_errno_t = 53;
+pub const __WASI_ENOTDIR: __wasi_errno_t = 54;
+pub const __WASI_ENOTEMPTY: __wasi_errno_t = 55;
+pub const __WASI_ENOTRECOVERABLE: __wasi_errno_t = 56;
+pub const __WASI_ENOTSOCK: __wasi_errno_t = 57;
+pub const __WASI_ENOTSUP: __wasi_errno_t = 58;
+pub const __WASI_ENOTTY: __wasi_errno_t = 59;
+pub const __WASI_ENXIO: __wasi_errno_t = 60;
+pub const __WASI_EOVERFLOW: __wasi_errno_t = 61;
+pub const __WASI_EOWNERDEAD: __wasi_errno_t = 62;
+pub const __WASI_EPERM: __wasi_errno_t = 63;
+pub const __WASI_EPIPE: __wasi_errno_t = 64;
+pub const __WASI_EPROTO: __wasi_errno_t = 65;
+pub const __WASI_EPROTONOSUPPORT: __wasi_errno_t = 66;
+pub const __WASI_EPROTOTYPE: __wasi_errno_t = 67;
+pub const __WASI_ERANGE: __wasi_errno_t = 68;
+pub const __WASI_EROFS: __wasi_errno_t = 69;
+pub const __WASI_ESPIPE: __wasi_errno_t = 70;
+pub const __WASI_ESRCH: __wasi_errno_t = 71;
+pub const __WASI_ESTALE: __wasi_errno_t = 72;
+pub const __WASI_ETIMEDOUT: __wasi_errno_t = 73;
+pub const __WASI_ETXTBSY: __wasi_errno_t = 74;
+pub const __WASI_EXDEV: __wasi_errno_t = 75;
+pub const __WASI_ENOTCAPABLE: __wasi_errno_t = 76;
+pub const __WASI_EVENT_FD_READWRITE_HANGUP: __wasi_eventrwflags_t = 1;
+pub const __WASI_EVENTTYPE_CLOCK: __wasi_eventtype_t = 0;
+pub const __WASI_EVENTTYPE_FD_READ: __wasi_eventtype_t = 1;
+pub const __WASI_EVENTTYPE_FD_WRITE: __wasi_eventtype_t = 2;
+pub const __WASI_FDFLAG_APPEND: __wasi_fdflags_t = 1;
+pub const __WASI_FDFLAG_DSYNC: __wasi_fdflags_t = 2;
+pub const __WASI_FDFLAG_NONBLOCK: __wasi_fdflags_t = 4;
+pub const __WASI_FDFLAG_RSYNC: __wasi_fdflags_t = 8;
+pub const __WASI_FDFLAG_SYNC: __wasi_fdflags_t = 16;
+pub const __WASI_PREOPENTYPE_DIR: __wasi_preopentype_t = 0;
+pub const __WASI_FILETYPE_UNKNOWN: __wasi_filetype_t = 0;
+pub const __WASI_FILETYPE_BLOCK_DEVICE: __wasi_filetype_t = 1;
+pub const __WASI_FILETYPE_CHARACTER_DEVICE: __wasi_filetype_t = 2;
+pub const __WASI_FILETYPE_DIRECTORY: __wasi_filetype_t = 3;
+pub const __WASI_FILETYPE_REGULAR_FILE: __wasi_filetype_t = 4;
+pub const __WASI_FILETYPE_SOCKET_DGRAM: __wasi_filetype_t = 5;
+pub const __WASI_FILETYPE_SOCKET_STREAM: __wasi_filetype_t = 6;
+pub const __WASI_FILETYPE_SYMBOLIC_LINK: __wasi_filetype_t = 7;
+pub const __WASI_FILESTAT_SET_ATIM: __wasi_fstflags_t = 1;
+pub const __WASI_FILESTAT_SET_ATIM_NOW: __wasi_fstflags_t = 2;
+pub const __WASI_FILESTAT_SET_MTIM: __wasi_fstflags_t = 4;
+pub const __WASI_FILESTAT_SET_MTIM_NOW: __wasi_fstflags_t = 8;
+pub const __WASI_LOOKUP_SYMLINK_FOLLOW: __wasi_lookupflags_t = 1;
+pub const __WASI_O_CREAT: __wasi_oflags_t = 1;
+pub const __WASI_O_DIRECTORY: __wasi_oflags_t = 2;
+pub const __WASI_O_EXCL: __wasi_oflags_t = 4;
+pub const __WASI_O_TRUNC: __wasi_oflags_t = 8;
+pub const __WASI_SOCK_RECV_PEEK: __wasi_riflags_t = 1;
+pub const __WASI_SOCK_RECV_WAITALL: __wasi_riflags_t = 2;
+pub const __WASI_RIGHT_FD_DATASYNC: __wasi_rights_t = 1;
+pub const __WASI_RIGHT_FD_READ: __wasi_rights_t = 2;
+pub const __WASI_RIGHT_FD_SEEK: __wasi_rights_t = 4;
+pub const __WASI_RIGHT_FD_FDSTAT_SET_FLAGS: __wasi_rights_t = 8;
+pub const __WASI_RIGHT_FD_SYNC: __wasi_rights_t = 16;
+pub const __WASI_RIGHT_FD_TELL: __wasi_rights_t = 32;
+pub const __WASI_RIGHT_FD_WRITE: __wasi_rights_t = 64;
+pub const __WASI_RIGHT_FD_ADVISE: __wasi_rights_t = 128;
+pub const __WASI_RIGHT_FD_ALLOCATE: __wasi_rights_t = 256;
+pub const __WASI_RIGHT_PATH_CREATE_DIRECTORY: __wasi_rights_t = 512;
+pub const __WASI_RIGHT_PATH_CREATE_FILE: __wasi_rights_t = 1024;
+pub const __WASI_RIGHT_PATH_LINK_SOURCE: __wasi_rights_t = 2048;
+pub const __WASI_RIGHT_PATH_LINK_TARGET: __wasi_rights_t = 4096;
+pub const __WASI_RIGHT_PATH_OPEN: __wasi_rights_t = 8192;
+pub const __WASI_RIGHT_FD_READDIR: __wasi_rights_t = 16384;
+pub const __WASI_RIGHT_PATH_READLINK: __wasi_rights_t = 32768;
+pub const __WASI_RIGHT_PATH_RENAME_SOURCE: __wasi_rights_t = 65536;
+pub const __WASI_RIGHT_PATH_RENAME_TARGET: __wasi_rights_t = 131072;
+pub const __WASI_RIGHT_PATH_FILESTAT_GET: __wasi_rights_t = 262144;
+pub const __WASI_RIGHT_PATH_FILESTAT_SET_SIZE: __wasi_rights_t = 524288;
+pub const __WASI_RIGHT_PATH_FILESTAT_SET_TIMES: __wasi_rights_t = 1048576;
+pub const __WASI_RIGHT_FD_FILESTAT_GET: __wasi_rights_t = 2097152;
+pub const __WASI_RIGHT_FD_FILESTAT_SET_SIZE: __wasi_rights_t = 4194304;
+pub const __WASI_RIGHT_FD_FILESTAT_SET_TIMES: __wasi_rights_t = 8388608;
+pub const __WASI_RIGHT_PATH_SYMLINK: __wasi_rights_t = 16777216;
+pub const __WASI_RIGHT_PATH_REMOVE_DIRECTORY: __wasi_rights_t = 33554432;
+pub const __WASI_RIGHT_PATH_UNLINK_FILE: __wasi_rights_t = 67108864;
+pub const __WASI_RIGHT_POLL_FD_READWRITE: __wasi_rights_t = 134217728;
+pub const __WASI_RIGHT_SOCK_SHUTDOWN: __wasi_rights_t = 268435456;
+pub const __WASI_SOCK_RECV_DATA_TRUNCATED: __wasi_roflags_t = 1;
+pub const __WASI_SHUT_RD: __wasi_sdflags_t = 1;
+pub const __WASI_SHUT_WR: __wasi_sdflags_t = 2;
+pub const __WASI_SIGHUP: __wasi_signal_t = 1;
+pub const __WASI_SIGINT: __wasi_signal_t = 2;
+pub const __WASI_SIGQUIT: __wasi_signal_t = 3;
+pub const __WASI_SIGILL: __wasi_signal_t = 4;
+pub const __WASI_SIGTRAP: __wasi_signal_t = 5;
+pub const __WASI_SIGABRT: __wasi_signal_t = 6;
+pub const __WASI_SIGBUS: __wasi_signal_t = 7;
+pub const __WASI_SIGFPE: __wasi_signal_t = 8;
+pub const __WASI_SIGKILL: __wasi_signal_t = 9;
+pub const __WASI_SIGUSR1: __wasi_signal_t = 10;
+pub const __WASI_SIGSEGV: __wasi_signal_t = 11;
+pub const __WASI_SIGUSR2: __wasi_signal_t = 12;
+pub const __WASI_SIGPIPE: __wasi_signal_t = 13;
+pub const __WASI_SIGALRM: __wasi_signal_t = 14;
+pub const __WASI_SIGTERM: __wasi_signal_t = 15;
+pub const __WASI_SIGCHLD: __wasi_signal_t = 16;
+pub const __WASI_SIGCONT: __wasi_signal_t = 17;
+pub const __WASI_SIGSTOP: __wasi_signal_t = 18;
+pub const __WASI_SIGTSTP: __wasi_signal_t = 19;
+pub const __WASI_SIGTTIN: __wasi_signal_t = 20;
+pub const __WASI_SIGTTOU: __wasi_signal_t = 21;
+pub const __WASI_SIGURG: __wasi_signal_t = 22;
+pub const __WASI_SIGXCPU: __wasi_signal_t = 23;
+pub const __WASI_SIGXFSZ: __wasi_signal_t = 24;
+pub const __WASI_SIGVTALRM: __wasi_signal_t = 25;
+pub const __WASI_SIGPROF: __wasi_signal_t = 26;
+pub const __WASI_SIGWINCH: __wasi_signal_t = 27;
+pub const __WASI_SIGPOLL: __wasi_signal_t = 28;
+pub const __WASI_SIGPWR: __wasi_signal_t = 29;
+pub const __WASI_SIGSYS: __wasi_signal_t = 30;
+pub const __WASI_SUBSCRIPTION_CLOCK_ABSTIME: __wasi_subclockflags_t = 1;
+pub const __WASI_WHENCE_CUR: __wasi_whence_t = 0;
+pub const __WASI_WHENCE_END: __wasi_whence_t = 1;
+pub const __WASI_WHENCE_SET: __wasi_whence_t = 2;
+
+pub fn errno_from_nix(errno: nix::errno::Errno) -> __wasi_errno_t {
+ match errno {
+ nix::errno::Errno::EPERM => __WASI_EPERM,
+ nix::errno::Errno::ENOENT => __WASI_ENOENT,
+ nix::errno::Errno::ESRCH => __WASI_ESRCH,
+ nix::errno::Errno::EINTR => __WASI_EINTR,
+ nix::errno::Errno::EIO => __WASI_EIO,
+ nix::errno::Errno::ENXIO => __WASI_ENXIO,
+ nix::errno::Errno::E2BIG => __WASI_E2BIG,
+ nix::errno::Errno::ENOEXEC => __WASI_ENOEXEC,
+ nix::errno::Errno::EBADF => __WASI_EBADF,
+ nix::errno::Errno::ECHILD => __WASI_ECHILD,
+ nix::errno::Errno::EAGAIN => __WASI_EAGAIN,
+ nix::errno::Errno::ENOMEM => __WASI_ENOMEM,
+ nix::errno::Errno::EACCES => __WASI_EACCES,
+ nix::errno::Errno::EFAULT => __WASI_EFAULT,
+ nix::errno::Errno::EBUSY => __WASI_EBUSY,
+ nix::errno::Errno::EEXIST => __WASI_EEXIST,
+ nix::errno::Errno::EXDEV => __WASI_EXDEV,
+ nix::errno::Errno::ENODEV => __WASI_ENODEV,
+ nix::errno::Errno::ENOTDIR => __WASI_ENOTDIR,
+ nix::errno::Errno::EISDIR => __WASI_EISDIR,
+ nix::errno::Errno::EINVAL => __WASI_EINVAL,
+ nix::errno::Errno::ENFILE => __WASI_ENFILE,
+ nix::errno::Errno::EMFILE => __WASI_EMFILE,
+ nix::errno::Errno::ENOTTY => __WASI_ENOTTY,
+ nix::errno::Errno::ETXTBSY => __WASI_ETXTBSY,
+ nix::errno::Errno::EFBIG => __WASI_EFBIG,
+ nix::errno::Errno::ENOSPC => __WASI_ENOSPC,
+ nix::errno::Errno::ESPIPE => __WASI_ESPIPE,
+ nix::errno::Errno::EROFS => __WASI_EROFS,
+ nix::errno::Errno::EMLINK => __WASI_EMLINK,
+ nix::errno::Errno::EPIPE => __WASI_EPIPE,
+ nix::errno::Errno::EDOM => __WASI_EDOM,
+ nix::errno::Errno::ERANGE => __WASI_ERANGE,
+ nix::errno::Errno::EDEADLK => __WASI_EDEADLK,
+ nix::errno::Errno::ENAMETOOLONG => __WASI_ENAMETOOLONG,
+ nix::errno::Errno::ENOLCK => __WASI_ENOLCK,
+ nix::errno::Errno::ENOSYS => __WASI_ENOSYS,
+ nix::errno::Errno::ENOTEMPTY => __WASI_ENOTEMPTY,
+ nix::errno::Errno::ELOOP => __WASI_ELOOP,
+ nix::errno::Errno::ENOMSG => __WASI_ENOMSG,
+ nix::errno::Errno::EIDRM => __WASI_EIDRM,
+ nix::errno::Errno::ENOLINK => __WASI_ENOLINK,
+ nix::errno::Errno::EPROTO => __WASI_EPROTO,
+ nix::errno::Errno::EMULTIHOP => __WASI_EMULTIHOP,
+ nix::errno::Errno::EBADMSG => __WASI_EBADMSG,
+ nix::errno::Errno::EOVERFLOW => __WASI_EOVERFLOW,
+ nix::errno::Errno::EILSEQ => __WASI_EILSEQ,
+ nix::errno::Errno::ENOTSOCK => __WASI_ENOTSOCK,
+ nix::errno::Errno::EDESTADDRREQ => __WASI_EDESTADDRREQ,
+ nix::errno::Errno::EMSGSIZE => __WASI_EMSGSIZE,
+ nix::errno::Errno::EPROTOTYPE => __WASI_EPROTOTYPE,
+ nix::errno::Errno::ENOPROTOOPT => __WASI_ENOPROTOOPT,
+ nix::errno::Errno::EPROTONOSUPPORT => __WASI_EPROTONOSUPPORT,
+ nix::errno::Errno::EAFNOSUPPORT => __WASI_EAFNOSUPPORT,
+ nix::errno::Errno::EADDRINUSE => __WASI_EADDRINUSE,
+ nix::errno::Errno::EADDRNOTAVAIL => __WASI_EADDRNOTAVAIL,
+ nix::errno::Errno::ENETDOWN => __WASI_ENETDOWN,
+ nix::errno::Errno::ENETUNREACH => __WASI_ENETUNREACH,
+ nix::errno::Errno::ENETRESET => __WASI_ENETRESET,
+ nix::errno::Errno::ECONNABORTED => __WASI_ECONNABORTED,
+ nix::errno::Errno::ECONNRESET => __WASI_ECONNRESET,
+ nix::errno::Errno::ENOBUFS => __WASI_ENOBUFS,
+ nix::errno::Errno::EISCONN => __WASI_EISCONN,
+ nix::errno::Errno::ENOTCONN => __WASI_ENOTCONN,
+ nix::errno::Errno::ETIMEDOUT => __WASI_ETIMEDOUT,
+ nix::errno::Errno::ECONNREFUSED => __WASI_ECONNREFUSED,
+ nix::errno::Errno::EHOSTUNREACH => __WASI_EHOSTUNREACH,
+ nix::errno::Errno::EALREADY => __WASI_EALREADY,
+ nix::errno::Errno::EINPROGRESS => __WASI_EINPROGRESS,
+ nix::errno::Errno::ESTALE => __WASI_ESTALE,
+ nix::errno::Errno::EDQUOT => __WASI_EDQUOT,
+ nix::errno::Errno::ECANCELED => __WASI_ECANCELED,
+ nix::errno::Errno::EOWNERDEAD => __WASI_EOWNERDEAD,
+ nix::errno::Errno::ENOTRECOVERABLE => __WASI_ENOTRECOVERABLE,
+ _ => __WASI_ENOSYS,
+ }
+}