diff options
Diffstat (limited to 'llama.cpp/ggml/src/ggml-backend-dl.h')
| -rw-r--r-- | llama.cpp/ggml/src/ggml-backend-dl.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/llama.cpp/ggml/src/ggml-backend-dl.h b/llama.cpp/ggml/src/ggml-backend-dl.h new file mode 100644 index 0000000..f74b7c9 --- /dev/null +++ b/llama.cpp/ggml/src/ggml-backend-dl.h @@ -0,0 +1,45 @@ +#pragma once + +#ifdef _WIN32 +# define WIN32_LEAN_AND_MEAN +# ifndef NOMINMAX +# define NOMINMAX +# endif +# include <windows.h> +# include <winevt.h> +#else +# include <dlfcn.h> +# include <unistd.h> +#endif +#include <filesystem> + +namespace fs = std::filesystem; + +#ifdef _WIN32 + +using dl_handle = std::remove_pointer_t<HMODULE>; + +struct dl_handle_deleter { + void operator()(HMODULE handle) { + FreeLibrary(handle); + } +}; + +#else + +using dl_handle = void; + +struct dl_handle_deleter { + void operator()(void * handle) { + dlclose(handle); + } +}; + +#endif + +using dl_handle_ptr = std::unique_ptr<dl_handle, dl_handle_deleter>; + +dl_handle * dl_load_library(const fs::path & path); +void * dl_get_sym(dl_handle * handle, const char * name); +const char * dl_error(); + |
