From b1ef302991577ce1ab0913e71848436542f71ad1 Mon Sep 17 00:00:00 2001 From: hongruichen Date: Wed, 17 Jul 2024 12:21:33 +0800 Subject: [PATCH] refactoring: remove depend of dlsym at utils.hpp --- ggml/src/ggml-qnn/qnn-lib.hpp | 13 +++++++++---- ggml/src/ggml-qnn/utils.hpp | 5 ----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ggml/src/ggml-qnn/qnn-lib.hpp b/ggml/src/ggml-qnn/qnn-lib.hpp index 7307c9f63..a676f9895 100644 --- a/ggml/src/ggml-qnn/qnn-lib.hpp +++ b/ggml/src/ggml-qnn/qnn-lib.hpp @@ -36,6 +36,11 @@ inline int dl_unload(dl_handler_t handle) { return dlclose(handle); } inline const char *dl_error() { return dlerror(); } +template +Fn dl_sym_typed(dl_handler_t handle, const std::string &function_name) { + return reinterpret_cast(dl_sym(handle, function_name)); +} + // ================================================================================================= // // wrapper class of Qualcomm QNN(Qualcomm Neural Network, aka Qualcomm AI Engine Direct) SDK @@ -722,8 +727,8 @@ private: return 1; } - auto *get_providers = reinterpret_cast( - dl_sym(system_lib_handle, "QnnSystemInterface_getProviders")); + auto *get_providers = dl_sym_typed( + system_lib_handle, "QnnSystemInterface_getProviders"); if (!get_providers) { QNN_LOG_WARN("can not load QNN symbol QnnSystemInterface_getProviders: %s\n", dl_error()); return 2; @@ -784,8 +789,8 @@ private: return 1; } - auto get_providers = qnn::load_qnn_functionpointers( - lib_handle, "QnnInterface_getProviders"); + auto get_providers = + qnn::dl_sym_typed(lib_handle, "QnnInterface_getProviders"); if (!get_providers) { QNN_LOG_WARN("can not load symbol QnnInterface_getProviders : %s", dl_error()); return 2; diff --git a/ggml/src/ggml-qnn/utils.hpp b/ggml/src/ggml-qnn/utils.hpp index 4a01347d0..66c3eeba4 100644 --- a/ggml/src/ggml-qnn/utils.hpp +++ b/ggml/src/ggml-qnn/utils.hpp @@ -24,11 +24,6 @@ uint32_t get_ggml_tensor_data_size(const ggml_tensor *tensor); const char *opname_from_ggmlop(enum ggml_op ggmlop); -template -Fn load_qnn_functionpointers(void *handle, const char *function_name) { - return reinterpret_cast(dlsym(handle, function_name)); -} - inline int validate_tensor_version(const Qnn_Tensor_t &tensor) { if (tensor.version != QNN_TENSOR_VERSION_1) { QNN_LOG_WARN("validate_tensor_version() tensor %s, got unsupported version %d\n", tensor.v1.name,