From eb55c2814ea295087a38331dd2f730c9c4d83f43 Mon Sep 17 00:00:00 2001 From: zhanheng1 Date: Fri, 6 Feb 2026 10:16:29 +0800 Subject: [PATCH] Remove some internal functions used by wasi-nn from wasm_export.h --- core/iwasm/common/wasm_runtime_common.c | 74 ---------------------- core/iwasm/common/wasm_runtime_common.h | 28 -------- core/iwasm/include/wasm_export.h | 34 +++------- core/iwasm/libraries/wasi-nn/src/wasi_nn.c | 22 +++---- 4 files changed, 16 insertions(+), 142 deletions(-) diff --git a/core/iwasm/common/wasm_runtime_common.c b/core/iwasm/common/wasm_runtime_common.c index fcfd2c522..d99467e7f 100644 --- a/core/iwasm/common/wasm_runtime_common.c +++ b/core/iwasm/common/wasm_runtime_common.c @@ -8179,77 +8179,3 @@ wasm_runtime_check_and_update_last_used_shared_heap( return false; } #endif - -#if WASM_ENABLE_WASI_NN != 0 || WASM_ENABLE_WASI_EPHEMERAL_NN != 0 - -uint32_t -wasm_runtime_get_wasi_nn_registry_ngraphs( - WASINNRegistry *wasi_nn_registry) -{ - if (wasi_nn_registry) - return wasi_nn_registry->n_graphs; - - return -1; -} - -char * -wasm_runtime_get_wasi_nn_registry_model_names_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx) -{ - if (wasi_nn_registry && (idx < wasi_nn_registry->n_graphs)) - return wasi_nn_registry->model_names[idx]; - - return NULL; -} - -char * -wasm_runtime_get_wasi_nn_registry_graph_paths_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx) -{ - if (wasi_nn_registry && (idx < wasi_nn_registry->n_graphs)) - return wasi_nn_registry->graph_paths[idx]; - - return NULL; -} - -uint32_t -wasm_runtime_get_wasi_nn_registry_loaded_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx) -{ - if (wasi_nn_registry && (idx < wasi_nn_registry->n_graphs)) - return wasi_nn_registry->loaded[idx]; - - return -1; -} - -uint32_t -wasm_runtime_set_wasi_nn_registry_loaded_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx, uint32_t value) -{ - if (wasi_nn_registry && (idx < wasi_nn_registry->n_graphs)) - wasi_nn_registry->loaded[idx] = value; - - return 0; -} - -char * -wasm_runtime_get_wasi_nn_registry_encoding_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx) -{ - if (wasi_nn_registry && (idx < wasi_nn_registry->n_graphs)) - return wasi_nn_registry->encoding[idx]; - - return NULL; -} - -char * -wasm_runtime_get_wasi_nn_registry_target_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx) -{ - if (wasi_nn_registry && (idx < wasi_nn_registry->n_graphs)) - return wasi_nn_registry->target[idx]; - - return NULL; -} - -#endif diff --git a/core/iwasm/common/wasm_runtime_common.h b/core/iwasm/common/wasm_runtime_common.h index 0f7b1fbce..80b0ea05f 100644 --- a/core/iwasm/common/wasm_runtime_common.h +++ b/core/iwasm/common/wasm_runtime_common.h @@ -1473,34 +1473,6 @@ wasm_runtime_get_wasi_nn_registry(WASMModuleInstanceCommon *module_inst_comm); WASM_RUNTIME_API_EXTERN void wasm_runtime_set_wasi_nn_registry(WASMModuleInstanceCommon *module_inst_comm, WASINNRegistry *wasi_nn_ctx); - -WASM_RUNTIME_API_EXTERN uint32_t -wasm_runtime_get_wasi_nn_registry_ngraphs( - WASINNRegistry *wasi_nn_registry); - -WASM_RUNTIME_API_EXTERN char * -wasm_runtime_get_wasi_nn_registry_model_names_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx); - -WASM_RUNTIME_API_EXTERN char * -wasm_runtime_get_wasi_nn_registry_graph_paths_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx); - -WASM_RUNTIME_API_EXTERN uint32_t -wasm_runtime_get_wasi_nn_registry_loaded_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx); - -WASM_RUNTIME_API_EXTERN uint32_t -wasm_runtime_set_wasi_nn_registry_loaded_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx, uint32_t value); - -WASM_RUNTIME_API_EXTERN char * -wasm_runtime_get_wasi_nn_registry_encoding_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx); - -WASM_RUNTIME_API_EXTERN char * -wasm_runtime_get_wasi_nn_registry_target_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx); #endif #ifdef __cplusplus diff --git a/core/iwasm/include/wasm_export.h b/core/iwasm/include/wasm_export.h index 37cceaef1..8f4a61cdc 100644 --- a/core/iwasm/include/wasm_export.h +++ b/core/iwasm/include/wasm_export.h @@ -797,36 +797,18 @@ wasm_runtime_instantiation_args_set_wasi_ns_lookup_pool( struct InstantiationArgs2 *p, const char *ns_lookup_pool[], uint32_t ns_lookup_pool_size); -WASM_RUNTIME_API_EXTERN WASINNRegistry * +WASM_RUNTIME_API_EXTERN struct WASINNRegistry * wasm_runtime_get_wasi_nn_registry(const wasm_module_inst_t module_inst); -WASM_RUNTIME_API_EXTERN uint32_t -wasm_runtime_get_wasi_nn_registry_ngraphs( - WASINNRegistry *wasi_nn_registry); +WASM_RUNTIME_API_EXTERN void +wasm_runtime_set_wasi_nn_registry(wasm_module_inst_t module_inst, + struct WASINNRegistry *wasi_ctx); -WASM_RUNTIME_API_EXTERN char * -wasm_runtime_get_wasi_nn_registry_model_names_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx); +WASM_RUNTIME_API_EXTERN int +wasm_runtime_wasi_nn_registry_create(struct WASINNRegistry **registryp); -WASM_RUNTIME_API_EXTERN char * -wasm_runtime_get_wasi_nn_registry_graph_paths_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx); - -WASM_RUNTIME_API_EXTERN uint32_t -wasm_runtime_get_wasi_nn_registry_loaded_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx); - -WASM_RUNTIME_API_EXTERN uint32_t -wasm_runtime_set_wasi_nn_registry_loaded_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx, uint32_t value); - -WASM_RUNTIME_API_EXTERN char * -wasm_runtime_get_wasi_nn_registry_encoding_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx); - -WASM_RUNTIME_API_EXTERN char * -wasm_runtime_get_wasi_nn_registry_target_i( - WASINNRegistry *wasi_nn_registry, uint32_t idx); +WASM_RUNTIME_API_EXTERN void +wasm_runtime_wasi_nn_registry_destroy(struct WASINNRegistry *registry); /** * Instantiate a WASM module, with specified instantiation arguments diff --git a/core/iwasm/libraries/wasi-nn/src/wasi_nn.c b/core/iwasm/libraries/wasi-nn/src/wasi_nn.c index b2cc4d111..1e63813cf 100644 --- a/core/iwasm/libraries/wasi-nn/src/wasi_nn.c +++ b/core/iwasm/libraries/wasi-nn/src/wasi_nn.c @@ -19,6 +19,7 @@ #include "bh_platform.h" #include "wasi_nn_types.h" #include "wasm_export.h" +#include "wasm_runtime_common.h" #if WASM_ENABLE_WASI_EPHEMERAL_NN == 0 #warning You are using "wasi_nn", which is a legacy WAMR-specific ABI. It is deperecated and will likely be removed in future versions of WAMR. Please use "wasi_ephemeral_nn" instead. (For a WASM module, use the wasi_ephemeral_nn.h header instead. For the runtime configurations, enable WASM_ENABLE_WASI_EPHEMERAL_NN/WAMR_BUILD_WASI_EPHEMERAL_NN.) @@ -618,27 +619,21 @@ wasi_nn_load_by_name(wasm_exec_env_t exec_env, char *name, uint32_t name_len, bool is_loaded = false; uint32 model_idx = 0; uint32_t global_n_graphs = - wasm_runtime_get_wasi_nn_registry_ngraphs(wasi_nn_registry); + wasi_nn_registry->n_graphs; for (model_idx = 0; model_idx < global_n_graphs; model_idx++) { - char *model_name = wasm_runtime_get_wasi_nn_registry_model_names_i( - wasi_nn_registry, model_idx); + char *model_name = wasi_nn_registry->model_names[model_idx]; if (model_name && strcmp(nul_terminated_name, model_name) != 0) { continue; } - is_loaded = wasm_runtime_get_wasi_nn_registry_loaded_i( - wasi_nn_registry, model_idx); - char *global_model_path_i = - wasm_runtime_get_wasi_nn_registry_graph_paths_i( - wasi_nn_registry, model_idx); + is_loaded = wasi_nn_registry->loaded[model_idx]; + char *global_model_path_i = wasi_nn_registry->graph_paths[model_idx]; graph_encoding encoding = - str2encoding(wasm_runtime_get_wasi_nn_registry_encoding_i( - wasi_nn_registry, model_idx)); + str2encoding(wasi_nn_registry->encoding[model_idx]); execution_target target = - str2target(wasm_runtime_get_wasi_nn_registry_target_i( - wasi_nn_registry, model_idx)); + str2target(wasi_nn_registry->target[model_idx]); // res = ensure_backend(instance, autodetect, wasi_nn_ctx); res = ensure_backend(instance, encoding, wasi_nn_ctx); @@ -655,8 +650,7 @@ wasi_nn_load_by_name(wasm_exec_env_t exec_env, char *name, uint32_t name_len, if (res != success) goto fail; - wasm_runtime_set_wasi_nn_registry_loaded_i(wasi_nn_registry, - model_idx, 1); + wasi_nn_registry->loaded[model_idx] = 1; res = success; break; }