7#ifndef WASMTIME_CONFIG_H
8#define WASMTIME_CONFIG_H
130#define WASMTIME_CONFIG_PROP(ret, name, ty) \
131 WASM_API_EXTERN ret wasmtime_config_##name##_set(wasm_config_t *, ty);
142WASMTIME_CONFIG_PROP(
void, debug_info,
bool)
151WASMTIME_CONFIG_PROP(
void, consume_fuel,
bool)
167WASMTIME_CONFIG_PROP(
void, epoch_interruption,
bool)
182WASMTIME_CONFIG_PROP(
void, max_wasm_stack,
size_t)
184#ifdef WASMTIME_FEATURE_THREADS
191WASMTIME_CONFIG_PROP(
void, wasm_threads,
bool)
200WASMTIME_CONFIG_PROP(
void, shared_memory,
bool)
207WASMTIME_CONFIG_PROP(
void, wasm_tail_call,
bool)
209#ifdef WASMTIME_FEATURE_GC
217WASMTIME_CONFIG_PROP(
void, wasm_reference_types,
bool)
225WASMTIME_CONFIG_PROP(
void, wasm_function_references,
bool)
232WASMTIME_CONFIG_PROP(
void, wasm_gc,
bool)
242WASMTIME_CONFIG_PROP(
void, gc_support,
bool)
250WASMTIME_CONFIG_PROP(
void, wasm_simd,
bool)
258WASMTIME_CONFIG_PROP(
void, wasm_relaxed_simd,
bool)
266WASMTIME_CONFIG_PROP(
void, wasm_relaxed_simd_deterministic,
bool)
274WASMTIME_CONFIG_PROP(
void, wasm_bulk_memory,
bool)
282WASMTIME_CONFIG_PROP(
void, wasm_multi_value,
bool)
290WASMTIME_CONFIG_PROP(
void, wasm_multi_memory,
bool)
298WASMTIME_CONFIG_PROP(
void, wasm_memory64,
bool)
306WASMTIME_CONFIG_PROP(
void, wasm_wide_arithmetic,
bool)
314WASMTIME_CONFIG_PROP(
void, wasm_branch_hinting,
bool)
316#ifdef WASMTIME_FEATURE_GC
323WASMTIME_CONFIG_PROP(
void, wasm_exceptions,
bool)
333WASMTIME_CONFIG_PROP(
void, wasm_custom_page_sizes,
bool)
341WASMTIME_CONFIG_PROP(
void, wasm_compact_imports,
bool)
343#ifdef WASMTIME_FEATURE_COMPILER
351WASMTIME_CONFIG_PROP(
void, wasm_stack_switching,
bool)
362#ifdef WASMTIME_FEATURE_PARALLEL_COMPILATION
371WASMTIME_CONFIG_PROP(
void, parallel_compilation,
bool)
375#ifdef WASMTIME_FEATURE_COMPILER
385WASMTIME_CONFIG_PROP(
void, cranelift_debug_verifier,
bool)
400WASMTIME_CONFIG_PROP(
void, cranelift_nan_canonicalization,
bool)
415WASMTIME_CONFIG_PROP(
void, cranelift_regalloc_algorithm,
436WASMTIME_CONFIG_PROP(
void, memory_may_move,
bool)
445WASMTIME_CONFIG_PROP(
void, memory_reservation, uint64_t)
453WASMTIME_CONFIG_PROP(
void, memory_guard_size, uint64_t)
462WASMTIME_CONFIG_PROP(
void, memory_reservation_for_growth, uint64_t)
473WASMTIME_CONFIG_PROP(
void, native_unwind_info,
bool)
475#ifdef WASMTIME_FEATURE_CACHE
508#ifdef WASMTIME_FEATURE_COMPILER
546WASMTIME_CONFIG_PROP(
void, macos_use_mach_ports,
bool)
559WASMTIME_CONFIG_PROP(
void, signals_based_traps,
bool)
571 size_t *byte_capacity);
596 void (*finalizer)(
void *);
726WASMTIME_CONFIG_PROP(
void, memory_init_cow,
bool)
728#ifdef WASMTIME_FEATURE_POOLING_ALLOCATOR
753#define WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(name, ty) \
754 WASM_API_EXTERN void wasmtime_pooling_allocation_config_##name##_set( \
755 wasmtime_pooling_allocation_config_t *, ty);
764WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_unused_warm_slots, uint32_t)
772WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(decommit_batch_size,
size_t)
774#ifdef WASMTIME_FEATURE_ASYNC
782WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(async_stack_keep_resident,
size_t)
792WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(linear_memory_keep_resident,
size_t)
801WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(table_keep_resident,
size_t)
810WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(total_component_instances, uint32_t)
819WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_component_instance_size,
size_t)
828WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_core_instances_per_component,
838WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_memories_per_component, uint32_t)
847WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_tables_per_component, uint32_t)
856WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(total_memories, uint32_t)
864WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(total_tables, uint32_t)
866#ifdef WASMTIME_FEATURE_ASYNC
874WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(total_stacks, uint32_t)
884WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(total_core_instances, uint32_t)
893WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_core_instance_size,
size_t)
901WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_tables_per_module, uint32_t)
910WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(table_elements,
size_t)
919WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_memories_per_module, uint32_t)
927WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_memory_size,
size_t)
935WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(total_gc_heaps, uint32_t)
950#ifdef WASMTIME_FEATURE_COMPONENT_MODEL
959WASMTIME_CONFIG_PROP(
void, wasm_component_model,
bool)
968WASMTIME_CONFIG_PROP(
void, concurrency_support,
bool)
977WASMTIME_CONFIG_PROP(
void, wasm_component_model_map,
bool)
987WASMTIME_CONFIG_PROP(
void, wasm_component_model_implements,
bool)
996WASMTIME_CONFIG_PROP(
void, wasm_component_model_canonical_names,
bool)
1005WASMTIME_CONFIG_PROP(
void, wasm_component_model_accessors,
bool)
1009#ifdef WASMTIME_FEATURE_COMPONENT_MODEL_ASYNC
1018WASMTIME_CONFIG_PROP(
void, wasm_component_model_async,
bool)
1027WASMTIME_CONFIG_PROP(
void, wasm_component_model_more_async_builtins,
bool)
1036WASMTIME_CONFIG_PROP(
void, wasm_component_model_async_stackful,
bool)
Build-time defines for how the C API was built.
wasmtime_memory_kind_enum
Kinds of memory that a custom memory creator may be asked to create.
Definition: config.h:611
@ WASMTIME_MEMORY_KIND_GC_HEAP
Definition: config.h:628
@ WASMTIME_MEMORY_KIND_LINEAR_MEMORY
A standard WebAssembly linear memory (module or host).
Definition: config.h:613
struct wasmtime_memory_creator wasmtime_memory_creator_t
WASM_API_EXTERN wasmtime_error_t * wasmtime_config_cache_config_load(wasm_config_t *, const char *)
Enables Wasmtime's cache and loads configuration from the specified path.
struct wasmtime_linear_memory wasmtime_linear_memory_t
WASM_API_EXTERN void wasmtime_pooling_allocation_strategy_set(wasm_config_t *, const wasmtime_pooling_allocation_config_t *)
Sets the Wasmtime allocation strategy to use the pooling allocator. It does not take ownership of the...
uint8_t wasmtime_strategy_t
Specifier for how Wasmtime will compile code, values are in wasmtime_strategy_enum.
Definition: config.h:22
WASM_API_EXTERN wasmtime_pooling_allocation_config_t * wasmtime_pooling_allocation_config_new()
Creates a new pooling allocation configuration object. Must be deallocated with a call to wasmtime_po...
WASM_API_EXTERN void wasmtime_pooling_allocation_config_delete(wasmtime_pooling_allocation_config_t *)
Deallocates a pooling allocation configuration object created with a call to wasmtime_pooling_allocat...
WASM_API_EXTERN void wasmtime_config_cranelift_flag_enable(wasm_config_t *, const char *)
Enables a target-specific flag in Cranelift.
uint8_t wasmtime_profiling_strategy_t
Different ways wasmtime can enable profiling JIT code.
Definition: config.h:73
WASM_API_EXTERN void wasmtime_config_cranelift_flag_set(wasm_config_t *, const char *key, const char *value)
Sets a target-specific flag in Cranelift to the specified value.
wasmtime_regalloc_algorithm_enum
Different ways to allocate registers.
Definition: config.h:109
@ WASMTIME_REGALLOC_BACKTRACKING
Definition: config.h:116
@ WASMTIME_REGALLOC_SINGLE_PASS
Definition: config.h:127
wasmtime_profiling_strategy_enum
Different ways to profile JIT code.
Definition: config.h:80
@ WASMTIME_PROFILING_STRATEGY_VTUNE
Definition: config.h:90
@ WASMTIME_PROFILING_STRATEGY_PERFMAP
Definition: config.h:94
@ WASMTIME_PROFILING_STRATEGY_NONE
No profiling is enabled at runtime.
Definition: config.h:82
@ WASMTIME_PROFILING_STRATEGY_JITDUMP
Definition: config.h:85
wasmtime_strategy_enum
Different ways that Wasmtime can compile WebAssembly.
Definition: config.h:29
@ WASMTIME_STRATEGY_CRANELIFT
Definition: config.h:36
@ WASMTIME_STRATEGY_WINCH
Definition: config.h:43
@ WASMTIME_STRATEGY_AUTO
Definition: config.h:32
uint8_t *(* wasmtime_memory_get_callback_t)(void *env, size_t *byte_size, size_t *byte_capacity)
Definition: config.h:570
wasmtime_error_t *(* wasmtime_new_memory_callback_t)(void *env, const wasmtime_memory_request_t *request, wasmtime_linear_memory_t *memory_ret)
Definition: config.h:672
wasmtime_opt_level_enum
Different ways Wasmtime can optimize generated code.
Definition: config.h:58
@ WASMTIME_OPT_LEVEL_SPEED_AND_SIZE
Definition: config.h:65
@ WASMTIME_OPT_LEVEL_NONE
Generated code will not be optimized at all.
Definition: config.h:60
@ WASMTIME_OPT_LEVEL_SPEED
Generated code will be optimized purely for speed.
Definition: config.h:62
uint8_t wasmtime_opt_level_t
Specifier of what optimization level to use for generated JIT code.
Definition: config.h:51
struct wasmtime_memory_request wasmtime_memory_request_t
Parameters of a request to create a new linear memory.
uint8_t wasmtime_regalloc_algorithm_t
Different ways Cranelift can allocate registers.
Definition: config.h:102
WASM_API_EXTERN void wasmtime_config_host_memory_creator_set(wasm_config_t *, wasmtime_memory_creator_t *)
uint8_t wasmtime_memory_kind_t
The kind of memory a wasmtime_new_memory_callback_t is asked to create, values are in wasmtime_memory...
Definition: config.h:603
wasmtime_error_t *(* wasmtime_memory_grow_callback_t)(void *env, size_t new_size)
Definition: config.h:579
struct wasmtime_pooling_allocation_config_t wasmtime_pooling_allocation_config_t
A type containing configuration options for the pooling allocator.
Definition: config.h:736
Definition and accessors of wasmtime_error_t.
Global engine configuration.
An opaque object representing the type of a memory.
Errors generated by Wasmtime.
wasmtime_memory_get_callback_t get_memory
Callback to get the memory and size of this LinearMemory.
Definition: config.h:592
void * env
User provided value to be passed to get_memory and grow_memory.
Definition: config.h:590
wasmtime_memory_grow_callback_t grow_memory
Callback to request growing the memory.
Definition: config.h:594
void(* finalizer)(void *)
An optional finalizer for env.
Definition: config.h:689
wasmtime_new_memory_callback_t new_memory
The callback to create new memory, must be thread safe.
Definition: config.h:687
void * env
User provided value to be passed to new_memory.
Definition: config.h:685
Parameters of a request to create a new linear memory.
Definition: config.h:641
size_t minimum
Minimum size of the memory, in bytes.
Definition: config.h:645
size_t maximum
Maximum size of the memory, in bytes, or SIZE_MAX if unbounded.
Definition: config.h:647
size_t reserved_size_in_bytes
Definition: config.h:650
const wasm_memorytype_t * ty
The type of memory being created.
Definition: config.h:643
wasmtime_memory_kind_t kind
The kind of memory being created, see wasmtime_memory_kind_enum.
Definition: config.h:655
size_t guard_size_in_bytes
Definition: config.h:653