wasmtime_environ/
component.rs1pub const MAX_FLAT_PARAMS: usize = 16;
34
35pub const MAX_FLAT_RESULTS: usize = 1;
39
40mod artifacts;
41mod info;
42mod names;
43mod types;
44mod vmcomponent_offsets;
45pub use self::artifacts::*;
46pub use self::info::*;
47pub use self::names::*;
48pub use self::types::*;
49pub use self::vmcomponent_offsets::*;
50
51#[cfg(feature = "compile")]
52mod compiler;
53#[cfg(feature = "compile")]
54pub mod dfg;
55#[cfg(feature = "compile")]
56mod translate;
57#[cfg(feature = "compile")]
58mod types_builder;
59#[cfg(feature = "compile")]
60pub use self::compiler::*;
61#[cfg(feature = "compile")]
62pub use self::translate::*;
63#[cfg(feature = "compile")]
64pub use self::types_builder::*;
65
66#[macro_export]
69macro_rules! foreach_builtin_component_function {
70 ($mac:ident) => {
71 $mac! {
72 resource_new32(vmctx: vmctx, resource: u32, rep: u32) -> u64;
73 resource_rep32(vmctx: vmctx, resource: u32, idx: u32) -> u64;
74
75 resource_drop(vmctx: vmctx, resource: u32, idx: u32) -> u64;
80
81 resource_transfer_own(vmctx: vmctx, src_idx: u32, src_table: u32, dst_table: u32) -> u64;
82 resource_transfer_borrow(vmctx: vmctx, src_idx: u32, src_table: u32, dst_table: u32) -> u64;
83 resource_enter_call(vmctx: vmctx);
84 resource_exit_call(vmctx: vmctx) -> bool;
85
86 future_transfer(vmctx: vmctx, src_idx: u32, src_table: u32, dst_table: u32) -> u64;
87 stream_transfer(vmctx: vmctx, src_idx: u32, src_table: u32, dst_table: u32) -> u64;
88 error_context_transfer(vmctx: vmctx, src_idx: u32, src_table: u32, dst_table: u32) -> u64;
89
90 trap(vmctx: vmctx, code: u8);
91
92 utf8_to_utf8(src: ptr_u8, len: size, dst: ptr_u8) -> bool;
93 utf16_to_utf16(src: ptr_u16, len: size, dst: ptr_u16) -> bool;
94 latin1_to_latin1(src: ptr_u8, len: size, dst: ptr_u8) -> bool;
95 latin1_to_utf16(src: ptr_u8, len: size, dst: ptr_u16) -> bool;
96 utf8_to_utf16(src: ptr_u8, len: size, dst: ptr_u16) -> size;
97 utf16_to_utf8(src: ptr_u16, src_len: size, dst: ptr_u8, dst_len: size, ret2: ptr_size) -> size;
98 latin1_to_utf8(src: ptr_u8, src_len: size, dst: ptr_u8, dst_len: size, ret2: ptr_size) -> size;
99 utf16_to_compact_probably_utf16(src: ptr_u16, len: size, dst: ptr_u16) -> size;
100 utf8_to_latin1(src: ptr_u8, len: size, dst: ptr_u8, ret2: ptr_size) -> size;
101 utf16_to_latin1(src: ptr_u16, len: size, dst: ptr_u8, ret2: ptr_size) -> size;
102 utf8_to_compact_utf16(src: ptr_u8, src_len: size, dst: ptr_u16, dst_len: size, bytes_so_far: size) -> size;
103 utf16_to_compact_utf16(src: ptr_u16, src_len: size, dst: ptr_u16, dst_len: size, bytes_so_far: size) -> size;
104 }
105 };
106}
107
108declare_builtin_index!(
110 ComponentBuiltinFunctionIndex,
111 foreach_builtin_component_function
112);