From 2d77fc5035bf128616ed4e8e1506a59f6286f490 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Thu, 8 Aug 2024 00:38:04 +0900 Subject: [PATCH] move some instance resource functions from exec.h to instance.h note: exec.h is a lib internal header. --- lib/cconv.c | 1 + lib/exec.h | 13 ------------- lib/insn.c | 1 + lib/instance.h | 17 +++++++++++++++++ libdyld/dyld.c | 2 +- libdyld/dyld_dlfcn.c | 2 +- libdyld/dyld_plt.c | 3 ++- 7 files changed, 23 insertions(+), 16 deletions(-) diff --git a/lib/cconv.c b/lib/cconv.c index 3e793014..2be557ff 100644 --- a/lib/cconv.c +++ b/lib/cconv.c @@ -4,6 +4,7 @@ */ #include "exec.h" +#include "instance.h" #include "module.h" #include "type.h" diff --git a/lib/exec.h b/lib/exec.h index ff5112e6..bc0bb8f8 100644 --- a/lib/exec.h +++ b/lib/exec.h @@ -29,7 +29,6 @@ int exec_const_expr(const struct expr *expr, enum valtype type, int memory_init(struct exec_context *ctx, uint32_t memidx, uint32_t dataidx, uint32_t d, uint32_t s, uint32_t n); -uint32_t memory_grow(struct meminst *mi, uint32_t sz); uint32_t memory_grow2(struct exec_context *ctx, uint32_t memidx, uint32_t sz); int memory_notify(struct exec_context *ctx, uint32_t memidx, uint32_t addr, @@ -42,15 +41,6 @@ int table_init(struct exec_context *ctx, uint32_t tableidx, uint32_t elemidx, uint32_t d, uint32_t s, uint32_t n); int table_access(struct exec_context *ectx, uint32_t tableidx, uint32_t offset, uint32_t n); -void table_set(struct tableinst *tinst, uint32_t elemidx, - const struct val *val); -void table_get(struct tableinst *tinst, uint32_t elemidx, struct val *val); -int table_get_func(struct exec_context *ectx, const struct tableinst *t, - uint32_t i, const struct functype *ft, - const struct funcinst **fip); -int table_grow(struct tableinst *tinst, const struct val *val, uint32_t n); -void global_set(struct globalinst *ginst, const struct val *val); -void global_get(struct globalinst *ginst, struct val *val); void data_drop(struct exec_context *ectx, uint32_t dataidx); void elem_drop(struct exec_context *ectx, uint32_t elemidx); @@ -73,9 +63,6 @@ int memory_getptr(struct exec_context *ctx, uint32_t memidx, uint32_t ptr, uint32_t offset, uint32_t size, void **pp); int memory_getptr2(struct exec_context *ctx, uint32_t memidx, uint32_t ptr, uint32_t offset, uint32_t size, void **pp, bool *movedp); -int memory_instance_getptr2(struct meminst *meminst, uint32_t ptr, - uint32_t offset, uint32_t size, void **pp, - bool *movedp); struct toywasm_mutex; int memory_atomic_getptr(struct exec_context *ctx, uint32_t memidx, uint32_t ptr, uint32_t offset, uint32_t size, diff --git a/lib/insn.c b/lib/insn.c index 9a63969b..32128ded 100644 --- a/lib/insn.c +++ b/lib/insn.c @@ -18,6 +18,7 @@ #include "insn_macros.h" #include "insn_op.h" #include "insn_op_helpers.h" +#include "instance.h" #include "leb128.h" #include "mem.h" #include "platform.h" diff --git a/lib/instance.h b/lib/instance.h index b5181916..f40d42f0 100644 --- a/lib/instance.h +++ b/lib/instance.h @@ -1,3 +1,4 @@ +#include #include #include "platform.h" @@ -5,6 +6,8 @@ struct module; struct instance; struct exec_context; +struct funcinst; +struct functype; struct resulttype; struct import; struct import_object; @@ -12,6 +15,7 @@ struct import_object_entry; struct mem_context; struct report; struct name; +struct val; __BEGIN_EXTERN_C @@ -130,18 +134,31 @@ struct memtype; int memory_instance_create(struct mem_context *mctx, struct meminst **mip, const struct memtype *mt); void memory_instance_destroy(struct mem_context *mctx, struct meminst *mi); +uint32_t memory_grow(struct meminst *mi, uint32_t sz); +int memory_instance_getptr2(struct meminst *meminst, uint32_t ptr, + uint32_t offset, uint32_t size, void **pp, + bool *movedp); struct globalinst; struct globaltype; int global_instance_create(struct mem_context *mctx, struct globalinst **gip, const struct globaltype *gt); void global_instance_destroy(struct mem_context *mctx, struct globalinst *gi); +void global_set(struct globalinst *ginst, const struct val *val); +void global_get(struct globalinst *ginst, struct val *val); struct tableinst; struct tabletype; int table_instance_create(struct mem_context *mctx, struct tableinst **tip, const struct tabletype *tt); void table_instance_destroy(struct mem_context *mctx, struct tableinst *ti); +void table_set(struct tableinst *tinst, uint32_t elemidx, + const struct val *val); +void table_get(struct tableinst *tinst, uint32_t elemidx, struct val *val); +int table_grow(struct tableinst *tinst, const struct val *val, uint32_t n); +int table_get_func(struct exec_context *ectx, const struct tableinst *t, + uint32_t i, const struct functype *ft, + const struct funcinst **fip); /* * create_satisfying_shared_memories: diff --git a/libdyld/dyld.c b/libdyld/dyld.c index 3efaa497..f5123801 100644 --- a/libdyld/dyld.c +++ b/libdyld/dyld.c @@ -23,7 +23,7 @@ #include "dyld_impl.h" #include "dyld_plt.h" #include "dylink_type.h" -#include "exec.h" +#include "exec_context.h" #include "fileio.h" #include "instance.h" #include "list.h" diff --git a/libdyld/dyld_dlfcn.c b/libdyld/dyld_dlfcn.c index d914a395..cf29bcb5 100644 --- a/libdyld/dyld_dlfcn.c +++ b/libdyld/dyld_dlfcn.c @@ -16,7 +16,7 @@ #include "dyld_dlfcn_abi.h" #include "dyld_impl.h" #include "endian.h" -#include "exec.h" +#include "exec_context.h" #include "host_instance.h" #include "mem.h" #include "xlog.h" diff --git a/libdyld/dyld_plt.c b/libdyld/dyld_plt.c index a9b8d761..cd1f6daa 100644 --- a/libdyld/dyld_plt.c +++ b/libdyld/dyld_plt.c @@ -4,7 +4,8 @@ #include "dyld.h" #include "dyld_impl.h" #include "dyld_plt.h" -#include "exec.h" +#include "exec_context.h" +#include "instance.h" #include "xlog.h" int