Wasmtime
config.h
Go to the documentation of this file.
1
7#ifndef WASMTIME_CONFIG_H
8#define WASMTIME_CONFIG_H
9
10#include <wasm.h>
11#include <wasmtime/conf.h>
12#include <wasmtime/error.h>
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
22typedef uint8_t wasmtime_strategy_t;
23
29enum wasmtime_strategy_enum { // Strategy
33
37};
38
44typedef uint8_t wasmtime_opt_level_t;
45
51enum wasmtime_opt_level_enum { // OptLevel
59};
60
67
73enum wasmtime_profiling_strategy_enum { // ProfilingStrategy
88};
89
90#define WASMTIME_CONFIG_PROP(ret, name, ty) \
91 WASM_API_EXTERN ret wasmtime_config_##name##_set(wasm_config_t *, ty);
92
102WASMTIME_CONFIG_PROP(void, debug_info, bool)
103
104
111WASMTIME_CONFIG_PROP(void, consume_fuel, bool)
112
127WASMTIME_CONFIG_PROP(void, epoch_interruption, bool)
128
142WASMTIME_CONFIG_PROP(void, max_wasm_stack, size_t)
143
144#ifdef WASMTIME_FEATURE_THREADS
145
153WASMTIME_CONFIG_PROP(void, wasm_threads, bool)
154
155#endif // WASMTIME_FEATURE_THREADS
156
162WASMTIME_CONFIG_PROP(void, wasm_tail_call, bool)
163
164
170WASMTIME_CONFIG_PROP(void, wasm_reference_types, bool)
171
178WASMTIME_CONFIG_PROP(void, wasm_function_references, bool)
179
185WASMTIME_CONFIG_PROP(void, wasm_gc, bool)
186
193WASMTIME_CONFIG_PROP(void, wasm_simd, bool)
194
201WASMTIME_CONFIG_PROP(void, wasm_relaxed_simd, bool)
202
209WASMTIME_CONFIG_PROP(void, wasm_relaxed_simd_deterministic, bool)
210
217WASMTIME_CONFIG_PROP(void, wasm_bulk_memory, bool)
218
225WASMTIME_CONFIG_PROP(void, wasm_multi_value, bool)
226
233WASMTIME_CONFIG_PROP(void, wasm_multi_memory, bool)
234
241WASMTIME_CONFIG_PROP(void, wasm_memory64, bool)
242
249WASMTIME_CONFIG_PROP(void, wasm_wide_arithmetic, bool)
250
251#ifdef WASMTIME_FEATURE_COMPILER
252
259WASMTIME_CONFIG_PROP(void, wasm_stack_switching, bool)
260
261
266WASMTIME_CONFIG_PROP(void, strategy, wasmtime_strategy_t)
267
268#endif // WASMTIME_FEATURE_COMPILER
269
270#ifdef WASMTIME_FEATURE_PARALLEL_COMPILATION
271
279WASMTIME_CONFIG_PROP(void, parallel_compilation, bool)
280
281#endif // WASMTIME_FEATURE_PARALLEL_COMPILATION
282
283#ifdef WASMTIME_FEATURE_COMPILER
284
293WASMTIME_CONFIG_PROP(void, cranelift_debug_verifier, bool)
294
295
308WASMTIME_CONFIG_PROP(void, cranelift_nan_canonicalization, bool)
309
315WASMTIME_CONFIG_PROP(void, cranelift_opt_level, wasmtime_opt_level_t)
316
317#endif // WASMTIME_FEATURE_COMPILER
318
324WASMTIME_CONFIG_PROP(void, profiler, wasmtime_profiling_strategy_t)
325
326
335WASMTIME_CONFIG_PROP(void, memory_may_move, bool)
336
344WASMTIME_CONFIG_PROP(void, memory_reservation, uint64_t)
345
352WASMTIME_CONFIG_PROP(void, memory_guard_size, uint64_t)
353
361WASMTIME_CONFIG_PROP(void, memory_reservation_for_growth, uint64_t)
362
372WASMTIME_CONFIG_PROP(void, native_unwind_info, bool)
373
374#ifdef WASMTIME_FEATURE_CACHE
375
388WASM_API_EXTERN wasmtime_error_t *
390
391#endif // WASMTIME_FEATURE_CACHE
392
405WASMTIME_CONFIG_PROP(wasmtime_error_t *, target, const char *)
406
407#ifdef WASMTIME_FEATURE_COMPILER
408
419 const char *);
420
431 const char *key,
432 const char *value);
433
434#endif // WASMTIME_FEATURE_COMPILER
435
445WASMTIME_CONFIG_PROP(void, macos_use_mach_ports, bool)
446
447
456typedef uint8_t *(*wasmtime_memory_get_callback_t)(void *env, size_t *byte_size,
457 size_t *byte_capacity);
458
466 size_t new_size);
467
476 void *env;
482 void (*finalizer)(void *);
484
496typedef wasmtime_error_t *(*wasmtime_new_memory_callback_t)(
497 void *env, const wasm_memorytype_t *ty, size_t minimum, size_t maximum,
498 size_t reserved_size_in_bytes, size_t guard_size_in_bytes,
499 wasmtime_linear_memory_t *memory_ret);
500
510 void *env;
514 void (*finalizer)(void *);
516
530WASM_API_EXTERN void
533
551WASMTIME_CONFIG_PROP(void, memory_init_cow, bool)
552
553#ifdef WASMTIME_FEATURE_POOLING_ALLOCATOR
554
563
570
577
578#define WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(name, ty) \
579 WASM_API_EXTERN void wasmtime_pooling_allocation_config_##name##_set( \
580 wasmtime_pooling_allocation_config_t *, ty);
581
589WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_unused_warm_slots, uint32_t)
590
591
597WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(decommit_batch_size, size_t)
598
599#ifdef WASMTIME_FEATURE_ASYNC
607WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(async_stack_keep_resident, size_t)
608#endif
609
617WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(linear_memory_keep_resident, size_t)
618
619
626WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(table_keep_resident, size_t)
627
635WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(total_component_instances, uint32_t)
636
644WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_component_instance_size, size_t)
645
653WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_core_instances_per_component,
654 uint32_t)
655
663WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_memories_per_component, uint32_t)
664
672WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_tables_per_component, uint32_t)
673
681WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(total_memories, uint32_t)
682
689WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(total_tables, uint32_t)
690
691#ifdef WASMTIME_FEATURE_ASYNC
699WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(total_stacks, uint32_t)
700#endif
701
709WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(total_core_instances, uint32_t)
710
711
718WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_core_instance_size, size_t)
719
726WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_tables_per_module, uint32_t)
727
735WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(table_elements, size_t)
736
744WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_memories_per_module, uint32_t)
745
752WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(max_memory_size, size_t)
753
760WASMTIME_POOLING_ALLOCATION_CONFIG_PROP(total_gc_heaps, uint32_t)
761
772
773#endif // WASMTIME_FEATURE_POOLING_ALLOCATOR
774
775#ifdef WASMTIME_FEATURE_COMPONENT_MODEL
776
784WASMTIME_CONFIG_PROP(void, wasm_component_model, bool)
785
786#endif // WASMTIME_FEATURE_COMPONENT_MODEL
787
788#ifdef __cplusplus
789} // extern "C"
790#endif
791
792#endif // WASMTIME_CONFIG_H
Build-time defines for how the C API was built.
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_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_memory_creator wasmtime_memory_creator_t
struct wasmtime_linear_memory wasmtime_linear_memory_t
uint8_t wasmtime_strategy_t
Specifier for how Wasmtime will compile code, values are in wasmtime_strategy_enum.
Definition: config.h:22
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...
void wasmtime_config_cranelift_flag_enable(wasm_config_t *, const char *)
Enables a target-specific flag in Cranelift.
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_profiling_strategy_t
Different ways wasmtime can enable profiling JIT code.
Definition: config.h:66
wasmtime_profiling_strategy_enum
Different ways to profile JIT code.
Definition: config.h:73
@ WASMTIME_PROFILING_STRATEGY_VTUNE
Definition: config.h:83
@ WASMTIME_PROFILING_STRATEGY_PERFMAP
Definition: config.h:87
@ WASMTIME_PROFILING_STRATEGY_NONE
No profiling is enabled at runtime.
Definition: config.h:75
@ WASMTIME_PROFILING_STRATEGY_JITDUMP
Definition: config.h:78
wasmtime_strategy_enum
Different ways that Wasmtime can compile WebAssembly.
Definition: config.h:29
@ WASMTIME_STRATEGY_CRANELIFT
Definition: config.h:36
@ 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:456
wasmtime_opt_level_enum
Different ways Wasmtime can optimize generated code.
Definition: config.h:51
@ WASMTIME_OPT_LEVEL_SPEED_AND_SIZE
Definition: config.h:58
@ WASMTIME_OPT_LEVEL_NONE
Generated code will not be optimized at all.
Definition: config.h:53
@ WASMTIME_OPT_LEVEL_SPEED
Generated code will be optimized purely for speed.
Definition: config.h:55
void wasmtime_config_host_memory_creator_set(wasm_config_t *, wasmtime_memory_creator_t *)
uint8_t wasmtime_opt_level_t
Specifier of what optimization level to use for generated JIT code.
Definition: config.h:44
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...
wasmtime_error_t *(* wasmtime_new_memory_callback_t)(void *env, const wasm_memorytype_t *ty, size_t minimum, size_t maximum, size_t reserved_size_in_bytes, size_t guard_size_in_bytes, wasmtime_linear_memory_t *memory_ret)
Definition: config.h:496
wasmtime_error_t *(* wasmtime_memory_grow_callback_t)(void *env, size_t new_size)
Definition: config.h:465
struct wasmtime_pooling_allocation_config_t wasmtime_pooling_allocation_config_t
A type containing configuration options for the pooling allocator.
Definition: config.h:561
Definition and accessors of wasmtime_error_t.
Global engine configuration.
An opaque object representing the type of a memory.
Errors generated by Wasmtime.
Definition: config.h:474
wasmtime_memory_get_callback_t get_memory
Callback to get the memory and size of this LinearMemory.
Definition: config.h:478
void * env
User provided value to be passed to get_memory and grow_memory.
Definition: config.h:476
wasmtime_memory_grow_callback_t grow_memory
Callback to request growing the memory.
Definition: config.h:480
Definition: config.h:508
void(* finalizer)(void *)
An optional finalizer for env.
Definition: config.h:514
wasmtime_new_memory_callback_t new_memory
The callback to create new memory, must be thread safe.
Definition: config.h:512
void * env
User provided value to be passed to new_memory.
Definition: config.h:510