18#ifdef WASMTIME_FEATURE_GC
20typedef struct wasmtime_eqref wasmtime_eqref_t;
47typedef struct wasmtime_anyref {
61static inline void wasmtime_anyref_set_null(wasmtime_anyref_t *ref) {
70static inline bool wasmtime_anyref_is_null(
const wasmtime_anyref_t *ref) {
71 return ref->store_id == 0;
81WASM_API_EXTERN
void wasmtime_anyref_clone(
const wasmtime_anyref_t *anyref,
82 wasmtime_anyref_t *out);
97WASM_API_EXTERN
void wasmtime_anyref_unroot(wasmtime_anyref_t *ref);
108 wasmtime_anyref_t *out);
121 const wasmtime_anyref_t *ref);
133 wasmtime_anyref_t *out);
142 const wasmtime_anyref_t *anyref);
154 const wasmtime_anyref_t *anyref,
167 const wasmtime_anyref_t *anyref,
192typedef struct wasmtime_externref {
202} wasmtime_externref_t;
206static inline void wasmtime_externref_set_null(wasmtime_externref_t *ref) {
215static inline bool wasmtime_externref_is_null(
const wasmtime_externref_t *ref) {
216 return ref->store_id == 0;
244 void (*finalizer)(
void *),
245 wasmtime_externref_t *out);
254 const wasmtime_externref_t *data);
265WASM_API_EXTERN
void wasmtime_externref_clone(
const wasmtime_externref_t *ref,
266 wasmtime_externref_t *out);
279WASM_API_EXTERN
void wasmtime_externref_unroot(wasmtime_externref_t *ref);
290 wasmtime_externref_t *out);
302WASM_API_EXTERN uint32_t wasmtime_externref_to_raw(
319typedef struct wasmtime_exnref {
333static inline void wasmtime_exnref_set_null(wasmtime_exnref_t *ref) {
339static inline bool wasmtime_exnref_is_null(
const wasmtime_exnref_t *ref) {
340 return ref->store_id == 0;
349WASM_API_EXTERN
void wasmtime_exnref_clone(
const wasmtime_exnref_t *ref,
350 wasmtime_exnref_t *out);
357WASM_API_EXTERN
void wasmtime_exnref_unroot(wasmtime_exnref_t *ref);
363#define WASMTIME_I32 0
365#define WASMTIME_I64 1
367#define WASMTIME_F32 2
369#define WASMTIME_F64 3
371#define WASMTIME_V128 4
374#define WASMTIME_FUNCREF 5
377#define WASMTIME_EXTERNREF 6
380#define WASMTIME_ANYREF 7
383#define WASMTIME_EXNREF 8
408#ifdef WASMTIME_FEATURE_GC
410 wasmtime_anyref_t anyref;
412 wasmtime_externref_t externref;
414 wasmtime_exnref_t exnref;
439static inline bool wasmtime_funcref_is_null(
const wasmtime_func_t *func) {
504static inline void __wasmtime_val_assertions() {
507 "should be 16 bytes plus a pointer large (plus alignment on "
510 "should be 8-byte aligned");
Definition of wasmtime_extern_t and external items.
An interior pointer into a wasmtime_store_t which is used as "context" for many functions.
Representation of a function in Wasmtime.
Definition: extern.h:26
uint64_t store_id
Definition: extern.h:32
Container for different kinds of wasm values.
Definition: val.h:532
wasmtime_valkind_t kind
Discriminant of which field of of is valid.
Definition: val.h:534
wasmtime_valunion_t of
Container for the extern item's value.
Definition: val.h:536
Container for possible wasm values.
Definition: val.h:456
uint32_t anyref
Definition: val.h:484
uint32_t externref
Definition: val.h:492
float32_t f32
Definition: val.h:468
float64_t f64
Definition: val.h:472
int32_t i32
Definition: val.h:460
wasmtime_v128 v128
Definition: val.h:476
int64_t i64
Definition: val.h:464
void * funcref
Definition: val.h:499
Container for different kinds of wasm values.
Definition: val.h:399
int32_t i32
Field used if wasmtime_val_t::kind is WASMTIME_I32.
Definition: val.h:401
float32_t f32
Field used if wasmtime_val_t::kind is WASMTIME_F32.
Definition: val.h:405
int64_t i64
Field used if wasmtime_val_t::kind is WASMTIME_I64.
Definition: val.h:403
float64_t f64
Field used if wasmtime_val_t::kind is WASMTIME_F64.
Definition: val.h:407
uint8_t wasmtime_valkind_t
Discriminant stored in wasmtime_val::kind.
Definition: val.h:361
union wasmtime_valunion wasmtime_valunion_t
Convenience alias for wasmtime_valunion.
union wasmtime_val_raw wasmtime_val_raw_t
Convenience alias for wasmtime_val_raw.
uint8_t wasmtime_v128[16]
A 128-bit value representing the WebAssembly v128 type. Bytes are stored in little-endian order.
Definition: val.h:387
WASM_API_EXTERN void wasmtime_val_unroot(wasmtime_val_t *val)
Unroot the value contained by val.
WASM_API_EXTERN void wasmtime_val_clone(const wasmtime_val_t *src, wasmtime_val_t *dst)
Clones the value pointed to by src into the dst provided.
struct wasmtime_val wasmtime_val_t
Convenience alias for wasmtime_val_t.
float float32_t
A type definition for a 32-bit float.
Definition: wasm.h:44
double float64_t
A type definition for a 64-bit float.
Definition: wasm.h:45