From 144b7fe1415ff97497fa4ea3b95e8dd6b95d069e Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Sat, 7 Sep 2024 00:04:38 +0200 Subject: First commit --- private_include/nw/routines.h | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 private_include/nw/routines.h (limited to 'private_include/nw/routines.h') diff --git a/private_include/nw/routines.h b/private_include/nw/routines.h new file mode 100644 index 0000000..1225d64 --- /dev/null +++ b/private_include/nw/routines.h @@ -0,0 +1,41 @@ +/* + * nanowasm, a tiny WebAssembly/Wasm interpreter + * Copyright (C) 2023-2024 Xavier Del Campo Romero + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ + +#ifndef ROUTINES_H +#define ROUTINES_H + +#include + +void nwp_check_magic(struct nw_mod *m); +void nwp_check_version(struct nw_mod *m); +void nwp_section(struct nw_mod *m); +void nwp_section_custom(struct nw_mod *m); +void nwp_section_type(struct nw_mod *m); +void nwp_section_import(struct nw_mod *m); +void nwp_section_function(struct nw_mod *m); +void nwp_section_table(struct nw_mod *m); +void nwp_section_memory(struct nw_mod *m); +void nwp_section_global(struct nw_mod *m); +void nwp_section_export(struct nw_mod *m); +void nwp_section_start(struct nw_mod *m); +void nwp_section_element(struct nw_mod *m); +void nwp_section_code(struct nw_mod *m); +void nwp_section_data(struct nw_mod *m); +enum nw_state nwp_section_skip(struct nw_mod *m); +enum nw_state nwp_section_exit(struct nw_mod *m); + +void nwp_find_export(struct nw_interp *i, const char *sym, + enum nw_state (*next)(struct nw_interp *)); +void nwp_call(struct nw_interp *i, nw_varuint32 index); +void nwp_find_function(struct nw_interp *i, nw_varuint32 index, + enum nw_state (*next)(struct nw_interp *)); +void nwp_get_function_type(struct nw_interp *i, nw_varuint32 index, + enum nw_state (*next)(struct nw_interp *)); + +#endif -- cgit v1.2.3