@@ -7,71 +7,69 @@ Every user should be familiar with *APIs* listed in
77all [ examples] [ https://github.com/WebAssembly/wasm-c-api/tree/master/example ] are
88very helpful for learning.
99
10- Currently, we support partial of * APIs* and are going to support the rest of
10+ Currently, we support partial of APIs and are going to support the rest of
1111them in next releases.
1212
13- Supported APIs:
13+ a summary of unsupported APIs
14+
15+ - Configuration
16+
17+ ``` c
18+ WASM_API_EXTERN own wasm_config_t * wasm_config_new (void);
19+ ```
20+
21+ - References
1422
1523``` c
16- /* wasm_bytevec_t APIs ... */
17-
18- wasm_engine_t *wasm_engine_new ();
19- wasm_engine_t *wasm_engine_new_with_args (mem_alloc_type_t, const MemAllocOption* , runtime_mode_e);
20- void wasm_engine_delete(wasm_engine_t * );
21-
22- wasm_store_t * wasm_store_new(wasm_engine_t * );
23- void wasm_store_delete(wasm_store_t * );
24-
25- /* wasm_valtype_t APIs ... * /
26- /* wasm_valtype_vec_t APIs ... * /
27- /* wasm_functype_vec_t APIs ... * /
28- /* wasm_globaltype_vec_t APIs ... * /
29- /* wasm_val_t APIs ... * /
30- /* wasm_trap_t partial APIs ... * /
31-
32- wasm_module_t * wasm_module_new(wasm_store_t * , const wasm_byte_vec_t * );
33- void wasm_module_delete(wasm_module_t * );
34-
35- wasm_func_t * wasm_func_new(wasm_store_t * , const wasm_functype_t * , wasm_func_callback_t);
36- wasm_func_t * wasm_func_new_with_env(wasm_store_t * store, const wasm_functype_t * , wasm_func_callback_with_env_t, void * env, void (* finalizer)(void * ));
37- void wasm_func_delete(wasm_func_t * );
38- wasm_fucn_t * wasm_func_copy(const wasm_func_t * );
39- wasm_functype_t * wasm_func_type(const wasm_func_t * );
40- wasm_trap_t * wasm_func_call(const wasm_func_t * , const wasm_val_t params[ ] , wasm_val_t results[ ] );
41- size_t wasm_func_param_arity(const wasm_func_t * );
42- size_t wasm_func_result_arity(const wasm_func_t * );
43-
44- wasm_global_t * wasm_global_new(wasm_store_t * , const wasm_globaltype_t * , const wasm_val_t * );
45- wasm_global_t * wasm_global_copy(const wasm_global_t * );
46- void wasm_global_delete(wasm_global_t * );
47- bool wasm_global_same(const wasm_global_t * , const wasm_global_t * );
48- void wasm_global_set(wasm_global_t * , const wasm_val_t * );
49- void wasm_global_get(const wasm_global_t * , wasm_val_t * out);
50- wasm_globaltype_t * wasm_global_type(const wasm_global_t * );
51-
52- wasm_instance_t * wasm_instance_new(wasm_store_t * , const wasm_module_t * , const wasm_extern_t * const imports[ ] , wasm_trap_t ** traps);
53- void wasm_instance_delete(wasm_instance_t * );
54- void wasm_instance_exports(const wasm_instance_t * , wasm_extern_vec_t * out);
55-
56- /* wasm_extern_t APIs * /
24+ WASM_API_EXTERN bool wasm_##name##_same(const wasm_##name##_t*, const wasm_##name##_t*); \
25+ WASM_API_EXTERN void* wasm_##name##_get_host_info(const wasm_##name##_t*); \
26+ WASM_API_EXTERN void wasm_##name##_set_host_info(wasm_##name##_t*, void*); \
27+ WASM_API_EXTERN void wasm_##name##_set_host_info_with_finalizer( \
28+ WASM_API_EXTERN wasm_ref_t* wasm_##name##_as_ref(wasm_##name##_t*); \
29+ WASM_API_EXTERN wasm_##name##_t* wasm_ref_as_##name(wasm_ref_t*); \
30+ WASM_API_EXTERN const wasm_ref_t* wasm_##name##_as_ref_const(const wasm_##name##_t*); \
31+ WASM_API_EXTERN const wasm_##name##_t* wasm_ref_as_##name##_const(const wasm_ref_t*);
32+ WASM_API_EXTERN own wasm_shared_##name##_t* wasm_##name##_share(const wasm_##name##_t*); \
33+ WASM_API_EXTERN own wasm_##name##_t* wasm_##name##_obtain(wasm_store_t*, const wasm_shared_##name##_t*);
5734```
5835
59- Unsupported APIs:
36+ - Frames
6037
6138``` c
62- /* wasm_tabletype_t APIs */
63- /* wasm_memorytype_t APIs */
64- /* wasm_externtype_t APIs */
65- /* wasm_importtype_t APIs */
66- /* wasm_exporttype_t APIs */
67- /* wasm_ref_t APIs */
68- /* wasm_shared_##name##_t APIs */
39+ WASM_API_EXTERN own wasm_frame_t * wasm_frame_copy (const wasm_frame_t* );
40+ WASM_API_EXTERN struct wasm_instance_t* wasm_frame_instance(const wasm_frame_t* );
41+ WASM_API_EXTERN uint32_t wasm_frame_func_index(const wasm_frame_t* );
42+ WASM_API_EXTERN size_t wasm_frame_func_offset(const wasm_frame_t* );
43+ WASM_API_EXTERN size_t wasm_frame_module_offset(const wasm_frame_t* );
44+ WASM_API_EXTERN own wasm_frame_t* wasm_trap_origin(const wasm_trap_t* );
45+ WASM_API_EXTERN void wasm_trap_trace(const wasm_trap_t* , own wasm_frame_vec_t* out);
46+ ```
47+
48+ Foreign Objects
49+
50+ ``` c
51+ WASM_API_EXTERN own wasm_foreign_t* wasm_foreign_new(wasm_store_t*);
52+ ```
6953
54+ - Several Module APIs
55+
56+ ``` c
7057WASM_API_EXTERN bool wasm_module_validate (wasm_store_t* , const wasm_byte_vec_t* binary);
71- WASM_API_EXTERN void wasm_module_imports(const wasm_module_t*, own wasm_importtype_vec_t* out);
7258WASM_API_EXTERN void wasm_module_serialize(const wasm_module_t* , own wasm_byte_vec_t* out);
73- WASM_API_EXTERN own wasm_module_t* wasm_module_deserialize(wasm_store_t*, const wasm_byte_vec_t*);
59+ WASM_API_EXTERN void wasm_module_serialize(const wasm_module_t* , own wasm_byte_vec_t* out);
60+ ```
61+
62+ - Table Operations APIs
7463
75- /* wasm_table_t APIs */
76- /* wasm_memory_t APIs */
64+ ``` c
65+ WASM_API_EXTERN own wasm_ref_t* wasm_table_get(const wasm_table_t*, wasm_table_size_t index);
66+ WASM_API_EXTERN bool wasm_table_set(wasm_table_t*, wasm_table_size_t index, wasm_ref_t*);
67+ WASM_API_EXTERN wasm_table_size_t wasm_table_size(const wasm_table_t*);
68+ WASM_API_EXTERN bool wasm_table_grow(wasm_table_t*, wasm_table_size_t delta, wasm_ref_t* init);
7769```
70+
71+ - Memory Grow APIs
72+
73+ ``` c
74+ WASM_API_EXTERN bool wasm_memory_grow (wasm_memory_t* , wasm_memory_pages_t delta);
75+ ```
0 commit comments