summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr
diff options
context:
space:
mode:
Diffstat (limited to 'fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr')
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/__init__.py0
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/libs/.placeholder0
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wamrapi/__init__.py0
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wamrapi/wamr.py149
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wasmcapi/__init__.py7
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wasmcapi/binding.py2020
-rw-r--r--fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wasmcapi/ffi.py642
7 files changed, 2818 insertions, 0 deletions
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/__init__.py b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/__init__.py
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/libs/.placeholder b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/libs/.placeholder
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/libs/.placeholder
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wamrapi/__init__.py b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wamrapi/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wamrapi/__init__.py
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wamrapi/wamr.py b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wamrapi/wamr.py
new file mode 100644
index 000000000..abbd23227
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wamrapi/wamr.py
@@ -0,0 +1,149 @@
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+
+from ctypes import Array
+from ctypes import c_char
+from ctypes import c_uint
+from ctypes import c_uint8
+from ctypes import c_void_p
+from ctypes import cast
+from ctypes import create_string_buffer
+from ctypes import POINTER
+from ctypes import pointer
+from wamr.wamrapi.iwasm import String
+from wamr.wamrapi.iwasm import Alloc_With_Pool
+from wamr.wamrapi.iwasm import RuntimeInitArgs
+from wamr.wamrapi.iwasm import wasm_exec_env_t
+from wamr.wamrapi.iwasm import wasm_function_inst_t
+from wamr.wamrapi.iwasm import wasm_module_inst_t
+from wamr.wamrapi.iwasm import wasm_module_t
+from wamr.wamrapi.iwasm import wasm_runtime_call_wasm
+from wamr.wamrapi.iwasm import wasm_runtime_create_exec_env
+from wamr.wamrapi.iwasm import wasm_runtime_deinstantiate
+from wamr.wamrapi.iwasm import wasm_runtime_destroy
+from wamr.wamrapi.iwasm import wasm_runtime_destroy_exec_env
+from wamr.wamrapi.iwasm import wasm_runtime_full_init
+from wamr.wamrapi.iwasm import wasm_runtime_instantiate
+from wamr.wamrapi.iwasm import wasm_runtime_load
+from wamr.wamrapi.iwasm import wasm_runtime_lookup_function
+from wamr.wamrapi.iwasm import wasm_runtime_unload
+from wamr.wamrapi.iwasm import wasm_runtime_module_malloc
+from wamr.wamrapi.iwasm import wasm_runtime_module_free
+from wamr.wamrapi.iwasm import wasm_runtime_register_natives
+from wamr.wamrapi.iwasm import NativeSymbol
+
+
+class Engine:
+ def __init__(self):
+ self._native_symbols = dict()
+ self.init_args = self._get_init_args()
+ wasm_runtime_full_init(pointer(self.init_args))
+
+ def __del__(self):
+ print("deleting Engine")
+ wasm_runtime_destroy()
+
+ def _get_init_args(self, heap_size: int = 1024 * 512) -> RuntimeInitArgs:
+ init_args = RuntimeInitArgs()
+ init_args.mem_alloc_type = Alloc_With_Pool
+ init_args.mem_alloc_option.pool.heap_buf = cast(
+ (c_char * heap_size)(), c_void_p
+ )
+ init_args.mem_alloc_option.pool.heap_size = heap_size
+ return init_args
+
+ def register_natives(self, module_name: str, native_symbols: list[NativeSymbol]) -> None:
+ module_name = String.from_param(module_name)
+ # WAMR does not copy the symbols. We must store them.
+ for native in native_symbols:
+ self._native_symbols[str(native.symbol)] = (module_name, native)
+
+ if not wasm_runtime_register_natives(
+ module_name,
+ cast(
+ (NativeSymbol * len(native_symbols))(*native_symbols),
+ POINTER(NativeSymbol)
+ ),
+ len(native_symbols)
+ ):
+ raise Exception("Error while registering symbols")
+
+class Module:
+ __create_key = object()
+
+ @classmethod
+ def from_file(cls, engine: Engine, fp: str) -> "Module":
+ return Module(cls.__create_key, engine, fp)
+
+ def __init__(self, create_key: object, engine: Engine, fp: str) -> None:
+ assert (
+ create_key == Module.__create_key
+ ), "Module objects must be created using Module.from_file"
+ self.engine = engine
+ self.module, self.file_data = self._create_module(fp)
+
+ def __del__(self):
+ print("deleting Module")
+ wasm_runtime_unload(self.module)
+
+ def _create_module(self, fp: str) -> tuple[wasm_module_t, Array[c_uint]]:
+ with open(fp, "rb") as f:
+ data = f.read()
+ data = (c_uint8 * len(data))(*data)
+
+ error_buf = create_string_buffer(128)
+ module = wasm_runtime_load(data, len(data), error_buf, len(error_buf))
+ if not module:
+ raise Exception("Error while creating module")
+ return module, data
+
+
+class Instance:
+ def __init__(self, module: Module, stack_size: int = 65536, heap_size: int = 16384):
+ self.module = module
+ self.module_inst = self._create_module_inst(module, stack_size, heap_size)
+
+ def __del__(self):
+ print("deleting Instance")
+ wasm_runtime_deinstantiate(self.module_inst)
+
+ def malloc(self, nbytes: int, native_handler) -> c_uint:
+ return wasm_runtime_module_malloc(self.module_inst, nbytes, native_handler)
+
+ def free(self, wasm_handler) -> None:
+ wasm_runtime_module_free(self.module_inst, wasm_handler)
+
+ def lookup_function(self, name: str) -> wasm_function_inst_t:
+ func = wasm_runtime_lookup_function(self.module_inst, name, None)
+ if not func:
+ raise Exception("Error while looking-up function")
+ return func
+
+ def _create_module_inst(self, module: Module, stack_size: int, heap_size: int) -> wasm_module_inst_t:
+ error_buf = create_string_buffer(128)
+ module_inst = wasm_runtime_instantiate(
+ module.module, stack_size, heap_size, error_buf, len(error_buf)
+ )
+ if not module_inst:
+ raise Exception("Error while creating module instance")
+ return module_inst
+
+
+class ExecEnv:
+ def __init__(self, module_inst: Instance, stack_size: int = 65536):
+ self.module_inst = module_inst
+ self.exec_env = self._create_exec_env(module_inst, stack_size)
+
+ def __del__(self):
+ print("deleting ExecEnv")
+ wasm_runtime_destroy_exec_env(self.exec_env)
+
+ def call(self, func: wasm_function_inst_t, argc: int, argv: "POINTER[c_uint]"):
+ if not wasm_runtime_call_wasm(self.exec_env, func, argc, argv):
+ raise Exception("Error while calling function")
+
+ def _create_exec_env(self, module_inst: Instance, stack_size: int) -> wasm_exec_env_t:
+ exec_env = wasm_runtime_create_exec_env(module_inst.module_inst, stack_size)
+ if not exec_env:
+ raise Exception("Error while creating execution environment")
+ return exec_env
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wasmcapi/__init__.py b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wasmcapi/__init__.py
new file mode 100644
index 000000000..8d7404ad8
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wasmcapi/__init__.py
@@ -0,0 +1,7 @@
+# -*- coding: utf-8 -*-
+#!/usr/bin/env python3
+#
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#
+__all__ = ["ffi"]
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wasmcapi/binding.py b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wasmcapi/binding.py
new file mode 100644
index 000000000..dd7adadf6
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wasmcapi/binding.py
@@ -0,0 +1,2020 @@
+# -*- coding: utf-8 -*-
+#!/usr/bin/env python3
+#
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#
+#It is a generated file. DO NOT EDIT.
+#
+from ctypes import *
+
+from .ffi import dereference, libiwasm, wasm_ref_t, wasm_val_t
+
+
+wasm_byte_t = c_ubyte
+
+class wasm_byte_vec_t(Structure):
+ _fields_ = [
+ ("size", c_size_t),
+ ("data", POINTER(wasm_byte_t)),
+ ("num_elems", c_size_t),
+ ("size_of_elem", c_size_t),
+ ("lock", c_void_p),
+ ]
+
+ def __eq__(self, other):
+ if not isinstance(other, wasm_byte_vec_t):
+ return False
+ return self.size == other.size and self.num_elems == other.num_elems and self.size_of_elem == other.size_of_elem
+
+ def __repr__(self):
+ ret = ""
+ for i in range(self.num_elems):
+ ret += str(self.data[i])
+ ret += " "
+ return ret
+
+
+
+def wasm_byte_vec_new_empty(arg0):
+ _wasm_byte_vec_new_empty = libiwasm.wasm_byte_vec_new_empty
+ _wasm_byte_vec_new_empty.restype = None
+ _wasm_byte_vec_new_empty.argtypes = [POINTER(wasm_byte_vec_t)]
+ return _wasm_byte_vec_new_empty(arg0)
+
+def wasm_byte_vec_new_uninitialized(arg0,arg1):
+ _wasm_byte_vec_new_uninitialized = libiwasm.wasm_byte_vec_new_uninitialized
+ _wasm_byte_vec_new_uninitialized.restype = None
+ _wasm_byte_vec_new_uninitialized.argtypes = [POINTER(wasm_byte_vec_t),c_size_t]
+ return _wasm_byte_vec_new_uninitialized(arg0,arg1)
+
+def wasm_byte_vec_new(arg0,arg1,arg2):
+ _wasm_byte_vec_new = libiwasm.wasm_byte_vec_new
+ _wasm_byte_vec_new.restype = None
+ _wasm_byte_vec_new.argtypes = [POINTER(wasm_byte_vec_t),c_size_t,POINTER(wasm_byte_t)]
+ return _wasm_byte_vec_new(arg0,arg1,arg2)
+
+def wasm_byte_vec_copy(arg0,arg1):
+ _wasm_byte_vec_copy = libiwasm.wasm_byte_vec_copy
+ _wasm_byte_vec_copy.restype = None
+ _wasm_byte_vec_copy.argtypes = [POINTER(wasm_byte_vec_t),POINTER(wasm_byte_vec_t)]
+ return _wasm_byte_vec_copy(arg0,arg1)
+
+def wasm_byte_vec_delete(arg0):
+ _wasm_byte_vec_delete = libiwasm.wasm_byte_vec_delete
+ _wasm_byte_vec_delete.restype = None
+ _wasm_byte_vec_delete.argtypes = [POINTER(wasm_byte_vec_t)]
+ return _wasm_byte_vec_delete(arg0)
+
+wasm_name_t = wasm_byte_vec_t
+
+class wasm_config_t(Structure):
+ pass
+
+def wasm_config_delete(arg0):
+ _wasm_config_delete = libiwasm.wasm_config_delete
+ _wasm_config_delete.restype = None
+ _wasm_config_delete.argtypes = [POINTER(wasm_config_t)]
+ return _wasm_config_delete(arg0)
+
+def wasm_config_new():
+ _wasm_config_new = libiwasm.wasm_config_new
+ _wasm_config_new.restype = POINTER(wasm_config_t)
+ _wasm_config_new.argtypes = None
+ return _wasm_config_new()
+
+class wasm_engine_t(Structure):
+ pass
+
+def wasm_engine_delete(arg0):
+ _wasm_engine_delete = libiwasm.wasm_engine_delete
+ _wasm_engine_delete.restype = None
+ _wasm_engine_delete.argtypes = [POINTER(wasm_engine_t)]
+ return _wasm_engine_delete(arg0)
+
+def wasm_engine_new():
+ _wasm_engine_new = libiwasm.wasm_engine_new
+ _wasm_engine_new.restype = POINTER(wasm_engine_t)
+ _wasm_engine_new.argtypes = None
+ return _wasm_engine_new()
+
+def wasm_engine_new_with_config(arg0):
+ _wasm_engine_new_with_config = libiwasm.wasm_engine_new_with_config
+ _wasm_engine_new_with_config.restype = POINTER(wasm_engine_t)
+ _wasm_engine_new_with_config.argtypes = [POINTER(wasm_config_t)]
+ return _wasm_engine_new_with_config(arg0)
+
+class wasm_store_t(Structure):
+ pass
+
+def wasm_store_delete(arg0):
+ _wasm_store_delete = libiwasm.wasm_store_delete
+ _wasm_store_delete.restype = None
+ _wasm_store_delete.argtypes = [POINTER(wasm_store_t)]
+ return _wasm_store_delete(arg0)
+
+def wasm_store_new(arg0):
+ _wasm_store_new = libiwasm.wasm_store_new
+ _wasm_store_new.restype = POINTER(wasm_store_t)
+ _wasm_store_new.argtypes = [POINTER(wasm_engine_t)]
+ return _wasm_store_new(arg0)
+
+wasm_mutability_t = c_uint8
+
+WASM_CONST = 0
+WASM_VAR = 1
+
+class wasm_limits_t(Structure):
+ _fields_ = [
+ ("min", c_uint32),
+ ("max", c_uint32),
+ ]
+
+ def __eq__(self, other):
+ if not isinstance(other, wasm_limits_t):
+ return False
+ return self.min == other.min and self.max == other.max
+
+ def __repr__(self):
+ return f"{{min={self.min}, max={self.max}}}"
+
+
+class wasm_valtype_t(Structure):
+ pass
+
+def wasm_valtype_delete(arg0):
+ _wasm_valtype_delete = libiwasm.wasm_valtype_delete
+ _wasm_valtype_delete.restype = None
+ _wasm_valtype_delete.argtypes = [POINTER(wasm_valtype_t)]
+ return _wasm_valtype_delete(arg0)
+
+class wasm_valtype_vec_t(Structure):
+ _fields_ = [
+ ("size", c_size_t),
+ ("data", POINTER(POINTER(wasm_valtype_t))),
+ ("num_elems", c_size_t),
+ ("size_of_elem", c_size_t),
+ ("lock", c_void_p),
+ ]
+
+ def __eq__(self, other):
+ if not isinstance(other, wasm_valtype_vec_t):
+ return False
+ return self.size == other.size and self.num_elems == other.num_elems and self.size_of_elem == other.size_of_elem
+
+ def __repr__(self):
+ ret = ""
+ for i in range(self.num_elems):
+ ret += str(dereference(self.data[i]))
+ ret += " "
+ return ret
+
+
+
+def wasm_valtype_vec_new_empty(arg0):
+ _wasm_valtype_vec_new_empty = libiwasm.wasm_valtype_vec_new_empty
+ _wasm_valtype_vec_new_empty.restype = None
+ _wasm_valtype_vec_new_empty.argtypes = [POINTER(wasm_valtype_vec_t)]
+ return _wasm_valtype_vec_new_empty(arg0)
+
+def wasm_valtype_vec_new_uninitialized(arg0,arg1):
+ _wasm_valtype_vec_new_uninitialized = libiwasm.wasm_valtype_vec_new_uninitialized
+ _wasm_valtype_vec_new_uninitialized.restype = None
+ _wasm_valtype_vec_new_uninitialized.argtypes = [POINTER(wasm_valtype_vec_t),c_size_t]
+ return _wasm_valtype_vec_new_uninitialized(arg0,arg1)
+
+def wasm_valtype_vec_new(arg0,arg1,arg2):
+ _wasm_valtype_vec_new = libiwasm.wasm_valtype_vec_new
+ _wasm_valtype_vec_new.restype = None
+ _wasm_valtype_vec_new.argtypes = [POINTER(wasm_valtype_vec_t),c_size_t,POINTER(POINTER(wasm_valtype_t))]
+ return _wasm_valtype_vec_new(arg0,arg1,arg2)
+
+def wasm_valtype_vec_copy(arg0,arg1):
+ _wasm_valtype_vec_copy = libiwasm.wasm_valtype_vec_copy
+ _wasm_valtype_vec_copy.restype = None
+ _wasm_valtype_vec_copy.argtypes = [POINTER(wasm_valtype_vec_t),POINTER(wasm_valtype_vec_t)]
+ return _wasm_valtype_vec_copy(arg0,arg1)
+
+def wasm_valtype_vec_delete(arg0):
+ _wasm_valtype_vec_delete = libiwasm.wasm_valtype_vec_delete
+ _wasm_valtype_vec_delete.restype = None
+ _wasm_valtype_vec_delete.argtypes = [POINTER(wasm_valtype_vec_t)]
+ return _wasm_valtype_vec_delete(arg0)
+
+def wasm_valtype_copy(arg0):
+ _wasm_valtype_copy = libiwasm.wasm_valtype_copy
+ _wasm_valtype_copy.restype = POINTER(wasm_valtype_t)
+ _wasm_valtype_copy.argtypes = [POINTER(wasm_valtype_t)]
+ return _wasm_valtype_copy(arg0)
+
+wasm_valkind_t = c_uint8
+
+WASM_I32 = 0
+WASM_I64 = 1
+WASM_F32 = 2
+WASM_F64 = 3
+WASM_ANYREF = 128
+WASM_FUNCREF = 129
+
+def wasm_valtype_new(arg0):
+ _wasm_valtype_new = libiwasm.wasm_valtype_new
+ _wasm_valtype_new.restype = POINTER(wasm_valtype_t)
+ _wasm_valtype_new.argtypes = [wasm_valkind_t]
+ return _wasm_valtype_new(arg0)
+
+def wasm_valtype_kind(arg0):
+ _wasm_valtype_kind = libiwasm.wasm_valtype_kind
+ _wasm_valtype_kind.restype = wasm_valkind_t
+ _wasm_valtype_kind.argtypes = [POINTER(wasm_valtype_t)]
+ return _wasm_valtype_kind(arg0)
+
+class wasm_functype_t(Structure):
+ pass
+
+def wasm_functype_delete(arg0):
+ _wasm_functype_delete = libiwasm.wasm_functype_delete
+ _wasm_functype_delete.restype = None
+ _wasm_functype_delete.argtypes = [POINTER(wasm_functype_t)]
+ return _wasm_functype_delete(arg0)
+
+class wasm_functype_vec_t(Structure):
+ _fields_ = [
+ ("size", c_size_t),
+ ("data", POINTER(POINTER(wasm_functype_t))),
+ ("num_elems", c_size_t),
+ ("size_of_elem", c_size_t),
+ ("lock", c_void_p),
+ ]
+
+ def __eq__(self, other):
+ if not isinstance(other, wasm_functype_vec_t):
+ return False
+ return self.size == other.size and self.num_elems == other.num_elems and self.size_of_elem == other.size_of_elem
+
+ def __repr__(self):
+ ret = ""
+ for i in range(self.num_elems):
+ ret += str(dereference(self.data[i]))
+ ret += " "
+ return ret
+
+
+
+def wasm_functype_vec_new_empty(arg0):
+ _wasm_functype_vec_new_empty = libiwasm.wasm_functype_vec_new_empty
+ _wasm_functype_vec_new_empty.restype = None
+ _wasm_functype_vec_new_empty.argtypes = [POINTER(wasm_functype_vec_t)]
+ return _wasm_functype_vec_new_empty(arg0)
+
+def wasm_functype_vec_new_uninitialized(arg0,arg1):
+ _wasm_functype_vec_new_uninitialized = libiwasm.wasm_functype_vec_new_uninitialized
+ _wasm_functype_vec_new_uninitialized.restype = None
+ _wasm_functype_vec_new_uninitialized.argtypes = [POINTER(wasm_functype_vec_t),c_size_t]
+ return _wasm_functype_vec_new_uninitialized(arg0,arg1)
+
+def wasm_functype_vec_new(arg0,arg1,arg2):
+ _wasm_functype_vec_new = libiwasm.wasm_functype_vec_new
+ _wasm_functype_vec_new.restype = None
+ _wasm_functype_vec_new.argtypes = [POINTER(wasm_functype_vec_t),c_size_t,POINTER(POINTER(wasm_functype_t))]
+ return _wasm_functype_vec_new(arg0,arg1,arg2)
+
+def wasm_functype_vec_copy(arg0,arg1):
+ _wasm_functype_vec_copy = libiwasm.wasm_functype_vec_copy
+ _wasm_functype_vec_copy.restype = None
+ _wasm_functype_vec_copy.argtypes = [POINTER(wasm_functype_vec_t),POINTER(wasm_functype_vec_t)]
+ return _wasm_functype_vec_copy(arg0,arg1)
+
+def wasm_functype_vec_delete(arg0):
+ _wasm_functype_vec_delete = libiwasm.wasm_functype_vec_delete
+ _wasm_functype_vec_delete.restype = None
+ _wasm_functype_vec_delete.argtypes = [POINTER(wasm_functype_vec_t)]
+ return _wasm_functype_vec_delete(arg0)
+
+def wasm_functype_copy(arg0):
+ _wasm_functype_copy = libiwasm.wasm_functype_copy
+ _wasm_functype_copy.restype = POINTER(wasm_functype_t)
+ _wasm_functype_copy.argtypes = [POINTER(wasm_functype_t)]
+ return _wasm_functype_copy(arg0)
+
+def wasm_functype_new(arg0,arg1):
+ _wasm_functype_new = libiwasm.wasm_functype_new
+ _wasm_functype_new.restype = POINTER(wasm_functype_t)
+ _wasm_functype_new.argtypes = [POINTER(wasm_valtype_vec_t),POINTER(wasm_valtype_vec_t)]
+ return _wasm_functype_new(arg0,arg1)
+
+def wasm_functype_params(arg0):
+ _wasm_functype_params = libiwasm.wasm_functype_params
+ _wasm_functype_params.restype = POINTER(wasm_valtype_vec_t)
+ _wasm_functype_params.argtypes = [POINTER(wasm_functype_t)]
+ return _wasm_functype_params(arg0)
+
+def wasm_functype_results(arg0):
+ _wasm_functype_results = libiwasm.wasm_functype_results
+ _wasm_functype_results.restype = POINTER(wasm_valtype_vec_t)
+ _wasm_functype_results.argtypes = [POINTER(wasm_functype_t)]
+ return _wasm_functype_results(arg0)
+
+class wasm_globaltype_t(Structure):
+ pass
+
+def wasm_globaltype_delete(arg0):
+ _wasm_globaltype_delete = libiwasm.wasm_globaltype_delete
+ _wasm_globaltype_delete.restype = None
+ _wasm_globaltype_delete.argtypes = [POINTER(wasm_globaltype_t)]
+ return _wasm_globaltype_delete(arg0)
+
+class wasm_globaltype_vec_t(Structure):
+ _fields_ = [
+ ("size", c_size_t),
+ ("data", POINTER(POINTER(wasm_globaltype_t))),
+ ("num_elems", c_size_t),
+ ("size_of_elem", c_size_t),
+ ("lock", c_void_p),
+ ]
+
+ def __eq__(self, other):
+ if not isinstance(other, wasm_globaltype_vec_t):
+ return False
+ return self.size == other.size and self.num_elems == other.num_elems and self.size_of_elem == other.size_of_elem
+
+ def __repr__(self):
+ ret = ""
+ for i in range(self.num_elems):
+ ret += str(dereference(self.data[i]))
+ ret += " "
+ return ret
+
+
+
+def wasm_globaltype_vec_new_empty(arg0):
+ _wasm_globaltype_vec_new_empty = libiwasm.wasm_globaltype_vec_new_empty
+ _wasm_globaltype_vec_new_empty.restype = None
+ _wasm_globaltype_vec_new_empty.argtypes = [POINTER(wasm_globaltype_vec_t)]
+ return _wasm_globaltype_vec_new_empty(arg0)
+
+def wasm_globaltype_vec_new_uninitialized(arg0,arg1):
+ _wasm_globaltype_vec_new_uninitialized = libiwasm.wasm_globaltype_vec_new_uninitialized
+ _wasm_globaltype_vec_new_uninitialized.restype = None
+ _wasm_globaltype_vec_new_uninitialized.argtypes = [POINTER(wasm_globaltype_vec_t),c_size_t]
+ return _wasm_globaltype_vec_new_uninitialized(arg0,arg1)
+
+def wasm_globaltype_vec_new(arg0,arg1,arg2):
+ _wasm_globaltype_vec_new = libiwasm.wasm_globaltype_vec_new
+ _wasm_globaltype_vec_new.restype = None
+ _wasm_globaltype_vec_new.argtypes = [POINTER(wasm_globaltype_vec_t),c_size_t,POINTER(POINTER(wasm_globaltype_t))]
+ return _wasm_globaltype_vec_new(arg0,arg1,arg2)
+
+def wasm_globaltype_vec_copy(arg0,arg1):
+ _wasm_globaltype_vec_copy = libiwasm.wasm_globaltype_vec_copy
+ _wasm_globaltype_vec_copy.restype = None
+ _wasm_globaltype_vec_copy.argtypes = [POINTER(wasm_globaltype_vec_t),POINTER(wasm_globaltype_vec_t)]
+ return _wasm_globaltype_vec_copy(arg0,arg1)
+
+def wasm_globaltype_vec_delete(arg0):
+ _wasm_globaltype_vec_delete = libiwasm.wasm_globaltype_vec_delete
+ _wasm_globaltype_vec_delete.restype = None
+ _wasm_globaltype_vec_delete.argtypes = [POINTER(wasm_globaltype_vec_t)]
+ return _wasm_globaltype_vec_delete(arg0)
+
+def wasm_globaltype_copy(arg0):
+ _wasm_globaltype_copy = libiwasm.wasm_globaltype_copy
+ _wasm_globaltype_copy.restype = POINTER(wasm_globaltype_t)
+ _wasm_globaltype_copy.argtypes = [POINTER(wasm_globaltype_t)]
+ return _wasm_globaltype_copy(arg0)
+
+def wasm_globaltype_new(arg0,arg1):
+ _wasm_globaltype_new = libiwasm.wasm_globaltype_new
+ _wasm_globaltype_new.restype = POINTER(wasm_globaltype_t)
+ _wasm_globaltype_new.argtypes = [POINTER(wasm_valtype_t),wasm_mutability_t]
+ return _wasm_globaltype_new(arg0,arg1)
+
+def wasm_globaltype_content(arg0):
+ _wasm_globaltype_content = libiwasm.wasm_globaltype_content
+ _wasm_globaltype_content.restype = POINTER(wasm_valtype_t)
+ _wasm_globaltype_content.argtypes = [POINTER(wasm_globaltype_t)]
+ return _wasm_globaltype_content(arg0)
+
+def wasm_globaltype_mutability(arg0):
+ _wasm_globaltype_mutability = libiwasm.wasm_globaltype_mutability
+ _wasm_globaltype_mutability.restype = wasm_mutability_t
+ _wasm_globaltype_mutability.argtypes = [POINTER(wasm_globaltype_t)]
+ return _wasm_globaltype_mutability(arg0)
+
+class wasm_tabletype_t(Structure):
+ pass
+
+def wasm_tabletype_delete(arg0):
+ _wasm_tabletype_delete = libiwasm.wasm_tabletype_delete
+ _wasm_tabletype_delete.restype = None
+ _wasm_tabletype_delete.argtypes = [POINTER(wasm_tabletype_t)]
+ return _wasm_tabletype_delete(arg0)
+
+class wasm_tabletype_vec_t(Structure):
+ _fields_ = [
+ ("size", c_size_t),
+ ("data", POINTER(POINTER(wasm_tabletype_t))),
+ ("num_elems", c_size_t),
+ ("size_of_elem", c_size_t),
+ ("lock", c_void_p),
+ ]
+
+ def __eq__(self, other):
+ if not isinstance(other, wasm_tabletype_vec_t):
+ return False
+ return self.size == other.size and self.num_elems == other.num_elems and self.size_of_elem == other.size_of_elem
+
+ def __repr__(self):
+ ret = ""
+ for i in range(self.num_elems):
+ ret += str(dereference(self.data[i]))
+ ret += " "
+ return ret
+
+
+
+def wasm_tabletype_vec_new_empty(arg0):
+ _wasm_tabletype_vec_new_empty = libiwasm.wasm_tabletype_vec_new_empty
+ _wasm_tabletype_vec_new_empty.restype = None
+ _wasm_tabletype_vec_new_empty.argtypes = [POINTER(wasm_tabletype_vec_t)]
+ return _wasm_tabletype_vec_new_empty(arg0)
+
+def wasm_tabletype_vec_new_uninitialized(arg0,arg1):
+ _wasm_tabletype_vec_new_uninitialized = libiwasm.wasm_tabletype_vec_new_uninitialized
+ _wasm_tabletype_vec_new_uninitialized.restype = None
+ _wasm_tabletype_vec_new_uninitialized.argtypes = [POINTER(wasm_tabletype_vec_t),c_size_t]
+ return _wasm_tabletype_vec_new_uninitialized(arg0,arg1)
+
+def wasm_tabletype_vec_new(arg0,arg1,arg2):
+ _wasm_tabletype_vec_new = libiwasm.wasm_tabletype_vec_new
+ _wasm_tabletype_vec_new.restype = None
+ _wasm_tabletype_vec_new.argtypes = [POINTER(wasm_tabletype_vec_t),c_size_t,POINTER(POINTER(wasm_tabletype_t))]
+ return _wasm_tabletype_vec_new(arg0,arg1,arg2)
+
+def wasm_tabletype_vec_copy(arg0,arg1):
+ _wasm_tabletype_vec_copy = libiwasm.wasm_tabletype_vec_copy
+ _wasm_tabletype_vec_copy.restype = None
+ _wasm_tabletype_vec_copy.argtypes = [POINTER(wasm_tabletype_vec_t),POINTER(wasm_tabletype_vec_t)]
+ return _wasm_tabletype_vec_copy(arg0,arg1)
+
+def wasm_tabletype_vec_delete(arg0):
+ _wasm_tabletype_vec_delete = libiwasm.wasm_tabletype_vec_delete
+ _wasm_tabletype_vec_delete.restype = None
+ _wasm_tabletype_vec_delete.argtypes = [POINTER(wasm_tabletype_vec_t)]
+ return _wasm_tabletype_vec_delete(arg0)
+
+def wasm_tabletype_copy(arg0):
+ _wasm_tabletype_copy = libiwasm.wasm_tabletype_copy
+ _wasm_tabletype_copy.restype = POINTER(wasm_tabletype_t)
+ _wasm_tabletype_copy.argtypes = [POINTER(wasm_tabletype_t)]
+ return _wasm_tabletype_copy(arg0)
+
+def wasm_tabletype_new(arg0,arg1):
+ _wasm_tabletype_new = libiwasm.wasm_tabletype_new
+ _wasm_tabletype_new.restype = POINTER(wasm_tabletype_t)
+ _wasm_tabletype_new.argtypes = [POINTER(wasm_valtype_t),POINTER(wasm_limits_t)]
+ return _wasm_tabletype_new(arg0,arg1)
+
+def wasm_tabletype_element(arg0):
+ _wasm_tabletype_element = libiwasm.wasm_tabletype_element
+ _wasm_tabletype_element.restype = POINTER(wasm_valtype_t)
+ _wasm_tabletype_element.argtypes = [POINTER(wasm_tabletype_t)]
+ return _wasm_tabletype_element(arg0)
+
+def wasm_tabletype_limits(arg0):
+ _wasm_tabletype_limits = libiwasm.wasm_tabletype_limits
+ _wasm_tabletype_limits.restype = POINTER(wasm_limits_t)
+ _wasm_tabletype_limits.argtypes = [POINTER(wasm_tabletype_t)]
+ return _wasm_tabletype_limits(arg0)
+
+class wasm_memorytype_t(Structure):
+ pass
+
+def wasm_memorytype_delete(arg0):
+ _wasm_memorytype_delete = libiwasm.wasm_memorytype_delete
+ _wasm_memorytype_delete.restype = None
+ _wasm_memorytype_delete.argtypes = [POINTER(wasm_memorytype_t)]
+ return _wasm_memorytype_delete(arg0)
+
+class wasm_memorytype_vec_t(Structure):
+ _fields_ = [
+ ("size", c_size_t),
+ ("data", POINTER(POINTER(wasm_memorytype_t))),
+ ("num_elems", c_size_t),
+ ("size_of_elem", c_size_t),
+ ("lock", c_void_p),
+ ]
+
+ def __eq__(self, other):
+ if not isinstance(other, wasm_memorytype_vec_t):
+ return False
+ return self.size == other.size and self.num_elems == other.num_elems and self.size_of_elem == other.size_of_elem
+
+ def __repr__(self):
+ ret = ""
+ for i in range(self.num_elems):
+ ret += str(dereference(self.data[i]))
+ ret += " "
+ return ret
+
+
+
+def wasm_memorytype_vec_new_empty(arg0):
+ _wasm_memorytype_vec_new_empty = libiwasm.wasm_memorytype_vec_new_empty
+ _wasm_memorytype_vec_new_empty.restype = None
+ _wasm_memorytype_vec_new_empty.argtypes = [POINTER(wasm_memorytype_vec_t)]
+ return _wasm_memorytype_vec_new_empty(arg0)
+
+def wasm_memorytype_vec_new_uninitialized(arg0,arg1):
+ _wasm_memorytype_vec_new_uninitialized = libiwasm.wasm_memorytype_vec_new_uninitialized
+ _wasm_memorytype_vec_new_uninitialized.restype = None
+ _wasm_memorytype_vec_new_uninitialized.argtypes = [POINTER(wasm_memorytype_vec_t),c_size_t]
+ return _wasm_memorytype_vec_new_uninitialized(arg0,arg1)
+
+def wasm_memorytype_vec_new(arg0,arg1,arg2):
+ _wasm_memorytype_vec_new = libiwasm.wasm_memorytype_vec_new
+ _wasm_memorytype_vec_new.restype = None
+ _wasm_memorytype_vec_new.argtypes = [POINTER(wasm_memorytype_vec_t),c_size_t,POINTER(POINTER(wasm_memorytype_t))]
+ return _wasm_memorytype_vec_new(arg0,arg1,arg2)
+
+def wasm_memorytype_vec_copy(arg0,arg1):
+ _wasm_memorytype_vec_copy = libiwasm.wasm_memorytype_vec_copy
+ _wasm_memorytype_vec_copy.restype = None
+ _wasm_memorytype_vec_copy.argtypes = [POINTER(wasm_memorytype_vec_t),POINTER(wasm_memorytype_vec_t)]
+ return _wasm_memorytype_vec_copy(arg0,arg1)
+
+def wasm_memorytype_vec_delete(arg0):
+ _wasm_memorytype_vec_delete = libiwasm.wasm_memorytype_vec_delete
+ _wasm_memorytype_vec_delete.restype = None
+ _wasm_memorytype_vec_delete.argtypes = [POINTER(wasm_memorytype_vec_t)]
+ return _wasm_memorytype_vec_delete(arg0)
+
+def wasm_memorytype_copy(arg0):
+ _wasm_memorytype_copy = libiwasm.wasm_memorytype_copy
+ _wasm_memorytype_copy.restype = POINTER(wasm_memorytype_t)
+ _wasm_memorytype_copy.argtypes = [POINTER(wasm_memorytype_t)]
+ return _wasm_memorytype_copy(arg0)
+
+def wasm_memorytype_new(arg0):
+ _wasm_memorytype_new = libiwasm.wasm_memorytype_new
+ _wasm_memorytype_new.restype = POINTER(wasm_memorytype_t)
+ _wasm_memorytype_new.argtypes = [POINTER(wasm_limits_t)]
+ return _wasm_memorytype_new(arg0)
+
+def wasm_memorytype_limits(arg0):
+ _wasm_memorytype_limits = libiwasm.wasm_memorytype_limits
+ _wasm_memorytype_limits.restype = POINTER(wasm_limits_t)
+ _wasm_memorytype_limits.argtypes = [POINTER(wasm_memorytype_t)]
+ return _wasm_memorytype_limits(arg0)
+
+class wasm_externtype_t(Structure):
+ pass
+
+def wasm_externtype_delete(arg0):
+ _wasm_externtype_delete = libiwasm.wasm_externtype_delete
+ _wasm_externtype_delete.restype = None
+ _wasm_externtype_delete.argtypes = [POINTER(wasm_externtype_t)]
+ return _wasm_externtype_delete(arg0)
+
+class wasm_externtype_vec_t(Structure):
+ _fields_ = [
+ ("size", c_size_t),
+ ("data", POINTER(POINTER(wasm_externtype_t))),
+ ("num_elems", c_size_t),
+ ("size_of_elem", c_size_t),
+ ("lock", c_void_p),
+ ]
+
+ def __eq__(self, other):
+ if not isinstance(other, wasm_externtype_vec_t):
+ return False
+ return self.size == other.size and self.num_elems == other.num_elems and self.size_of_elem == other.size_of_elem
+
+ def __repr__(self):
+ ret = ""
+ for i in range(self.num_elems):
+ ret += str(dereference(self.data[i]))
+ ret += " "
+ return ret
+
+
+
+def wasm_externtype_vec_new_empty(arg0):
+ _wasm_externtype_vec_new_empty = libiwasm.wasm_externtype_vec_new_empty
+ _wasm_externtype_vec_new_empty.restype = None
+ _wasm_externtype_vec_new_empty.argtypes = [POINTER(wasm_externtype_vec_t)]
+ return _wasm_externtype_vec_new_empty(arg0)
+
+def wasm_externtype_vec_new_uninitialized(arg0,arg1):
+ _wasm_externtype_vec_new_uninitialized = libiwasm.wasm_externtype_vec_new_uninitialized
+ _wasm_externtype_vec_new_uninitialized.restype = None
+ _wasm_externtype_vec_new_uninitialized.argtypes = [POINTER(wasm_externtype_vec_t),c_size_t]
+ return _wasm_externtype_vec_new_uninitialized(arg0,arg1)
+
+def wasm_externtype_vec_new(arg0,arg1,arg2):
+ _wasm_externtype_vec_new = libiwasm.wasm_externtype_vec_new
+ _wasm_externtype_vec_new.restype = None
+ _wasm_externtype_vec_new.argtypes = [POINTER(wasm_externtype_vec_t),c_size_t,POINTER(POINTER(wasm_externtype_t))]
+ return _wasm_externtype_vec_new(arg0,arg1,arg2)
+
+def wasm_externtype_vec_copy(arg0,arg1):
+ _wasm_externtype_vec_copy = libiwasm.wasm_externtype_vec_copy
+ _wasm_externtype_vec_copy.restype = None
+ _wasm_externtype_vec_copy.argtypes = [POINTER(wasm_externtype_vec_t),POINTER(wasm_externtype_vec_t)]
+ return _wasm_externtype_vec_copy(arg0,arg1)
+
+def wasm_externtype_vec_delete(arg0):
+ _wasm_externtype_vec_delete = libiwasm.wasm_externtype_vec_delete
+ _wasm_externtype_vec_delete.restype = None
+ _wasm_externtype_vec_delete.argtypes = [POINTER(wasm_externtype_vec_t)]
+ return _wasm_externtype_vec_delete(arg0)
+
+def wasm_externtype_copy(arg0):
+ _wasm_externtype_copy = libiwasm.wasm_externtype_copy
+ _wasm_externtype_copy.restype = POINTER(wasm_externtype_t)
+ _wasm_externtype_copy.argtypes = [POINTER(wasm_externtype_t)]
+ return _wasm_externtype_copy(arg0)
+
+wasm_externkind_t = c_uint8
+
+WASM_EXTERN_FUNC = 0
+WASM_EXTERN_GLOBAL = 1
+WASM_EXTERN_TABLE = 2
+WASM_EXTERN_MEMORY = 3
+
+def wasm_externtype_kind(arg0):
+ _wasm_externtype_kind = libiwasm.wasm_externtype_kind
+ _wasm_externtype_kind.restype = wasm_externkind_t
+ _wasm_externtype_kind.argtypes = [POINTER(wasm_externtype_t)]
+ return _wasm_externtype_kind(arg0)
+
+def wasm_functype_as_externtype(arg0):
+ _wasm_functype_as_externtype = libiwasm.wasm_functype_as_externtype
+ _wasm_functype_as_externtype.restype = POINTER(wasm_externtype_t)
+ _wasm_functype_as_externtype.argtypes = [POINTER(wasm_functype_t)]
+ return _wasm_functype_as_externtype(arg0)
+
+def wasm_globaltype_as_externtype(arg0):
+ _wasm_globaltype_as_externtype = libiwasm.wasm_globaltype_as_externtype
+ _wasm_globaltype_as_externtype.restype = POINTER(wasm_externtype_t)
+ _wasm_globaltype_as_externtype.argtypes = [POINTER(wasm_globaltype_t)]
+ return _wasm_globaltype_as_externtype(arg0)
+
+def wasm_tabletype_as_externtype(arg0):
+ _wasm_tabletype_as_externtype = libiwasm.wasm_tabletype_as_externtype
+ _wasm_tabletype_as_externtype.restype = POINTER(wasm_externtype_t)
+ _wasm_tabletype_as_externtype.argtypes = [POINTER(wasm_tabletype_t)]
+ return _wasm_tabletype_as_externtype(arg0)
+
+def wasm_memorytype_as_externtype(arg0):
+ _wasm_memorytype_as_externtype = libiwasm.wasm_memorytype_as_externtype
+ _wasm_memorytype_as_externtype.restype = POINTER(wasm_externtype_t)
+ _wasm_memorytype_as_externtype.argtypes = [POINTER(wasm_memorytype_t)]
+ return _wasm_memorytype_as_externtype(arg0)
+
+def wasm_externtype_as_functype(arg0):
+ _wasm_externtype_as_functype = libiwasm.wasm_externtype_as_functype
+ _wasm_externtype_as_functype.restype = POINTER(wasm_functype_t)
+ _wasm_externtype_as_functype.argtypes = [POINTER(wasm_externtype_t)]
+ return _wasm_externtype_as_functype(arg0)
+
+def wasm_externtype_as_globaltype(arg0):
+ _wasm_externtype_as_globaltype = libiwasm.wasm_externtype_as_globaltype
+ _wasm_externtype_as_globaltype.restype = POINTER(wasm_globaltype_t)
+ _wasm_externtype_as_globaltype.argtypes = [POINTER(wasm_externtype_t)]
+ return _wasm_externtype_as_globaltype(arg0)
+
+def wasm_externtype_as_tabletype(arg0):
+ _wasm_externtype_as_tabletype = libiwasm.wasm_externtype_as_tabletype
+ _wasm_externtype_as_tabletype.restype = POINTER(wasm_tabletype_t)
+ _wasm_externtype_as_tabletype.argtypes = [POINTER(wasm_externtype_t)]
+ return _wasm_externtype_as_tabletype(arg0)
+
+def wasm_externtype_as_memorytype(arg0):
+ _wasm_externtype_as_memorytype = libiwasm.wasm_externtype_as_memorytype
+ _wasm_externtype_as_memorytype.restype = POINTER(wasm_memorytype_t)
+ _wasm_externtype_as_memorytype.argtypes = [POINTER(wasm_externtype_t)]
+ return _wasm_externtype_as_memorytype(arg0)
+
+def wasm_functype_as_externtype_const(arg0):
+ _wasm_functype_as_externtype_const = libiwasm.wasm_functype_as_externtype_const
+ _wasm_functype_as_externtype_const.restype = POINTER(wasm_externtype_t)
+ _wasm_functype_as_externtype_const.argtypes = [POINTER(wasm_functype_t)]
+ return _wasm_functype_as_externtype_const(arg0)
+
+def wasm_globaltype_as_externtype_const(arg0):
+ _wasm_globaltype_as_externtype_const = libiwasm.wasm_globaltype_as_externtype_const
+ _wasm_globaltype_as_externtype_const.restype = POINTER(wasm_externtype_t)
+ _wasm_globaltype_as_externtype_const.argtypes = [POINTER(wasm_globaltype_t)]
+ return _wasm_globaltype_as_externtype_const(arg0)
+
+def wasm_tabletype_as_externtype_const(arg0):
+ _wasm_tabletype_as_externtype_const = libiwasm.wasm_tabletype_as_externtype_const
+ _wasm_tabletype_as_externtype_const.restype = POINTER(wasm_externtype_t)
+ _wasm_tabletype_as_externtype_const.argtypes = [POINTER(wasm_tabletype_t)]
+ return _wasm_tabletype_as_externtype_const(arg0)
+
+def wasm_memorytype_as_externtype_const(arg0):
+ _wasm_memorytype_as_externtype_const = libiwasm.wasm_memorytype_as_externtype_const
+ _wasm_memorytype_as_externtype_const.restype = POINTER(wasm_externtype_t)
+ _wasm_memorytype_as_externtype_const.argtypes = [POINTER(wasm_memorytype_t)]
+ return _wasm_memorytype_as_externtype_const(arg0)
+
+def wasm_externtype_as_functype_const(arg0):
+ _wasm_externtype_as_functype_const = libiwasm.wasm_externtype_as_functype_const
+ _wasm_externtype_as_functype_const.restype = POINTER(wasm_functype_t)
+ _wasm_externtype_as_functype_const.argtypes = [POINTER(wasm_externtype_t)]
+ return _wasm_externtype_as_functype_const(arg0)
+
+def wasm_externtype_as_globaltype_const(arg0):
+ _wasm_externtype_as_globaltype_const = libiwasm.wasm_externtype_as_globaltype_const
+ _wasm_externtype_as_globaltype_const.restype = POINTER(wasm_globaltype_t)
+ _wasm_externtype_as_globaltype_const.argtypes = [POINTER(wasm_externtype_t)]
+ return _wasm_externtype_as_globaltype_const(arg0)
+
+def wasm_externtype_as_tabletype_const(arg0):
+ _wasm_externtype_as_tabletype_const = libiwasm.wasm_externtype_as_tabletype_const
+ _wasm_externtype_as_tabletype_const.restype = POINTER(wasm_tabletype_t)
+ _wasm_externtype_as_tabletype_const.argtypes = [POINTER(wasm_externtype_t)]
+ return _wasm_externtype_as_tabletype_const(arg0)
+
+def wasm_externtype_as_memorytype_const(arg0):
+ _wasm_externtype_as_memorytype_const = libiwasm.wasm_externtype_as_memorytype_const
+ _wasm_externtype_as_memorytype_const.restype = POINTER(wasm_memorytype_t)
+ _wasm_externtype_as_memorytype_const.argtypes = [POINTER(wasm_externtype_t)]
+ return _wasm_externtype_as_memorytype_const(arg0)
+
+class wasm_importtype_t(Structure):
+ pass
+
+def wasm_importtype_delete(arg0):
+ _wasm_importtype_delete = libiwasm.wasm_importtype_delete
+ _wasm_importtype_delete.restype = None
+ _wasm_importtype_delete.argtypes = [POINTER(wasm_importtype_t)]
+ return _wasm_importtype_delete(arg0)
+
+class wasm_importtype_vec_t(Structure):
+ _fields_ = [
+ ("size", c_size_t),
+ ("data", POINTER(POINTER(wasm_importtype_t))),
+ ("num_elems", c_size_t),
+ ("size_of_elem", c_size_t),
+ ("lock", c_void_p),
+ ]
+
+ def __eq__(self, other):
+ if not isinstance(other, wasm_importtype_vec_t):
+ return False
+ return self.size == other.size and self.num_elems == other.num_elems and self.size_of_elem == other.size_of_elem
+
+ def __repr__(self):
+ ret = ""
+ for i in range(self.num_elems):
+ ret += str(dereference(self.data[i]))
+ ret += " "
+ return ret
+
+
+
+def wasm_importtype_vec_new_empty(arg0):
+ _wasm_importtype_vec_new_empty = libiwasm.wasm_importtype_vec_new_empty
+ _wasm_importtype_vec_new_empty.restype = None
+ _wasm_importtype_vec_new_empty.argtypes = [POINTER(wasm_importtype_vec_t)]
+ return _wasm_importtype_vec_new_empty(arg0)
+
+def wasm_importtype_vec_new_uninitialized(arg0,arg1):
+ _wasm_importtype_vec_new_uninitialized = libiwasm.wasm_importtype_vec_new_uninitialized
+ _wasm_importtype_vec_new_uninitialized.restype = None
+ _wasm_importtype_vec_new_uninitialized.argtypes = [POINTER(wasm_importtype_vec_t),c_size_t]
+ return _wasm_importtype_vec_new_uninitialized(arg0,arg1)
+
+def wasm_importtype_vec_new(arg0,arg1,arg2):
+ _wasm_importtype_vec_new = libiwasm.wasm_importtype_vec_new
+ _wasm_importtype_vec_new.restype = None
+ _wasm_importtype_vec_new.argtypes = [POINTER(wasm_importtype_vec_t),c_size_t,POINTER(POINTER(wasm_importtype_t))]
+ return _wasm_importtype_vec_new(arg0,arg1,arg2)
+
+def wasm_importtype_vec_copy(arg0,arg1):
+ _wasm_importtype_vec_copy = libiwasm.wasm_importtype_vec_copy
+ _wasm_importtype_vec_copy.restype = None
+ _wasm_importtype_vec_copy.argtypes = [POINTER(wasm_importtype_vec_t),POINTER(wasm_importtype_vec_t)]
+ return _wasm_importtype_vec_copy(arg0,arg1)
+
+def wasm_importtype_vec_delete(arg0):
+ _wasm_importtype_vec_delete = libiwasm.wasm_importtype_vec_delete
+ _wasm_importtype_vec_delete.restype = None
+ _wasm_importtype_vec_delete.argtypes = [POINTER(wasm_importtype_vec_t)]
+ return _wasm_importtype_vec_delete(arg0)
+
+def wasm_importtype_copy(arg0):
+ _wasm_importtype_copy = libiwasm.wasm_importtype_copy
+ _wasm_importtype_copy.restype = POINTER(wasm_importtype_t)
+ _wasm_importtype_copy.argtypes = [POINTER(wasm_importtype_t)]
+ return _wasm_importtype_copy(arg0)
+
+def wasm_importtype_new(arg0,arg1,arg2):
+ _wasm_importtype_new = libiwasm.wasm_importtype_new
+ _wasm_importtype_new.restype = POINTER(wasm_importtype_t)
+ _wasm_importtype_new.argtypes = [POINTER(wasm_name_t),POINTER(wasm_name_t),POINTER(wasm_externtype_t)]
+ return _wasm_importtype_new(arg0,arg1,arg2)
+
+def wasm_importtype_module(arg0):
+ _wasm_importtype_module = libiwasm.wasm_importtype_module
+ _wasm_importtype_module.restype = POINTER(wasm_name_t)
+ _wasm_importtype_module.argtypes = [POINTER(wasm_importtype_t)]
+ return _wasm_importtype_module(arg0)
+
+def wasm_importtype_name(arg0):
+ _wasm_importtype_name = libiwasm.wasm_importtype_name
+ _wasm_importtype_name.restype = POINTER(wasm_name_t)
+ _wasm_importtype_name.argtypes = [POINTER(wasm_importtype_t)]
+ return _wasm_importtype_name(arg0)
+
+def wasm_importtype_type(arg0):
+ _wasm_importtype_type = libiwasm.wasm_importtype_type
+ _wasm_importtype_type.restype = POINTER(wasm_externtype_t)
+ _wasm_importtype_type.argtypes = [POINTER(wasm_importtype_t)]
+ return _wasm_importtype_type(arg0)
+
+class wasm_exporttype_t(Structure):
+ pass
+
+def wasm_exporttype_delete(arg0):
+ _wasm_exporttype_delete = libiwasm.wasm_exporttype_delete
+ _wasm_exporttype_delete.restype = None
+ _wasm_exporttype_delete.argtypes = [POINTER(wasm_exporttype_t)]
+ return _wasm_exporttype_delete(arg0)
+
+class wasm_exporttype_vec_t(Structure):
+ _fields_ = [
+ ("size", c_size_t),
+ ("data", POINTER(POINTER(wasm_exporttype_t))),
+ ("num_elems", c_size_t),
+ ("size_of_elem", c_size_t),
+ ("lock", c_void_p),
+ ]
+
+ def __eq__(self, other):
+ if not isinstance(other, wasm_exporttype_vec_t):
+ return False
+ return self.size == other.size and self.num_elems == other.num_elems and self.size_of_elem == other.size_of_elem
+
+ def __repr__(self):
+ ret = ""
+ for i in range(self.num_elems):
+ ret += str(dereference(self.data[i]))
+ ret += " "
+ return ret
+
+
+
+def wasm_exporttype_vec_new_empty(arg0):
+ _wasm_exporttype_vec_new_empty = libiwasm.wasm_exporttype_vec_new_empty
+ _wasm_exporttype_vec_new_empty.restype = None
+ _wasm_exporttype_vec_new_empty.argtypes = [POINTER(wasm_exporttype_vec_t)]
+ return _wasm_exporttype_vec_new_empty(arg0)
+
+def wasm_exporttype_vec_new_uninitialized(arg0,arg1):
+ _wasm_exporttype_vec_new_uninitialized = libiwasm.wasm_exporttype_vec_new_uninitialized
+ _wasm_exporttype_vec_new_uninitialized.restype = None
+ _wasm_exporttype_vec_new_uninitialized.argtypes = [POINTER(wasm_exporttype_vec_t),c_size_t]
+ return _wasm_exporttype_vec_new_uninitialized(arg0,arg1)
+
+def wasm_exporttype_vec_new(arg0,arg1,arg2):
+ _wasm_exporttype_vec_new = libiwasm.wasm_exporttype_vec_new
+ _wasm_exporttype_vec_new.restype = None
+ _wasm_exporttype_vec_new.argtypes = [POINTER(wasm_exporttype_vec_t),c_size_t,POINTER(POINTER(wasm_exporttype_t))]
+ return _wasm_exporttype_vec_new(arg0,arg1,arg2)
+
+def wasm_exporttype_vec_copy(arg0,arg1):
+ _wasm_exporttype_vec_copy = libiwasm.wasm_exporttype_vec_copy
+ _wasm_exporttype_vec_copy.restype = None
+ _wasm_exporttype_vec_copy.argtypes = [POINTER(wasm_exporttype_vec_t),POINTER(wasm_exporttype_vec_t)]
+ return _wasm_exporttype_vec_copy(arg0,arg1)
+
+def wasm_exporttype_vec_delete(arg0):
+ _wasm_exporttype_vec_delete = libiwasm.wasm_exporttype_vec_delete
+ _wasm_exporttype_vec_delete.restype = None
+ _wasm_exporttype_vec_delete.argtypes = [POINTER(wasm_exporttype_vec_t)]
+ return _wasm_exporttype_vec_delete(arg0)
+
+def wasm_exporttype_copy(arg0):
+ _wasm_exporttype_copy = libiwasm.wasm_exporttype_copy
+ _wasm_exporttype_copy.restype = POINTER(wasm_exporttype_t)
+ _wasm_exporttype_copy.argtypes = [POINTER(wasm_exporttype_t)]
+ return _wasm_exporttype_copy(arg0)
+
+def wasm_exporttype_new(arg0,arg1):
+ _wasm_exporttype_new = libiwasm.wasm_exporttype_new
+ _wasm_exporttype_new.restype = POINTER(wasm_exporttype_t)
+ _wasm_exporttype_new.argtypes = [POINTER(wasm_name_t),POINTER(wasm_externtype_t)]
+ return _wasm_exporttype_new(arg0,arg1)
+
+def wasm_exporttype_name(arg0):
+ _wasm_exporttype_name = libiwasm.wasm_exporttype_name
+ _wasm_exporttype_name.restype = POINTER(wasm_name_t)
+ _wasm_exporttype_name.argtypes = [POINTER(wasm_exporttype_t)]
+ return _wasm_exporttype_name(arg0)
+
+def wasm_exporttype_type(arg0):
+ _wasm_exporttype_type = libiwasm.wasm_exporttype_type
+ _wasm_exporttype_type.restype = POINTER(wasm_externtype_t)
+ _wasm_exporttype_type.argtypes = [POINTER(wasm_exporttype_t)]
+ return _wasm_exporttype_type(arg0)
+
+def wasm_val_delete(arg0):
+ _wasm_val_delete = libiwasm.wasm_val_delete
+ _wasm_val_delete.restype = None
+ _wasm_val_delete.argtypes = [POINTER(wasm_val_t)]
+ return _wasm_val_delete(arg0)
+
+def wasm_val_copy(arg0,arg1):
+ _wasm_val_copy = libiwasm.wasm_val_copy
+ _wasm_val_copy.restype = None
+ _wasm_val_copy.argtypes = [POINTER(wasm_val_t),POINTER(wasm_val_t)]
+ return _wasm_val_copy(arg0,arg1)
+
+class wasm_val_vec_t(Structure):
+ _fields_ = [
+ ("size", c_size_t),
+ ("data", POINTER(wasm_val_t)),
+ ("num_elems", c_size_t),
+ ("size_of_elem", c_size_t),
+ ("lock", c_void_p),
+ ]
+
+ def __eq__(self, other):
+ if not isinstance(other, wasm_val_vec_t):
+ return False
+ return self.size == other.size and self.num_elems == other.num_elems and self.size_of_elem == other.size_of_elem
+
+ def __repr__(self):
+ ret = ""
+ for i in range(self.num_elems):
+ ret += str(self.data[i])
+ ret += " "
+ return ret
+
+
+
+def wasm_val_vec_new_empty(arg0):
+ _wasm_val_vec_new_empty = libiwasm.wasm_val_vec_new_empty
+ _wasm_val_vec_new_empty.restype = None
+ _wasm_val_vec_new_empty.argtypes = [POINTER(wasm_val_vec_t)]
+ return _wasm_val_vec_new_empty(arg0)
+
+def wasm_val_vec_new_uninitialized(arg0,arg1):
+ _wasm_val_vec_new_uninitialized = libiwasm.wasm_val_vec_new_uninitialized
+ _wasm_val_vec_new_uninitialized.restype = None
+ _wasm_val_vec_new_uninitialized.argtypes = [POINTER(wasm_val_vec_t),c_size_t]
+ return _wasm_val_vec_new_uninitialized(arg0,arg1)
+
+def wasm_val_vec_new(arg0,arg1,arg2):
+ _wasm_val_vec_new = libiwasm.wasm_val_vec_new
+ _wasm_val_vec_new.restype = None
+ _wasm_val_vec_new.argtypes = [POINTER(wasm_val_vec_t),c_size_t,POINTER(wasm_val_t)]
+ return _wasm_val_vec_new(arg0,arg1,arg2)
+
+def wasm_val_vec_copy(arg0,arg1):
+ _wasm_val_vec_copy = libiwasm.wasm_val_vec_copy
+ _wasm_val_vec_copy.restype = None
+ _wasm_val_vec_copy.argtypes = [POINTER(wasm_val_vec_t),POINTER(wasm_val_vec_t)]
+ return _wasm_val_vec_copy(arg0,arg1)
+
+def wasm_val_vec_delete(arg0):
+ _wasm_val_vec_delete = libiwasm.wasm_val_vec_delete
+ _wasm_val_vec_delete.restype = None
+ _wasm_val_vec_delete.argtypes = [POINTER(wasm_val_vec_t)]
+ return _wasm_val_vec_delete(arg0)
+
+def wasm_ref_delete(arg0):
+ _wasm_ref_delete = libiwasm.wasm_ref_delete
+ _wasm_ref_delete.restype = None
+ _wasm_ref_delete.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_delete(arg0)
+
+def wasm_ref_copy(arg0):
+ _wasm_ref_copy = libiwasm.wasm_ref_copy
+ _wasm_ref_copy.restype = POINTER(wasm_ref_t)
+ _wasm_ref_copy.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_copy(arg0)
+
+def wasm_ref_same(arg0,arg1):
+ _wasm_ref_same = libiwasm.wasm_ref_same
+ _wasm_ref_same.restype = c_bool
+ _wasm_ref_same.argtypes = [POINTER(wasm_ref_t),POINTER(wasm_ref_t)]
+ return _wasm_ref_same(arg0,arg1)
+
+def wasm_ref_get_host_info(arg0):
+ _wasm_ref_get_host_info = libiwasm.wasm_ref_get_host_info
+ _wasm_ref_get_host_info.restype = c_void_p
+ _wasm_ref_get_host_info.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_get_host_info(arg0)
+
+def wasm_ref_set_host_info(arg0,arg1):
+ _wasm_ref_set_host_info = libiwasm.wasm_ref_set_host_info
+ _wasm_ref_set_host_info.restype = None
+ _wasm_ref_set_host_info.argtypes = [POINTER(wasm_ref_t),c_void_p]
+ return _wasm_ref_set_host_info(arg0,arg1)
+
+def wasm_ref_set_host_info_with_finalizer(arg0,arg1,arg2):
+ _wasm_ref_set_host_info_with_finalizer = libiwasm.wasm_ref_set_host_info_with_finalizer
+ _wasm_ref_set_host_info_with_finalizer.restype = None
+ _wasm_ref_set_host_info_with_finalizer.argtypes = [POINTER(wasm_ref_t),c_void_p,CFUNCTYPE(None,c_void_p)]
+ return _wasm_ref_set_host_info_with_finalizer(arg0,arg1,arg2)
+
+class wasm_frame_t(Structure):
+ pass
+
+def wasm_frame_delete(arg0):
+ _wasm_frame_delete = libiwasm.wasm_frame_delete
+ _wasm_frame_delete.restype = None
+ _wasm_frame_delete.argtypes = [POINTER(wasm_frame_t)]
+ return _wasm_frame_delete(arg0)
+
+class wasm_frame_vec_t(Structure):
+ _fields_ = [
+ ("size", c_size_t),
+ ("data", POINTER(POINTER(wasm_frame_t))),
+ ("num_elems", c_size_t),
+ ("size_of_elem", c_size_t),
+ ("lock", c_void_p),
+ ]
+
+ def __eq__(self, other):
+ if not isinstance(other, wasm_frame_vec_t):
+ return False
+ return self.size == other.size and self.num_elems == other.num_elems and self.size_of_elem == other.size_of_elem
+
+ def __repr__(self):
+ ret = ""
+ for i in range(self.num_elems):
+ ret += str(dereference(self.data[i]))
+ ret += " "
+ return ret
+
+
+
+def wasm_frame_vec_new_empty(arg0):
+ _wasm_frame_vec_new_empty = libiwasm.wasm_frame_vec_new_empty
+ _wasm_frame_vec_new_empty.restype = None
+ _wasm_frame_vec_new_empty.argtypes = [POINTER(wasm_frame_vec_t)]
+ return _wasm_frame_vec_new_empty(arg0)
+
+def wasm_frame_vec_new_uninitialized(arg0,arg1):
+ _wasm_frame_vec_new_uninitialized = libiwasm.wasm_frame_vec_new_uninitialized
+ _wasm_frame_vec_new_uninitialized.restype = None
+ _wasm_frame_vec_new_uninitialized.argtypes = [POINTER(wasm_frame_vec_t),c_size_t]
+ return _wasm_frame_vec_new_uninitialized(arg0,arg1)
+
+def wasm_frame_vec_new(arg0,arg1,arg2):
+ _wasm_frame_vec_new = libiwasm.wasm_frame_vec_new
+ _wasm_frame_vec_new.restype = None
+ _wasm_frame_vec_new.argtypes = [POINTER(wasm_frame_vec_t),c_size_t,POINTER(POINTER(wasm_frame_t))]
+ return _wasm_frame_vec_new(arg0,arg1,arg2)
+
+def wasm_frame_vec_copy(arg0,arg1):
+ _wasm_frame_vec_copy = libiwasm.wasm_frame_vec_copy
+ _wasm_frame_vec_copy.restype = None
+ _wasm_frame_vec_copy.argtypes = [POINTER(wasm_frame_vec_t),POINTER(wasm_frame_vec_t)]
+ return _wasm_frame_vec_copy(arg0,arg1)
+
+def wasm_frame_vec_delete(arg0):
+ _wasm_frame_vec_delete = libiwasm.wasm_frame_vec_delete
+ _wasm_frame_vec_delete.restype = None
+ _wasm_frame_vec_delete.argtypes = [POINTER(wasm_frame_vec_t)]
+ return _wasm_frame_vec_delete(arg0)
+
+def wasm_frame_copy(arg0):
+ _wasm_frame_copy = libiwasm.wasm_frame_copy
+ _wasm_frame_copy.restype = POINTER(wasm_frame_t)
+ _wasm_frame_copy.argtypes = [POINTER(wasm_frame_t)]
+ return _wasm_frame_copy(arg0)
+
+def wasm_frame_instance(arg0):
+ _wasm_frame_instance = libiwasm.wasm_frame_instance
+ _wasm_frame_instance.restype = POINTER(wasm_instance_t)
+ _wasm_frame_instance.argtypes = [POINTER(wasm_frame_t)]
+ return _wasm_frame_instance(arg0)
+
+def wasm_frame_func_index(arg0):
+ _wasm_frame_func_index = libiwasm.wasm_frame_func_index
+ _wasm_frame_func_index.restype = c_uint32
+ _wasm_frame_func_index.argtypes = [POINTER(wasm_frame_t)]
+ return _wasm_frame_func_index(arg0)
+
+def wasm_frame_func_offset(arg0):
+ _wasm_frame_func_offset = libiwasm.wasm_frame_func_offset
+ _wasm_frame_func_offset.restype = c_size_t
+ _wasm_frame_func_offset.argtypes = [POINTER(wasm_frame_t)]
+ return _wasm_frame_func_offset(arg0)
+
+def wasm_frame_module_offset(arg0):
+ _wasm_frame_module_offset = libiwasm.wasm_frame_module_offset
+ _wasm_frame_module_offset.restype = c_size_t
+ _wasm_frame_module_offset.argtypes = [POINTER(wasm_frame_t)]
+ return _wasm_frame_module_offset(arg0)
+
+wasm_message_t = wasm_name_t
+
+class wasm_trap_t(Structure):
+ pass
+
+def wasm_trap_delete(arg0):
+ _wasm_trap_delete = libiwasm.wasm_trap_delete
+ _wasm_trap_delete.restype = None
+ _wasm_trap_delete.argtypes = [POINTER(wasm_trap_t)]
+ return _wasm_trap_delete(arg0)
+
+def wasm_trap_copy(arg0):
+ _wasm_trap_copy = libiwasm.wasm_trap_copy
+ _wasm_trap_copy.restype = POINTER(wasm_trap_t)
+ _wasm_trap_copy.argtypes = [POINTER(wasm_trap_t)]
+ return _wasm_trap_copy(arg0)
+
+def wasm_trap_same(arg0,arg1):
+ _wasm_trap_same = libiwasm.wasm_trap_same
+ _wasm_trap_same.restype = c_bool
+ _wasm_trap_same.argtypes = [POINTER(wasm_trap_t),POINTER(wasm_trap_t)]
+ return _wasm_trap_same(arg0,arg1)
+
+def wasm_trap_get_host_info(arg0):
+ _wasm_trap_get_host_info = libiwasm.wasm_trap_get_host_info
+ _wasm_trap_get_host_info.restype = c_void_p
+ _wasm_trap_get_host_info.argtypes = [POINTER(wasm_trap_t)]
+ return _wasm_trap_get_host_info(arg0)
+
+def wasm_trap_set_host_info(arg0,arg1):
+ _wasm_trap_set_host_info = libiwasm.wasm_trap_set_host_info
+ _wasm_trap_set_host_info.restype = None
+ _wasm_trap_set_host_info.argtypes = [POINTER(wasm_trap_t),c_void_p]
+ return _wasm_trap_set_host_info(arg0,arg1)
+
+def wasm_trap_set_host_info_with_finalizer(arg0,arg1,arg2):
+ _wasm_trap_set_host_info_with_finalizer = libiwasm.wasm_trap_set_host_info_with_finalizer
+ _wasm_trap_set_host_info_with_finalizer.restype = None
+ _wasm_trap_set_host_info_with_finalizer.argtypes = [POINTER(wasm_trap_t),c_void_p,CFUNCTYPE(None,c_void_p)]
+ return _wasm_trap_set_host_info_with_finalizer(arg0,arg1,arg2)
+
+def wasm_trap_as_ref(arg0):
+ _wasm_trap_as_ref = libiwasm.wasm_trap_as_ref
+ _wasm_trap_as_ref.restype = POINTER(wasm_ref_t)
+ _wasm_trap_as_ref.argtypes = [POINTER(wasm_trap_t)]
+ return _wasm_trap_as_ref(arg0)
+
+def wasm_ref_as_trap(arg0):
+ _wasm_ref_as_trap = libiwasm.wasm_ref_as_trap
+ _wasm_ref_as_trap.restype = POINTER(wasm_trap_t)
+ _wasm_ref_as_trap.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_as_trap(arg0)
+
+def wasm_trap_as_ref_const(arg0):
+ _wasm_trap_as_ref_const = libiwasm.wasm_trap_as_ref_const
+ _wasm_trap_as_ref_const.restype = POINTER(wasm_ref_t)
+ _wasm_trap_as_ref_const.argtypes = [POINTER(wasm_trap_t)]
+ return _wasm_trap_as_ref_const(arg0)
+
+def wasm_ref_as_trap_const(arg0):
+ _wasm_ref_as_trap_const = libiwasm.wasm_ref_as_trap_const
+ _wasm_ref_as_trap_const.restype = POINTER(wasm_trap_t)
+ _wasm_ref_as_trap_const.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_as_trap_const(arg0)
+
+def wasm_trap_new(arg0,arg1):
+ _wasm_trap_new = libiwasm.wasm_trap_new
+ _wasm_trap_new.restype = POINTER(wasm_trap_t)
+ _wasm_trap_new.argtypes = [POINTER(wasm_store_t),POINTER(wasm_message_t)]
+ return _wasm_trap_new(arg0,arg1)
+
+def wasm_trap_message(arg0,arg1):
+ _wasm_trap_message = libiwasm.wasm_trap_message
+ _wasm_trap_message.restype = None
+ _wasm_trap_message.argtypes = [POINTER(wasm_trap_t),POINTER(wasm_message_t)]
+ return _wasm_trap_message(arg0,arg1)
+
+def wasm_trap_origin(arg0):
+ _wasm_trap_origin = libiwasm.wasm_trap_origin
+ _wasm_trap_origin.restype = POINTER(wasm_frame_t)
+ _wasm_trap_origin.argtypes = [POINTER(wasm_trap_t)]
+ return _wasm_trap_origin(arg0)
+
+def wasm_trap_trace(arg0,arg1):
+ _wasm_trap_trace = libiwasm.wasm_trap_trace
+ _wasm_trap_trace.restype = None
+ _wasm_trap_trace.argtypes = [POINTER(wasm_trap_t),POINTER(wasm_frame_vec_t)]
+ return _wasm_trap_trace(arg0,arg1)
+
+class wasm_foreign_t(Structure):
+ pass
+
+def wasm_foreign_delete(arg0):
+ _wasm_foreign_delete = libiwasm.wasm_foreign_delete
+ _wasm_foreign_delete.restype = None
+ _wasm_foreign_delete.argtypes = [POINTER(wasm_foreign_t)]
+ return _wasm_foreign_delete(arg0)
+
+def wasm_foreign_copy(arg0):
+ _wasm_foreign_copy = libiwasm.wasm_foreign_copy
+ _wasm_foreign_copy.restype = POINTER(wasm_foreign_t)
+ _wasm_foreign_copy.argtypes = [POINTER(wasm_foreign_t)]
+ return _wasm_foreign_copy(arg0)
+
+def wasm_foreign_same(arg0,arg1):
+ _wasm_foreign_same = libiwasm.wasm_foreign_same
+ _wasm_foreign_same.restype = c_bool
+ _wasm_foreign_same.argtypes = [POINTER(wasm_foreign_t),POINTER(wasm_foreign_t)]
+ return _wasm_foreign_same(arg0,arg1)
+
+def wasm_foreign_get_host_info(arg0):
+ _wasm_foreign_get_host_info = libiwasm.wasm_foreign_get_host_info
+ _wasm_foreign_get_host_info.restype = c_void_p
+ _wasm_foreign_get_host_info.argtypes = [POINTER(wasm_foreign_t)]
+ return _wasm_foreign_get_host_info(arg0)
+
+def wasm_foreign_set_host_info(arg0,arg1):
+ _wasm_foreign_set_host_info = libiwasm.wasm_foreign_set_host_info
+ _wasm_foreign_set_host_info.restype = None
+ _wasm_foreign_set_host_info.argtypes = [POINTER(wasm_foreign_t),c_void_p]
+ return _wasm_foreign_set_host_info(arg0,arg1)
+
+def wasm_foreign_set_host_info_with_finalizer(arg0,arg1,arg2):
+ _wasm_foreign_set_host_info_with_finalizer = libiwasm.wasm_foreign_set_host_info_with_finalizer
+ _wasm_foreign_set_host_info_with_finalizer.restype = None
+ _wasm_foreign_set_host_info_with_finalizer.argtypes = [POINTER(wasm_foreign_t),c_void_p,CFUNCTYPE(None,c_void_p)]
+ return _wasm_foreign_set_host_info_with_finalizer(arg0,arg1,arg2)
+
+def wasm_foreign_as_ref(arg0):
+ _wasm_foreign_as_ref = libiwasm.wasm_foreign_as_ref
+ _wasm_foreign_as_ref.restype = POINTER(wasm_ref_t)
+ _wasm_foreign_as_ref.argtypes = [POINTER(wasm_foreign_t)]
+ return _wasm_foreign_as_ref(arg0)
+
+def wasm_ref_as_foreign(arg0):
+ _wasm_ref_as_foreign = libiwasm.wasm_ref_as_foreign
+ _wasm_ref_as_foreign.restype = POINTER(wasm_foreign_t)
+ _wasm_ref_as_foreign.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_as_foreign(arg0)
+
+def wasm_foreign_as_ref_const(arg0):
+ _wasm_foreign_as_ref_const = libiwasm.wasm_foreign_as_ref_const
+ _wasm_foreign_as_ref_const.restype = POINTER(wasm_ref_t)
+ _wasm_foreign_as_ref_const.argtypes = [POINTER(wasm_foreign_t)]
+ return _wasm_foreign_as_ref_const(arg0)
+
+def wasm_ref_as_foreign_const(arg0):
+ _wasm_ref_as_foreign_const = libiwasm.wasm_ref_as_foreign_const
+ _wasm_ref_as_foreign_const.restype = POINTER(wasm_foreign_t)
+ _wasm_ref_as_foreign_const.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_as_foreign_const(arg0)
+
+def wasm_foreign_new(arg0):
+ _wasm_foreign_new = libiwasm.wasm_foreign_new
+ _wasm_foreign_new.restype = POINTER(wasm_foreign_t)
+ _wasm_foreign_new.argtypes = [POINTER(wasm_store_t)]
+ return _wasm_foreign_new(arg0)
+
+class WASMModuleCommon(Structure):
+ pass
+
+class WASMModuleCommon(Structure):
+ pass
+
+wasm_module_t = POINTER(WASMModuleCommon)
+
+def wasm_module_new(arg0,arg1):
+ _wasm_module_new = libiwasm.wasm_module_new
+ _wasm_module_new.restype = POINTER(wasm_module_t)
+ _wasm_module_new.argtypes = [POINTER(wasm_store_t),POINTER(wasm_byte_vec_t)]
+ return _wasm_module_new(arg0,arg1)
+
+def wasm_module_delete(arg0):
+ _wasm_module_delete = libiwasm.wasm_module_delete
+ _wasm_module_delete.restype = None
+ _wasm_module_delete.argtypes = [POINTER(wasm_module_t)]
+ return _wasm_module_delete(arg0)
+
+def wasm_module_validate(arg0,arg1):
+ _wasm_module_validate = libiwasm.wasm_module_validate
+ _wasm_module_validate.restype = c_bool
+ _wasm_module_validate.argtypes = [POINTER(wasm_store_t),POINTER(wasm_byte_vec_t)]
+ return _wasm_module_validate(arg0,arg1)
+
+def wasm_module_imports(arg0,arg1):
+ _wasm_module_imports = libiwasm.wasm_module_imports
+ _wasm_module_imports.restype = None
+ _wasm_module_imports.argtypes = [POINTER(wasm_module_t),POINTER(wasm_importtype_vec_t)]
+ return _wasm_module_imports(arg0,arg1)
+
+def wasm_module_exports(arg0,arg1):
+ _wasm_module_exports = libiwasm.wasm_module_exports
+ _wasm_module_exports.restype = None
+ _wasm_module_exports.argtypes = [POINTER(wasm_module_t),POINTER(wasm_exporttype_vec_t)]
+ return _wasm_module_exports(arg0,arg1)
+
+def wasm_module_serialize(arg0,arg1):
+ _wasm_module_serialize = libiwasm.wasm_module_serialize
+ _wasm_module_serialize.restype = None
+ _wasm_module_serialize.argtypes = [POINTER(wasm_module_t),POINTER(wasm_byte_vec_t)]
+ return _wasm_module_serialize(arg0,arg1)
+
+def wasm_module_deserialize(arg0,arg1):
+ _wasm_module_deserialize = libiwasm.wasm_module_deserialize
+ _wasm_module_deserialize.restype = POINTER(wasm_module_t)
+ _wasm_module_deserialize.argtypes = [POINTER(wasm_store_t),POINTER(wasm_byte_vec_t)]
+ return _wasm_module_deserialize(arg0,arg1)
+
+class wasm_func_t(Structure):
+ pass
+
+def wasm_func_delete(arg0):
+ _wasm_func_delete = libiwasm.wasm_func_delete
+ _wasm_func_delete.restype = None
+ _wasm_func_delete.argtypes = [POINTER(wasm_func_t)]
+ return _wasm_func_delete(arg0)
+
+def wasm_func_copy(arg0):
+ _wasm_func_copy = libiwasm.wasm_func_copy
+ _wasm_func_copy.restype = POINTER(wasm_func_t)
+ _wasm_func_copy.argtypes = [POINTER(wasm_func_t)]
+ return _wasm_func_copy(arg0)
+
+def wasm_func_same(arg0,arg1):
+ _wasm_func_same = libiwasm.wasm_func_same
+ _wasm_func_same.restype = c_bool
+ _wasm_func_same.argtypes = [POINTER(wasm_func_t),POINTER(wasm_func_t)]
+ return _wasm_func_same(arg0,arg1)
+
+def wasm_func_get_host_info(arg0):
+ _wasm_func_get_host_info = libiwasm.wasm_func_get_host_info
+ _wasm_func_get_host_info.restype = c_void_p
+ _wasm_func_get_host_info.argtypes = [POINTER(wasm_func_t)]
+ return _wasm_func_get_host_info(arg0)
+
+def wasm_func_set_host_info(arg0,arg1):
+ _wasm_func_set_host_info = libiwasm.wasm_func_set_host_info
+ _wasm_func_set_host_info.restype = None
+ _wasm_func_set_host_info.argtypes = [POINTER(wasm_func_t),c_void_p]
+ return _wasm_func_set_host_info(arg0,arg1)
+
+def wasm_func_set_host_info_with_finalizer(arg0,arg1,arg2):
+ _wasm_func_set_host_info_with_finalizer = libiwasm.wasm_func_set_host_info_with_finalizer
+ _wasm_func_set_host_info_with_finalizer.restype = None
+ _wasm_func_set_host_info_with_finalizer.argtypes = [POINTER(wasm_func_t),c_void_p,CFUNCTYPE(None,c_void_p)]
+ return _wasm_func_set_host_info_with_finalizer(arg0,arg1,arg2)
+
+def wasm_func_as_ref(arg0):
+ _wasm_func_as_ref = libiwasm.wasm_func_as_ref
+ _wasm_func_as_ref.restype = POINTER(wasm_ref_t)
+ _wasm_func_as_ref.argtypes = [POINTER(wasm_func_t)]
+ return _wasm_func_as_ref(arg0)
+
+def wasm_ref_as_func(arg0):
+ _wasm_ref_as_func = libiwasm.wasm_ref_as_func
+ _wasm_ref_as_func.restype = POINTER(wasm_func_t)
+ _wasm_ref_as_func.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_as_func(arg0)
+
+def wasm_func_as_ref_const(arg0):
+ _wasm_func_as_ref_const = libiwasm.wasm_func_as_ref_const
+ _wasm_func_as_ref_const.restype = POINTER(wasm_ref_t)
+ _wasm_func_as_ref_const.argtypes = [POINTER(wasm_func_t)]
+ return _wasm_func_as_ref_const(arg0)
+
+def wasm_ref_as_func_const(arg0):
+ _wasm_ref_as_func_const = libiwasm.wasm_ref_as_func_const
+ _wasm_ref_as_func_const.restype = POINTER(wasm_func_t)
+ _wasm_ref_as_func_const.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_as_func_const(arg0)
+
+wasm_func_callback_t = CFUNCTYPE(c_void_p,POINTER(wasm_val_vec_t),POINTER(wasm_val_vec_t))
+
+wasm_func_callback_with_env_t = CFUNCTYPE(c_void_p,c_void_p,POINTER(wasm_val_vec_t),POINTER(wasm_val_vec_t))
+
+def wasm_func_new(arg0,arg1,arg2):
+ _wasm_func_new = libiwasm.wasm_func_new
+ _wasm_func_new.restype = POINTER(wasm_func_t)
+ _wasm_func_new.argtypes = [POINTER(wasm_store_t),POINTER(wasm_functype_t),wasm_func_callback_t]
+ return _wasm_func_new(arg0,arg1,arg2)
+
+def wasm_func_new_with_env(arg0,arg1,arg2,arg3,arg4):
+ _wasm_func_new_with_env = libiwasm.wasm_func_new_with_env
+ _wasm_func_new_with_env.restype = POINTER(wasm_func_t)
+ _wasm_func_new_with_env.argtypes = [POINTER(wasm_store_t),POINTER(wasm_functype_t),wasm_func_callback_with_env_t,c_void_p,CFUNCTYPE(None,c_void_p)]
+ return _wasm_func_new_with_env(arg0,arg1,arg2,arg3,arg4)
+
+def wasm_func_type(arg0):
+ _wasm_func_type = libiwasm.wasm_func_type
+ _wasm_func_type.restype = POINTER(wasm_functype_t)
+ _wasm_func_type.argtypes = [POINTER(wasm_func_t)]
+ return _wasm_func_type(arg0)
+
+def wasm_func_param_arity(arg0):
+ _wasm_func_param_arity = libiwasm.wasm_func_param_arity
+ _wasm_func_param_arity.restype = c_size_t
+ _wasm_func_param_arity.argtypes = [POINTER(wasm_func_t)]
+ return _wasm_func_param_arity(arg0)
+
+def wasm_func_result_arity(arg0):
+ _wasm_func_result_arity = libiwasm.wasm_func_result_arity
+ _wasm_func_result_arity.restype = c_size_t
+ _wasm_func_result_arity.argtypes = [POINTER(wasm_func_t)]
+ return _wasm_func_result_arity(arg0)
+
+def wasm_func_call(arg0,arg1,arg2):
+ _wasm_func_call = libiwasm.wasm_func_call
+ _wasm_func_call.restype = POINTER(wasm_trap_t)
+ _wasm_func_call.argtypes = [POINTER(wasm_func_t),POINTER(wasm_val_vec_t),POINTER(wasm_val_vec_t)]
+ return _wasm_func_call(arg0,arg1,arg2)
+
+class wasm_global_t(Structure):
+ pass
+
+def wasm_global_delete(arg0):
+ _wasm_global_delete = libiwasm.wasm_global_delete
+ _wasm_global_delete.restype = None
+ _wasm_global_delete.argtypes = [POINTER(wasm_global_t)]
+ return _wasm_global_delete(arg0)
+
+def wasm_global_copy(arg0):
+ _wasm_global_copy = libiwasm.wasm_global_copy
+ _wasm_global_copy.restype = POINTER(wasm_global_t)
+ _wasm_global_copy.argtypes = [POINTER(wasm_global_t)]
+ return _wasm_global_copy(arg0)
+
+def wasm_global_same(arg0,arg1):
+ _wasm_global_same = libiwasm.wasm_global_same
+ _wasm_global_same.restype = c_bool
+ _wasm_global_same.argtypes = [POINTER(wasm_global_t),POINTER(wasm_global_t)]
+ return _wasm_global_same(arg0,arg1)
+
+def wasm_global_get_host_info(arg0):
+ _wasm_global_get_host_info = libiwasm.wasm_global_get_host_info
+ _wasm_global_get_host_info.restype = c_void_p
+ _wasm_global_get_host_info.argtypes = [POINTER(wasm_global_t)]
+ return _wasm_global_get_host_info(arg0)
+
+def wasm_global_set_host_info(arg0,arg1):
+ _wasm_global_set_host_info = libiwasm.wasm_global_set_host_info
+ _wasm_global_set_host_info.restype = None
+ _wasm_global_set_host_info.argtypes = [POINTER(wasm_global_t),c_void_p]
+ return _wasm_global_set_host_info(arg0,arg1)
+
+def wasm_global_set_host_info_with_finalizer(arg0,arg1,arg2):
+ _wasm_global_set_host_info_with_finalizer = libiwasm.wasm_global_set_host_info_with_finalizer
+ _wasm_global_set_host_info_with_finalizer.restype = None
+ _wasm_global_set_host_info_with_finalizer.argtypes = [POINTER(wasm_global_t),c_void_p,CFUNCTYPE(None,c_void_p)]
+ return _wasm_global_set_host_info_with_finalizer(arg0,arg1,arg2)
+
+def wasm_global_as_ref(arg0):
+ _wasm_global_as_ref = libiwasm.wasm_global_as_ref
+ _wasm_global_as_ref.restype = POINTER(wasm_ref_t)
+ _wasm_global_as_ref.argtypes = [POINTER(wasm_global_t)]
+ return _wasm_global_as_ref(arg0)
+
+def wasm_ref_as_global(arg0):
+ _wasm_ref_as_global = libiwasm.wasm_ref_as_global
+ _wasm_ref_as_global.restype = POINTER(wasm_global_t)
+ _wasm_ref_as_global.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_as_global(arg0)
+
+def wasm_global_as_ref_const(arg0):
+ _wasm_global_as_ref_const = libiwasm.wasm_global_as_ref_const
+ _wasm_global_as_ref_const.restype = POINTER(wasm_ref_t)
+ _wasm_global_as_ref_const.argtypes = [POINTER(wasm_global_t)]
+ return _wasm_global_as_ref_const(arg0)
+
+def wasm_ref_as_global_const(arg0):
+ _wasm_ref_as_global_const = libiwasm.wasm_ref_as_global_const
+ _wasm_ref_as_global_const.restype = POINTER(wasm_global_t)
+ _wasm_ref_as_global_const.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_as_global_const(arg0)
+
+def wasm_global_new(arg0,arg1,arg2):
+ _wasm_global_new = libiwasm.wasm_global_new
+ _wasm_global_new.restype = POINTER(wasm_global_t)
+ _wasm_global_new.argtypes = [POINTER(wasm_store_t),POINTER(wasm_globaltype_t),POINTER(wasm_val_t)]
+ return _wasm_global_new(arg0,arg1,arg2)
+
+def wasm_global_type(arg0):
+ _wasm_global_type = libiwasm.wasm_global_type
+ _wasm_global_type.restype = POINTER(wasm_globaltype_t)
+ _wasm_global_type.argtypes = [POINTER(wasm_global_t)]
+ return _wasm_global_type(arg0)
+
+def wasm_global_get(arg0,arg1):
+ _wasm_global_get = libiwasm.wasm_global_get
+ _wasm_global_get.restype = None
+ _wasm_global_get.argtypes = [POINTER(wasm_global_t),POINTER(wasm_val_t)]
+ return _wasm_global_get(arg0,arg1)
+
+def wasm_global_set(arg0,arg1):
+ _wasm_global_set = libiwasm.wasm_global_set
+ _wasm_global_set.restype = None
+ _wasm_global_set.argtypes = [POINTER(wasm_global_t),POINTER(wasm_val_t)]
+ return _wasm_global_set(arg0,arg1)
+
+class wasm_table_t(Structure):
+ pass
+
+def wasm_table_delete(arg0):
+ _wasm_table_delete = libiwasm.wasm_table_delete
+ _wasm_table_delete.restype = None
+ _wasm_table_delete.argtypes = [POINTER(wasm_table_t)]
+ return _wasm_table_delete(arg0)
+
+def wasm_table_copy(arg0):
+ _wasm_table_copy = libiwasm.wasm_table_copy
+ _wasm_table_copy.restype = POINTER(wasm_table_t)
+ _wasm_table_copy.argtypes = [POINTER(wasm_table_t)]
+ return _wasm_table_copy(arg0)
+
+def wasm_table_same(arg0,arg1):
+ _wasm_table_same = libiwasm.wasm_table_same
+ _wasm_table_same.restype = c_bool
+ _wasm_table_same.argtypes = [POINTER(wasm_table_t),POINTER(wasm_table_t)]
+ return _wasm_table_same(arg0,arg1)
+
+def wasm_table_get_host_info(arg0):
+ _wasm_table_get_host_info = libiwasm.wasm_table_get_host_info
+ _wasm_table_get_host_info.restype = c_void_p
+ _wasm_table_get_host_info.argtypes = [POINTER(wasm_table_t)]
+ return _wasm_table_get_host_info(arg0)
+
+def wasm_table_set_host_info(arg0,arg1):
+ _wasm_table_set_host_info = libiwasm.wasm_table_set_host_info
+ _wasm_table_set_host_info.restype = None
+ _wasm_table_set_host_info.argtypes = [POINTER(wasm_table_t),c_void_p]
+ return _wasm_table_set_host_info(arg0,arg1)
+
+def wasm_table_set_host_info_with_finalizer(arg0,arg1,arg2):
+ _wasm_table_set_host_info_with_finalizer = libiwasm.wasm_table_set_host_info_with_finalizer
+ _wasm_table_set_host_info_with_finalizer.restype = None
+ _wasm_table_set_host_info_with_finalizer.argtypes = [POINTER(wasm_table_t),c_void_p,CFUNCTYPE(None,c_void_p)]
+ return _wasm_table_set_host_info_with_finalizer(arg0,arg1,arg2)
+
+def wasm_table_as_ref(arg0):
+ _wasm_table_as_ref = libiwasm.wasm_table_as_ref
+ _wasm_table_as_ref.restype = POINTER(wasm_ref_t)
+ _wasm_table_as_ref.argtypes = [POINTER(wasm_table_t)]
+ return _wasm_table_as_ref(arg0)
+
+def wasm_ref_as_table(arg0):
+ _wasm_ref_as_table = libiwasm.wasm_ref_as_table
+ _wasm_ref_as_table.restype = POINTER(wasm_table_t)
+ _wasm_ref_as_table.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_as_table(arg0)
+
+def wasm_table_as_ref_const(arg0):
+ _wasm_table_as_ref_const = libiwasm.wasm_table_as_ref_const
+ _wasm_table_as_ref_const.restype = POINTER(wasm_ref_t)
+ _wasm_table_as_ref_const.argtypes = [POINTER(wasm_table_t)]
+ return _wasm_table_as_ref_const(arg0)
+
+def wasm_ref_as_table_const(arg0):
+ _wasm_ref_as_table_const = libiwasm.wasm_ref_as_table_const
+ _wasm_ref_as_table_const.restype = POINTER(wasm_table_t)
+ _wasm_ref_as_table_const.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_as_table_const(arg0)
+
+wasm_table_size_t = c_uint32
+
+def wasm_table_new(arg0,arg1,arg2):
+ _wasm_table_new = libiwasm.wasm_table_new
+ _wasm_table_new.restype = POINTER(wasm_table_t)
+ _wasm_table_new.argtypes = [POINTER(wasm_store_t),POINTER(wasm_tabletype_t),POINTER(wasm_ref_t)]
+ return _wasm_table_new(arg0,arg1,arg2)
+
+def wasm_table_type(arg0):
+ _wasm_table_type = libiwasm.wasm_table_type
+ _wasm_table_type.restype = POINTER(wasm_tabletype_t)
+ _wasm_table_type.argtypes = [POINTER(wasm_table_t)]
+ return _wasm_table_type(arg0)
+
+def wasm_table_get(arg0,arg1):
+ _wasm_table_get = libiwasm.wasm_table_get
+ _wasm_table_get.restype = POINTER(wasm_ref_t)
+ _wasm_table_get.argtypes = [POINTER(wasm_table_t),wasm_table_size_t]
+ return _wasm_table_get(arg0,arg1)
+
+def wasm_table_set(arg0,arg1,arg2):
+ _wasm_table_set = libiwasm.wasm_table_set
+ _wasm_table_set.restype = c_bool
+ _wasm_table_set.argtypes = [POINTER(wasm_table_t),wasm_table_size_t,POINTER(wasm_ref_t)]
+ return _wasm_table_set(arg0,arg1,arg2)
+
+def wasm_table_size(arg0):
+ _wasm_table_size = libiwasm.wasm_table_size
+ _wasm_table_size.restype = wasm_table_size_t
+ _wasm_table_size.argtypes = [POINTER(wasm_table_t)]
+ return _wasm_table_size(arg0)
+
+def wasm_table_grow(arg0,arg1,arg2):
+ _wasm_table_grow = libiwasm.wasm_table_grow
+ _wasm_table_grow.restype = c_bool
+ _wasm_table_grow.argtypes = [POINTER(wasm_table_t),wasm_table_size_t,POINTER(wasm_ref_t)]
+ return _wasm_table_grow(arg0,arg1,arg2)
+
+class wasm_memory_t(Structure):
+ pass
+
+def wasm_memory_delete(arg0):
+ _wasm_memory_delete = libiwasm.wasm_memory_delete
+ _wasm_memory_delete.restype = None
+ _wasm_memory_delete.argtypes = [POINTER(wasm_memory_t)]
+ return _wasm_memory_delete(arg0)
+
+def wasm_memory_copy(arg0):
+ _wasm_memory_copy = libiwasm.wasm_memory_copy
+ _wasm_memory_copy.restype = POINTER(wasm_memory_t)
+ _wasm_memory_copy.argtypes = [POINTER(wasm_memory_t)]
+ return _wasm_memory_copy(arg0)
+
+def wasm_memory_same(arg0,arg1):
+ _wasm_memory_same = libiwasm.wasm_memory_same
+ _wasm_memory_same.restype = c_bool
+ _wasm_memory_same.argtypes = [POINTER(wasm_memory_t),POINTER(wasm_memory_t)]
+ return _wasm_memory_same(arg0,arg1)
+
+def wasm_memory_get_host_info(arg0):
+ _wasm_memory_get_host_info = libiwasm.wasm_memory_get_host_info
+ _wasm_memory_get_host_info.restype = c_void_p
+ _wasm_memory_get_host_info.argtypes = [POINTER(wasm_memory_t)]
+ return _wasm_memory_get_host_info(arg0)
+
+def wasm_memory_set_host_info(arg0,arg1):
+ _wasm_memory_set_host_info = libiwasm.wasm_memory_set_host_info
+ _wasm_memory_set_host_info.restype = None
+ _wasm_memory_set_host_info.argtypes = [POINTER(wasm_memory_t),c_void_p]
+ return _wasm_memory_set_host_info(arg0,arg1)
+
+def wasm_memory_set_host_info_with_finalizer(arg0,arg1,arg2):
+ _wasm_memory_set_host_info_with_finalizer = libiwasm.wasm_memory_set_host_info_with_finalizer
+ _wasm_memory_set_host_info_with_finalizer.restype = None
+ _wasm_memory_set_host_info_with_finalizer.argtypes = [POINTER(wasm_memory_t),c_void_p,CFUNCTYPE(None,c_void_p)]
+ return _wasm_memory_set_host_info_with_finalizer(arg0,arg1,arg2)
+
+def wasm_memory_as_ref(arg0):
+ _wasm_memory_as_ref = libiwasm.wasm_memory_as_ref
+ _wasm_memory_as_ref.restype = POINTER(wasm_ref_t)
+ _wasm_memory_as_ref.argtypes = [POINTER(wasm_memory_t)]
+ return _wasm_memory_as_ref(arg0)
+
+def wasm_ref_as_memory(arg0):
+ _wasm_ref_as_memory = libiwasm.wasm_ref_as_memory
+ _wasm_ref_as_memory.restype = POINTER(wasm_memory_t)
+ _wasm_ref_as_memory.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_as_memory(arg0)
+
+def wasm_memory_as_ref_const(arg0):
+ _wasm_memory_as_ref_const = libiwasm.wasm_memory_as_ref_const
+ _wasm_memory_as_ref_const.restype = POINTER(wasm_ref_t)
+ _wasm_memory_as_ref_const.argtypes = [POINTER(wasm_memory_t)]
+ return _wasm_memory_as_ref_const(arg0)
+
+def wasm_ref_as_memory_const(arg0):
+ _wasm_ref_as_memory_const = libiwasm.wasm_ref_as_memory_const
+ _wasm_ref_as_memory_const.restype = POINTER(wasm_memory_t)
+ _wasm_ref_as_memory_const.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_as_memory_const(arg0)
+
+wasm_memory_pages_t = c_uint32
+
+def wasm_memory_new(arg0,arg1):
+ _wasm_memory_new = libiwasm.wasm_memory_new
+ _wasm_memory_new.restype = POINTER(wasm_memory_t)
+ _wasm_memory_new.argtypes = [POINTER(wasm_store_t),POINTER(wasm_memorytype_t)]
+ return _wasm_memory_new(arg0,arg1)
+
+def wasm_memory_type(arg0):
+ _wasm_memory_type = libiwasm.wasm_memory_type
+ _wasm_memory_type.restype = POINTER(wasm_memorytype_t)
+ _wasm_memory_type.argtypes = [POINTER(wasm_memory_t)]
+ return _wasm_memory_type(arg0)
+
+def wasm_memory_data(arg0):
+ _wasm_memory_data = libiwasm.wasm_memory_data
+ _wasm_memory_data.restype = POINTER(c_ubyte)
+ _wasm_memory_data.argtypes = [POINTER(wasm_memory_t)]
+ return _wasm_memory_data(arg0)
+
+def wasm_memory_data_size(arg0):
+ _wasm_memory_data_size = libiwasm.wasm_memory_data_size
+ _wasm_memory_data_size.restype = c_size_t
+ _wasm_memory_data_size.argtypes = [POINTER(wasm_memory_t)]
+ return _wasm_memory_data_size(arg0)
+
+def wasm_memory_size(arg0):
+ _wasm_memory_size = libiwasm.wasm_memory_size
+ _wasm_memory_size.restype = wasm_memory_pages_t
+ _wasm_memory_size.argtypes = [POINTER(wasm_memory_t)]
+ return _wasm_memory_size(arg0)
+
+def wasm_memory_grow(arg0,arg1):
+ _wasm_memory_grow = libiwasm.wasm_memory_grow
+ _wasm_memory_grow.restype = c_bool
+ _wasm_memory_grow.argtypes = [POINTER(wasm_memory_t),wasm_memory_pages_t]
+ return _wasm_memory_grow(arg0,arg1)
+
+class wasm_extern_t(Structure):
+ pass
+
+def wasm_extern_delete(arg0):
+ _wasm_extern_delete = libiwasm.wasm_extern_delete
+ _wasm_extern_delete.restype = None
+ _wasm_extern_delete.argtypes = [POINTER(wasm_extern_t)]
+ return _wasm_extern_delete(arg0)
+
+def wasm_extern_copy(arg0):
+ _wasm_extern_copy = libiwasm.wasm_extern_copy
+ _wasm_extern_copy.restype = POINTER(wasm_extern_t)
+ _wasm_extern_copy.argtypes = [POINTER(wasm_extern_t)]
+ return _wasm_extern_copy(arg0)
+
+def wasm_extern_same(arg0,arg1):
+ _wasm_extern_same = libiwasm.wasm_extern_same
+ _wasm_extern_same.restype = c_bool
+ _wasm_extern_same.argtypes = [POINTER(wasm_extern_t),POINTER(wasm_extern_t)]
+ return _wasm_extern_same(arg0,arg1)
+
+def wasm_extern_get_host_info(arg0):
+ _wasm_extern_get_host_info = libiwasm.wasm_extern_get_host_info
+ _wasm_extern_get_host_info.restype = c_void_p
+ _wasm_extern_get_host_info.argtypes = [POINTER(wasm_extern_t)]
+ return _wasm_extern_get_host_info(arg0)
+
+def wasm_extern_set_host_info(arg0,arg1):
+ _wasm_extern_set_host_info = libiwasm.wasm_extern_set_host_info
+ _wasm_extern_set_host_info.restype = None
+ _wasm_extern_set_host_info.argtypes = [POINTER(wasm_extern_t),c_void_p]
+ return _wasm_extern_set_host_info(arg0,arg1)
+
+def wasm_extern_set_host_info_with_finalizer(arg0,arg1,arg2):
+ _wasm_extern_set_host_info_with_finalizer = libiwasm.wasm_extern_set_host_info_with_finalizer
+ _wasm_extern_set_host_info_with_finalizer.restype = None
+ _wasm_extern_set_host_info_with_finalizer.argtypes = [POINTER(wasm_extern_t),c_void_p,CFUNCTYPE(None,c_void_p)]
+ return _wasm_extern_set_host_info_with_finalizer(arg0,arg1,arg2)
+
+def wasm_extern_as_ref(arg0):
+ _wasm_extern_as_ref = libiwasm.wasm_extern_as_ref
+ _wasm_extern_as_ref.restype = POINTER(wasm_ref_t)
+ _wasm_extern_as_ref.argtypes = [POINTER(wasm_extern_t)]
+ return _wasm_extern_as_ref(arg0)
+
+def wasm_ref_as_extern(arg0):
+ _wasm_ref_as_extern = libiwasm.wasm_ref_as_extern
+ _wasm_ref_as_extern.restype = POINTER(wasm_extern_t)
+ _wasm_ref_as_extern.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_as_extern(arg0)
+
+def wasm_extern_as_ref_const(arg0):
+ _wasm_extern_as_ref_const = libiwasm.wasm_extern_as_ref_const
+ _wasm_extern_as_ref_const.restype = POINTER(wasm_ref_t)
+ _wasm_extern_as_ref_const.argtypes = [POINTER(wasm_extern_t)]
+ return _wasm_extern_as_ref_const(arg0)
+
+def wasm_ref_as_extern_const(arg0):
+ _wasm_ref_as_extern_const = libiwasm.wasm_ref_as_extern_const
+ _wasm_ref_as_extern_const.restype = POINTER(wasm_extern_t)
+ _wasm_ref_as_extern_const.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_as_extern_const(arg0)
+
+class wasm_extern_vec_t(Structure):
+ _fields_ = [
+ ("size", c_size_t),
+ ("data", POINTER(POINTER(wasm_extern_t))),
+ ("num_elems", c_size_t),
+ ("size_of_elem", c_size_t),
+ ("lock", c_void_p),
+ ]
+
+ def __eq__(self, other):
+ if not isinstance(other, wasm_extern_vec_t):
+ return False
+ return self.size == other.size and self.num_elems == other.num_elems and self.size_of_elem == other.size_of_elem
+
+ def __repr__(self):
+ ret = ""
+ for i in range(self.num_elems):
+ ret += str(dereference(self.data[i]))
+ ret += " "
+ return ret
+
+
+
+def wasm_extern_vec_new_empty(arg0):
+ _wasm_extern_vec_new_empty = libiwasm.wasm_extern_vec_new_empty
+ _wasm_extern_vec_new_empty.restype = None
+ _wasm_extern_vec_new_empty.argtypes = [POINTER(wasm_extern_vec_t)]
+ return _wasm_extern_vec_new_empty(arg0)
+
+def wasm_extern_vec_new_uninitialized(arg0,arg1):
+ _wasm_extern_vec_new_uninitialized = libiwasm.wasm_extern_vec_new_uninitialized
+ _wasm_extern_vec_new_uninitialized.restype = None
+ _wasm_extern_vec_new_uninitialized.argtypes = [POINTER(wasm_extern_vec_t),c_size_t]
+ return _wasm_extern_vec_new_uninitialized(arg0,arg1)
+
+def wasm_extern_vec_new(arg0,arg1,arg2):
+ _wasm_extern_vec_new = libiwasm.wasm_extern_vec_new
+ _wasm_extern_vec_new.restype = None
+ _wasm_extern_vec_new.argtypes = [POINTER(wasm_extern_vec_t),c_size_t,POINTER(POINTER(wasm_extern_t))]
+ return _wasm_extern_vec_new(arg0,arg1,arg2)
+
+def wasm_extern_vec_copy(arg0,arg1):
+ _wasm_extern_vec_copy = libiwasm.wasm_extern_vec_copy
+ _wasm_extern_vec_copy.restype = None
+ _wasm_extern_vec_copy.argtypes = [POINTER(wasm_extern_vec_t),POINTER(wasm_extern_vec_t)]
+ return _wasm_extern_vec_copy(arg0,arg1)
+
+def wasm_extern_vec_delete(arg0):
+ _wasm_extern_vec_delete = libiwasm.wasm_extern_vec_delete
+ _wasm_extern_vec_delete.restype = None
+ _wasm_extern_vec_delete.argtypes = [POINTER(wasm_extern_vec_t)]
+ return _wasm_extern_vec_delete(arg0)
+
+def wasm_extern_kind(arg0):
+ _wasm_extern_kind = libiwasm.wasm_extern_kind
+ _wasm_extern_kind.restype = wasm_externkind_t
+ _wasm_extern_kind.argtypes = [POINTER(wasm_extern_t)]
+ return _wasm_extern_kind(arg0)
+
+def wasm_extern_type(arg0):
+ _wasm_extern_type = libiwasm.wasm_extern_type
+ _wasm_extern_type.restype = POINTER(wasm_externtype_t)
+ _wasm_extern_type.argtypes = [POINTER(wasm_extern_t)]
+ return _wasm_extern_type(arg0)
+
+def wasm_func_as_extern(arg0):
+ _wasm_func_as_extern = libiwasm.wasm_func_as_extern
+ _wasm_func_as_extern.restype = POINTER(wasm_extern_t)
+ _wasm_func_as_extern.argtypes = [POINTER(wasm_func_t)]
+ return _wasm_func_as_extern(arg0)
+
+def wasm_global_as_extern(arg0):
+ _wasm_global_as_extern = libiwasm.wasm_global_as_extern
+ _wasm_global_as_extern.restype = POINTER(wasm_extern_t)
+ _wasm_global_as_extern.argtypes = [POINTER(wasm_global_t)]
+ return _wasm_global_as_extern(arg0)
+
+def wasm_table_as_extern(arg0):
+ _wasm_table_as_extern = libiwasm.wasm_table_as_extern
+ _wasm_table_as_extern.restype = POINTER(wasm_extern_t)
+ _wasm_table_as_extern.argtypes = [POINTER(wasm_table_t)]
+ return _wasm_table_as_extern(arg0)
+
+def wasm_memory_as_extern(arg0):
+ _wasm_memory_as_extern = libiwasm.wasm_memory_as_extern
+ _wasm_memory_as_extern.restype = POINTER(wasm_extern_t)
+ _wasm_memory_as_extern.argtypes = [POINTER(wasm_memory_t)]
+ return _wasm_memory_as_extern(arg0)
+
+def wasm_extern_as_func(arg0):
+ _wasm_extern_as_func = libiwasm.wasm_extern_as_func
+ _wasm_extern_as_func.restype = POINTER(wasm_func_t)
+ _wasm_extern_as_func.argtypes = [POINTER(wasm_extern_t)]
+ return _wasm_extern_as_func(arg0)
+
+def wasm_extern_as_global(arg0):
+ _wasm_extern_as_global = libiwasm.wasm_extern_as_global
+ _wasm_extern_as_global.restype = POINTER(wasm_global_t)
+ _wasm_extern_as_global.argtypes = [POINTER(wasm_extern_t)]
+ return _wasm_extern_as_global(arg0)
+
+def wasm_extern_as_table(arg0):
+ _wasm_extern_as_table = libiwasm.wasm_extern_as_table
+ _wasm_extern_as_table.restype = POINTER(wasm_table_t)
+ _wasm_extern_as_table.argtypes = [POINTER(wasm_extern_t)]
+ return _wasm_extern_as_table(arg0)
+
+def wasm_extern_as_memory(arg0):
+ _wasm_extern_as_memory = libiwasm.wasm_extern_as_memory
+ _wasm_extern_as_memory.restype = POINTER(wasm_memory_t)
+ _wasm_extern_as_memory.argtypes = [POINTER(wasm_extern_t)]
+ return _wasm_extern_as_memory(arg0)
+
+def wasm_func_as_extern_const(arg0):
+ _wasm_func_as_extern_const = libiwasm.wasm_func_as_extern_const
+ _wasm_func_as_extern_const.restype = POINTER(wasm_extern_t)
+ _wasm_func_as_extern_const.argtypes = [POINTER(wasm_func_t)]
+ return _wasm_func_as_extern_const(arg0)
+
+def wasm_global_as_extern_const(arg0):
+ _wasm_global_as_extern_const = libiwasm.wasm_global_as_extern_const
+ _wasm_global_as_extern_const.restype = POINTER(wasm_extern_t)
+ _wasm_global_as_extern_const.argtypes = [POINTER(wasm_global_t)]
+ return _wasm_global_as_extern_const(arg0)
+
+def wasm_table_as_extern_const(arg0):
+ _wasm_table_as_extern_const = libiwasm.wasm_table_as_extern_const
+ _wasm_table_as_extern_const.restype = POINTER(wasm_extern_t)
+ _wasm_table_as_extern_const.argtypes = [POINTER(wasm_table_t)]
+ return _wasm_table_as_extern_const(arg0)
+
+def wasm_memory_as_extern_const(arg0):
+ _wasm_memory_as_extern_const = libiwasm.wasm_memory_as_extern_const
+ _wasm_memory_as_extern_const.restype = POINTER(wasm_extern_t)
+ _wasm_memory_as_extern_const.argtypes = [POINTER(wasm_memory_t)]
+ return _wasm_memory_as_extern_const(arg0)
+
+def wasm_extern_as_func_const(arg0):
+ _wasm_extern_as_func_const = libiwasm.wasm_extern_as_func_const
+ _wasm_extern_as_func_const.restype = POINTER(wasm_func_t)
+ _wasm_extern_as_func_const.argtypes = [POINTER(wasm_extern_t)]
+ return _wasm_extern_as_func_const(arg0)
+
+def wasm_extern_as_global_const(arg0):
+ _wasm_extern_as_global_const = libiwasm.wasm_extern_as_global_const
+ _wasm_extern_as_global_const.restype = POINTER(wasm_global_t)
+ _wasm_extern_as_global_const.argtypes = [POINTER(wasm_extern_t)]
+ return _wasm_extern_as_global_const(arg0)
+
+def wasm_extern_as_table_const(arg0):
+ _wasm_extern_as_table_const = libiwasm.wasm_extern_as_table_const
+ _wasm_extern_as_table_const.restype = POINTER(wasm_table_t)
+ _wasm_extern_as_table_const.argtypes = [POINTER(wasm_extern_t)]
+ return _wasm_extern_as_table_const(arg0)
+
+def wasm_extern_as_memory_const(arg0):
+ _wasm_extern_as_memory_const = libiwasm.wasm_extern_as_memory_const
+ _wasm_extern_as_memory_const.restype = POINTER(wasm_memory_t)
+ _wasm_extern_as_memory_const.argtypes = [POINTER(wasm_extern_t)]
+ return _wasm_extern_as_memory_const(arg0)
+
+class wasm_instance_t(Structure):
+ pass
+
+def wasm_instance_delete(arg0):
+ _wasm_instance_delete = libiwasm.wasm_instance_delete
+ _wasm_instance_delete.restype = None
+ _wasm_instance_delete.argtypes = [POINTER(wasm_instance_t)]
+ return _wasm_instance_delete(arg0)
+
+def wasm_instance_copy(arg0):
+ _wasm_instance_copy = libiwasm.wasm_instance_copy
+ _wasm_instance_copy.restype = POINTER(wasm_instance_t)
+ _wasm_instance_copy.argtypes = [POINTER(wasm_instance_t)]
+ return _wasm_instance_copy(arg0)
+
+def wasm_instance_same(arg0,arg1):
+ _wasm_instance_same = libiwasm.wasm_instance_same
+ _wasm_instance_same.restype = c_bool
+ _wasm_instance_same.argtypes = [POINTER(wasm_instance_t),POINTER(wasm_instance_t)]
+ return _wasm_instance_same(arg0,arg1)
+
+def wasm_instance_get_host_info(arg0):
+ _wasm_instance_get_host_info = libiwasm.wasm_instance_get_host_info
+ _wasm_instance_get_host_info.restype = c_void_p
+ _wasm_instance_get_host_info.argtypes = [POINTER(wasm_instance_t)]
+ return _wasm_instance_get_host_info(arg0)
+
+def wasm_instance_set_host_info(arg0,arg1):
+ _wasm_instance_set_host_info = libiwasm.wasm_instance_set_host_info
+ _wasm_instance_set_host_info.restype = None
+ _wasm_instance_set_host_info.argtypes = [POINTER(wasm_instance_t),c_void_p]
+ return _wasm_instance_set_host_info(arg0,arg1)
+
+def wasm_instance_set_host_info_with_finalizer(arg0,arg1,arg2):
+ _wasm_instance_set_host_info_with_finalizer = libiwasm.wasm_instance_set_host_info_with_finalizer
+ _wasm_instance_set_host_info_with_finalizer.restype = None
+ _wasm_instance_set_host_info_with_finalizer.argtypes = [POINTER(wasm_instance_t),c_void_p,CFUNCTYPE(None,c_void_p)]
+ return _wasm_instance_set_host_info_with_finalizer(arg0,arg1,arg2)
+
+def wasm_instance_as_ref(arg0):
+ _wasm_instance_as_ref = libiwasm.wasm_instance_as_ref
+ _wasm_instance_as_ref.restype = POINTER(wasm_ref_t)
+ _wasm_instance_as_ref.argtypes = [POINTER(wasm_instance_t)]
+ return _wasm_instance_as_ref(arg0)
+
+def wasm_ref_as_instance(arg0):
+ _wasm_ref_as_instance = libiwasm.wasm_ref_as_instance
+ _wasm_ref_as_instance.restype = POINTER(wasm_instance_t)
+ _wasm_ref_as_instance.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_as_instance(arg0)
+
+def wasm_instance_as_ref_const(arg0):
+ _wasm_instance_as_ref_const = libiwasm.wasm_instance_as_ref_const
+ _wasm_instance_as_ref_const.restype = POINTER(wasm_ref_t)
+ _wasm_instance_as_ref_const.argtypes = [POINTER(wasm_instance_t)]
+ return _wasm_instance_as_ref_const(arg0)
+
+def wasm_ref_as_instance_const(arg0):
+ _wasm_ref_as_instance_const = libiwasm.wasm_ref_as_instance_const
+ _wasm_ref_as_instance_const.restype = POINTER(wasm_instance_t)
+ _wasm_ref_as_instance_const.argtypes = [POINTER(wasm_ref_t)]
+ return _wasm_ref_as_instance_const(arg0)
+
+def wasm_instance_new(arg0,arg1,arg2,arg3):
+ _wasm_instance_new = libiwasm.wasm_instance_new
+ _wasm_instance_new.restype = POINTER(wasm_instance_t)
+ _wasm_instance_new.argtypes = [POINTER(wasm_store_t),POINTER(wasm_module_t),POINTER(wasm_extern_vec_t),POINTER(POINTER(wasm_trap_t))]
+ return _wasm_instance_new(arg0,arg1,arg2,arg3)
+
+def wasm_instance_new_with_args(arg0,arg1,arg2,arg3,arg4,arg5):
+ _wasm_instance_new_with_args = libiwasm.wasm_instance_new_with_args
+ _wasm_instance_new_with_args.restype = POINTER(wasm_instance_t)
+ _wasm_instance_new_with_args.argtypes = [POINTER(wasm_store_t),POINTER(wasm_module_t),POINTER(wasm_extern_vec_t),POINTER(POINTER(wasm_trap_t)),c_uint32,c_uint32]
+ return _wasm_instance_new_with_args(arg0,arg1,arg2,arg3,arg4,arg5)
+
+def wasm_instance_exports(arg0,arg1):
+ _wasm_instance_exports = libiwasm.wasm_instance_exports
+ _wasm_instance_exports.restype = None
+ _wasm_instance_exports.argtypes = [POINTER(wasm_instance_t),POINTER(wasm_extern_vec_t)]
+ return _wasm_instance_exports(arg0,arg1)
diff --git a/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wasmcapi/ffi.py b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wasmcapi/ffi.py
new file mode 100644
index 000000000..18b6bc90c
--- /dev/null
+++ b/fluent-bit/lib/wasm-micro-runtime-WAMR-1.2.2/language-bindings/python/src/wamr/wasmcapi/ffi.py
@@ -0,0 +1,642 @@
+# -*- coding: utf-8 -*-
+#!/usr/bin/env python3
+#
+# Copyright (C) 2019 Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+#
+# pylint: disable=missing-class-docstring
+# pylint: disable=missing-function-docstring
+# pylint: disable=missing-module-docstring
+
+import ctypes as c
+import os
+from pathlib import Path
+import sys
+
+#
+# Prologue. Dependencies of binding
+#
+
+# how to open the library file of WAMR
+
+if sys.platform == "linux":
+ BUILDING_DIR = "product-mini/platforms/linux/build"
+ LIBRARY_NAME = "libiwasm.so"
+elif sys.platform == "win32":
+ BUILDING_DIR = "product-mini/platforms/windows/build"
+ LIBRARY_NAME = "iwasm.dll"
+elif sys.platform == "darwin":
+ BUILDING_DIR = "product-mini/platforms/darwin/build"
+ LIBRARY_NAME = "libiwasm.dylib"
+else:
+ raise RuntimeError(f"unsupported platform `{sys.platform}`")
+
+# FIXME: should load libiwasm.so from current system library path
+current_file = Path(__file__)
+if current_file.is_symlink():
+ current_file = Path(os.readlink(current_file))
+current_dir = current_file.parent.resolve()
+root_dir = current_dir.parents[4].resolve()
+wamr_dir = root_dir.resolve()
+if not wamr_dir.exists():
+ raise RuntimeError(f"not found the repo of wasm-micro-runtime under {root_dir}")
+
+libpath = wamr_dir.joinpath(BUILDING_DIR).joinpath(LIBRARY_NAME).resolve()
+if not libpath.exists():
+ raise RuntimeError(f"not found precompiled wamr library at {libpath}")
+
+print(f"loading WAMR library from {libpath} ...")
+libiwasm = c.cdll.LoadLibrary(libpath)
+
+
+class wasm_ref_t(c.Structure):
+ # pylint: disable=invalid-name
+ pass
+
+
+class wasm_val_union(c.Union):
+ # pylint: disable=invalid-name
+ _fields_ = [
+ ("i32", c.c_int32),
+ ("i64", c.c_int64),
+ ("f32", c.c_float),
+ ("f64", c.c_double),
+ ("ref", c.POINTER(wasm_ref_t)),
+ ]
+
+
+class wasm_val_t(c.Structure):
+ # pylint: disable=invalid-name
+ _fields_ = [
+ ("kind", c.c_uint8),
+ ("of", wasm_val_union),
+ ]
+
+
+def dereference(p):
+ # pylint: disable=protected-access
+ if not isinstance(p, c._Pointer):
+ raise RuntimeError("not a pointer")
+ return p.contents
+
+
+# HELPERs
+def create_null_pointer(struct_type):
+ return c.POINTER(struct_type)()
+
+
+def is_null_pointer(c_pointer):
+ # pylint: disable=protected-access
+ if isinstance(c_pointer, c._Pointer):
+ return False if c_pointer else True
+ else:
+ raise RuntimeError("not a pointer")
+
+
+def wasm_vec_to_list(vec):
+ """
+ Converts a vector or a POINTER(vector) to a list
+ vector of type pointers -> list of type pointers
+ """
+ known_vec_type = [
+ wasm_byte_vec_t,
+ wasm_valtype_vec_t,
+ wasm_functype_vec_t,
+ wasm_globaltype_vec_t,
+ wasm_tabletype_vec_t,
+ wasm_memorytype_vec_t,
+ wasm_externtype_vec_t,
+ wasm_importtype_vec_t,
+ wasm_exporttype_vec_t,
+ wasm_val_vec_t,
+ wasm_frame_vec_t,
+ wasm_extern_vec_t,
+ ]
+ known_vec_pointer_type = [POINTER(type) for type in known_vec_type]
+
+ if any([isinstance(vec, type) for type in known_vec_pointer_type]):
+ vec = dereference(vec)
+ return [vec.data[i] for i in range(vec.num_elems)]
+ elif any([isinstance(vec, type) for type in known_vec_type]):
+ return [vec.data[i] for i in range(vec.num_elems)]
+ else:
+ raise RuntimeError("not a known vector type")
+
+
+def list_to_carray(elem_type, *args):
+ """
+ Converts a python list into a C array
+ """
+ data = (elem_type * len(args))(*args)
+ return data
+
+
+def load_module_file(wasm_content):
+ binary = wasm_byte_vec_t()
+ wasm_byte_vec_new_uninitialized(binary, len(wasm_content))
+ # has to use malloced memory.
+ c.memmove(binary.data, wasm_content, len(wasm_content))
+ binary.num_elems = len(wasm_content)
+ return binary
+
+
+#
+# Enhancment of binding
+#
+
+from .binding import *
+
+# Built-in functions for Structure
+
+
+wasm_finalizer = CFUNCTYPE(None, c_void_p)
+
+
+def __repr_wasm_limits_t(self):
+ return f"{self.min:#x} {self.max:#x}"
+
+
+# overwrite
+wasm_limits_t.__repr__ = __repr_wasm_limits_t
+
+
+def __compare_wasm_valtype_t(self, other):
+ if not isinstance(other, wasm_valtype_t):
+ return False
+
+ return wasm_valtype_kind(byref(self)) == wasm_valtype_kind(byref(other))
+
+
+def __repr_wasm_valtype_t(self):
+ val_kind = wasm_valtype_kind(byref(self))
+ if WASM_I32 == val_kind:
+ return "i32"
+ elif WASM_I64 == val_kind:
+ return "i64"
+ elif WASM_F32 == val_kind:
+ return "f32"
+ elif WASM_F64 == val_kind:
+ return "f64"
+ elif WASM_FUNCREF == val_kind:
+ return "funcref"
+ else:
+ return "anyref"
+
+
+wasm_valtype_t.__eq__ = __compare_wasm_valtype_t
+wasm_valtype_t.__repr__ = __repr_wasm_valtype_t
+
+
+def __compare_wasm_byte_vec_t(self, other):
+ if not isinstance(other, wasm_byte_vec_t):
+ return False
+
+ if self.num_elems != other.num_elems:
+ return False
+
+ self_data = bytes(self.data[: self.num_elems])
+ other_data = bytes(other.data[: other.num_elems])
+ return self_data.decode() == other_data.decode()
+
+
+def __repr_wasm_byte_vec_t(self):
+ data = bytes(self.data[: self.num_elems])
+ return data.decode() if self.size else ""
+
+
+wasm_byte_vec_t.__eq__ = __compare_wasm_byte_vec_t
+wasm_byte_vec_t.__repr__ = __repr_wasm_byte_vec_t
+
+
+def __compare_wasm_functype_t(self, other):
+ if not isinstance(other, wasm_functype_t):
+ return False
+
+ params1 = dereference(wasm_functype_params(byref(self)))
+ params2 = dereference(wasm_functype_params(byref(other)))
+ results1 = dereference(wasm_functype_results(byref(self)))
+ results2 = dereference(wasm_functype_results(byref(other)))
+ return params1 == params2 and results1 == results2
+
+
+def __repr_wasm_functype_t(self):
+ params = dereference(wasm_functype_params(byref(self)))
+ results = dereference(wasm_functype_results(byref(self)))
+ params = f" (params {params})" if params.size else ""
+ results = f" (results {results})" if results.size else ""
+ return f"(func{params}{results})"
+
+
+wasm_functype_t.__eq__ = __compare_wasm_functype_t
+wasm_functype_t.__repr__ = __repr_wasm_functype_t
+
+
+def __compare_wasm_globaltype_t(self, other):
+ if not isinstance(other, wasm_globaltype_t):
+ return False
+
+ content1 = dereference(wasm_globaltype_content(byref(self)))
+ content2 = dereference(wasm_globaltype_content(byref(other)))
+ mutability1 = wasm_globaltype_mutability(byref(self))
+ mutability2 = wasm_globaltype_mutability(byref(other))
+ return content1 == content2 and mutability1 == mutability2
+
+
+def __repr_wasm_globaltype_t(self):
+ mutability = f"{wasm_globaltype_mutability(byref(self))}"
+ content = f"{dereference(wasm_globaltype_content(byref(self)))}"
+ return f"(global{' mut ' if mutability else ' '}{content})"
+
+
+wasm_globaltype_t.__eq__ = __compare_wasm_globaltype_t
+wasm_globaltype_t.__repr__ = __repr_wasm_globaltype_t
+
+
+def __compare_wasm_tabletype_t(self, other):
+ if not isinstance(other, wasm_tabletype_t):
+ return False
+
+ element1 = dereference(wasm_tabletype_element(byref(self)))
+ element2 = dereference(wasm_tabletype_element(byref(other)))
+ limits1 = dereference(wasm_tabletype_limits(byref(self)))
+ limits2 = dereference(wasm_tabletype_limits(byref(other)))
+ return element1 == element2 and limits1 == limits2
+
+
+def __repr_wasm_tabletype_t(self):
+ element = dereference(wasm_tabletype_element(byref(self)))
+ limit = dereference(wasm_tabletype_limits(byref(self)))
+ return f"(table {limit} {element})"
+
+
+wasm_tabletype_t.__eq__ = __compare_wasm_tabletype_t
+wasm_tabletype_t.__repr__ = __repr_wasm_tabletype_t
+
+
+def __compare_wasm_memorytype_t(self, other):
+ if not isinstance(other, wasm_memorytype_t):
+ return False
+
+ limits1 = dereference(wasm_memorytype_limits(byref(self)))
+ limits2 = dereference(wasm_memorytype_limits(byref(other)))
+ return limits1 == limits2
+
+
+def __repr_wasm_memorytype_t(self):
+ limit = dereference(wasm_memorytype_limits(byref(self)))
+ return f"(memory {limit})"
+
+
+wasm_memorytype_t.__eq__ = __compare_wasm_memorytype_t
+wasm_memorytype_t.__repr__ = __repr_wasm_memorytype_t
+
+
+def __compare_wasm_externtype_t(self, other):
+ if not isinstance(other, wasm_externtype_t):
+ return False
+
+ if wasm_externtype_kind(byref(self)) != wasm_externtype_kind(byref(other)):
+ return False
+
+ extern_kind = wasm_externtype_kind(byref(self))
+ if WASM_EXTERN_FUNC == extern_kind:
+ return dereference(wasm_externtype_as_functype(self)) == dereference(
+ wasm_externtype_as_functype(other)
+ )
+ elif WASM_EXTERN_GLOBAL == extern_kind:
+ return dereference(wasm_externtype_as_globaltype(self)) == dereference(
+ wasm_externtype_as_globaltype(other)
+ )
+ elif WASM_EXTERN_MEMORY == extern_kind:
+ return dereference(wasm_externtype_as_memorytype(self)) == dereference(
+ wasm_externtype_as_memorytype(other)
+ )
+ elif WASM_EXTERN_TABLE == extern_kind:
+ return dereference(wasm_externtype_as_tabletype(self)) == dereference(
+ wasm_externtype_as_tabletype(other)
+ )
+ else:
+ raise RuntimeError("not a valid wasm_externtype_t")
+
+
+def __repr_wasm_externtype_t(self):
+ extern_kind = wasm_externtype_kind(byref(self))
+ if WASM_EXTERN_FUNC == extern_kind:
+ return str(dereference(wasm_externtype_as_functype(byref(self))))
+ elif WASM_EXTERN_GLOBAL == extern_kind:
+ return str(dereference(wasm_externtype_as_globaltype(byref(self))))
+ elif WASM_EXTERN_MEMORY == extern_kind:
+ return str(dereference(wasm_externtype_as_memorytype(byref(self))))
+ elif WASM_EXTERN_TABLE == extern_kind:
+ return str(dereference(wasm_externtype_as_tabletype(byref(self))))
+ else:
+ raise RuntimeError("not a valid wasm_externtype_t")
+
+
+wasm_externtype_t.__eq__ = __compare_wasm_externtype_t
+wasm_externtype_t.__repr__ = __repr_wasm_externtype_t
+
+
+def __compare_wasm_importtype_t(self, other):
+ if not isinstance(other, wasm_importtype_t):
+ return False
+
+ if dereference(wasm_importtype_module(self)) != dereference(
+ wasm_importtype_module(other)
+ ):
+ return False
+
+ if dereference(wasm_importtype_name(self)) != dereference(
+ wasm_importtype_name(other)
+ ):
+ return False
+
+ self_type = dereference(wasm_importtype_type(byref(self)))
+ other_type = dereference(wasm_importtype_type(byref(other)))
+ return self_type == other_type
+
+
+def __repr_wasm_importtype_t(self):
+ module = wasm_importtype_module(byref(self))
+ name = wasm_importtype_name(byref(self))
+ extern_type = wasm_importtype_type(byref(self))
+ return f'(import "{dereference(module)}" "{dereference(name)}" {dereference(extern_type)})'
+
+
+wasm_importtype_t.__eq__ = __compare_wasm_importtype_t
+wasm_importtype_t.__repr__ = __repr_wasm_importtype_t
+
+
+def __compare_wasm_exporttype_t(self, other):
+ if not isinstance(other, wasm_exporttype_t):
+ return False
+
+ self_name = dereference(wasm_exporttype_name(byref(self)))
+ other_name = dereference(wasm_exporttype_name(byref(other)))
+ if self_name != other_name:
+ return False
+
+ self_type = dereference(wasm_exporttype_type(byref(self)))
+ other_type = dereference(wasm_exporttype_type(byref(other)))
+ return self_type == other_type
+
+
+def __repr_wasm_exporttype_t(self):
+ name = wasm_exporttype_name(byref(self))
+ extern_type = wasm_exporttype_type(byref(self))
+ return f'(export "{dereference(name)}" {dereference(extern_type)})'
+
+
+wasm_exporttype_t.__eq__ = __compare_wasm_exporttype_t
+wasm_exporttype_t.__repr__ = __repr_wasm_exporttype_t
+
+
+def __compare_wasm_val_t(self, other):
+ if not isinstance(other, wasm_val_t):
+ return False
+
+ if self.kind != other.kind:
+ return False
+
+ if WASM_I32 == self.kind:
+ return self.of.i32 == other.of.i32
+ elif WASM_I64 == self.kind:
+ return self.of.i64 == other.of.i64
+ elif WASM_F32 == self.kind:
+ return self.of.f32 == other.of.f32
+ elif WASM_F64 == self.kind:
+ return self.of.f64 == other.of.f63
+ elif WASM_ANYREF == self.kind:
+ raise RuntimeError("FIXME")
+ else:
+ raise RuntimeError("not a valid val kind")
+
+
+def __repr_wasm_val_t(self):
+ if WASM_I32 == self.kind:
+ return f"i32 {self.of.i32}"
+ elif WASM_I64 == self.kind:
+ return f"i64 {self.of.i64}"
+ elif WASM_F32 == self.kind:
+ return f"f32 {self.of.f32}"
+ elif WASM_F64 == self.kind:
+ return f"f64 {self.of.f64}"
+ elif WASM_ANYREF == self.kind:
+ return f"anyref {self.of.ref}"
+ else:
+ raise RuntimeError("not a valid val kind")
+
+
+wasm_val_t.__repr__ = __repr_wasm_val_t
+wasm_val_t.__eq__ = __compare_wasm_val_t
+
+
+def __repr_wasm_trap_t(self):
+ message = wasm_message_t()
+ wasm_trap_message(self, message)
+ return f'(trap "{str(message)}")'
+
+
+wasm_trap_t.__repr__ = __repr_wasm_trap_t
+
+
+def __repr_wasm_frame_t(self):
+ instance = wasm_frame_instance(self)
+ module_offset = wasm_frame_module_offset(self)
+ func_index = wasm_frame_func_index(self)
+ func_offset = wasm_frame_func_offset(self)
+ return f"> module:{module_offset:#x} => func#{func_index:#x}.{func_offset:#x}"
+
+
+wasm_frame_t.__repr__ = __repr_wasm_frame_t
+
+
+def __repr_wasm_module_t(self):
+ imports = wasm_importtype_vec_t()
+ wasm_module_imports(self, imports)
+
+ exports = wasm_exporttype_vec_t()
+ wasm_module_exports(self, exports)
+
+ ret = "(module"
+ ret += str(imports).replace("(import", "\n (import")
+ ret += str(exports).replace("(export", "\n (export")
+ ret += "\n)"
+ return ret
+
+
+wasm_module_t.__repr__ = __repr_wasm_module_t
+
+
+def __repr_wasm_instance_t(self):
+ exports = wasm_extern_vec_t()
+ wasm_instance_exports(self, exports)
+
+ ret = "(instance"
+ ret += str(exports).replace("(export", "\n (export")
+ ret += "\n)"
+ return ret
+
+
+wasm_instance_t.__repr__ = __repr_wasm_instance_t
+
+
+def __repr_wasm_func_t(self):
+ ft = wasm_func_type(self)
+ return f"{str(dereference(ft))[:-1]} ... )"
+
+
+wasm_func_t.__repr__ = __repr_wasm_func_t
+
+
+def __repr_wasm_global_t(self):
+ gt = wasm_global_type(self)
+ return f"{str(dereference(gt))[:-1]} ... )"
+
+
+wasm_global_t.__repr__ = __repr_wasm_global_t
+
+
+def __repr_wasm_table_t(self):
+ tt = wasm_table_type(self)
+ return f"{str(dereference(tt))[:-1]} ... )"
+
+
+wasm_table_t.__repr__ = __repr_wasm_table_t
+
+
+def __repr_wasm_memory_t(self):
+ mt = wasm_memory_type(self)
+ return f"{str(dereference(mt))[:-1]} ... )"
+
+
+wasm_memory_t.__repr__ = __repr_wasm_memory_t
+
+
+def __repr_wasm_extern_t(self):
+ ext_type = wasm_extern_type(self)
+ ext_kind = wasm_extern_kind(self)
+
+ ret = "(export "
+ if WASM_EXTERN_FUNC == ext_kind:
+ ft = wasm_externtype_as_functype(ext_type)
+ ret += str(dereference(ft))
+ elif WASM_EXTERN_GLOBAL == ext_kind:
+ gt = wasm_externtype_as_globaltype(ext_type)
+ ret += str(dereference(gt))
+ elif WASM_EXTERN_MEMORY == ext_kind:
+ mt = wasm_externtype_as_memorytype(ext_type)
+ ret += str(dereference(mt))
+ elif WASM_EXTERN_TABLE == ext_kind:
+ tt = wasm_externtype_as_tabletype(ext_type)
+ ret += str(dereference(tt))
+ else:
+ raise RuntimeError("not a valid extern kind")
+ ret += ")"
+ return ret
+
+
+wasm_extern_t.__repr__ = __repr_wasm_extern_t
+
+
+# Function Types construction short-hands
+def wasm_name_new_from_string(s):
+ name = wasm_name_t()
+ data = ((c.c_ubyte) * len(s)).from_buffer_copy(s.encode())
+ wasm_byte_vec_new(byref(name), len(s), data)
+ return name
+
+
+def __wasm_functype_new(param_list, result_list):
+ def __list_to_wasm_valtype_vec(l):
+ vec = wasm_valtype_vec_t()
+
+ if not l:
+ wasm_valtype_vec_new_empty(byref(vec))
+ else:
+ data_type = POINTER(wasm_valtype_t) * len(l)
+ data = data_type()
+ for i in range(len(l)):
+ data[i] = l[i]
+ wasm_valtype_vec_new(byref(vec), len(l), data)
+
+ return vec
+
+ params = __list_to_wasm_valtype_vec(param_list)
+ results = __list_to_wasm_valtype_vec(result_list)
+ return wasm_functype_new(byref(params), byref(results))
+
+
+def wasm_functype_new_0_0():
+ return __wasm_functype_new([], [])
+
+
+def wasm_functype_new_1_0(p1):
+ return __wasm_functype_new([p1], [])
+
+
+def wasm_functype_new_2_0(p1, p2):
+ return __wasm_functype_new([p1, p2], [])
+
+
+def wasm_functype_new_3_0(p1, p2, p3):
+ return __wasm_functype_new([p1, p2, p3], [])
+
+
+def wasm_functype_new_0_1(r1):
+ return __wasm_functype_new([], [r1])
+
+
+def wasm_functype_new_1_1(p1, r1):
+ return __wasm_functype_new([p1], [r1])
+
+
+def wasm_functype_new_2_1(p1, p2, r1):
+ return __wasm_functype_new([p1, p2], [r1])
+
+
+def wasm_functype_new_3_1(p1, p2, p3, r1):
+ return __wasm_functype_new([p1, p2, p3], [r1])
+
+
+def wasm_limits_new(min, max):
+ limit = wasm_limits_t()
+ limit.min = min
+ limit.max = max
+ return c.pointer(limit)
+
+
+def wasm_i32_val(i):
+ v = wasm_val_t()
+ v.kind = WASM_I32
+ v.of.i32 = i
+ return v
+
+
+def wasm_i64_val(i):
+ v = wasm_val_t()
+ v.kind = WASM_I64
+ v.of.i64 = i
+ return v
+
+
+def wasm_f32_val(z):
+ v = wasm_val_t()
+ v.kind = WASM_F32
+ v.of.f32 = z
+ return v
+
+
+def wasm_f64_val(z):
+ v = wasm_val_t()
+ v.kind = WASM_F64
+ v.of.f64 = z
+ return v
+
+
+def wasm_func_cb_decl(func):
+ return wasm_func_callback_t(func)
+
+
+def wasm_func_with_env_cb_decl(func):
+ return wasm_func_callback_with_env_t(func)