/src/llama.cpp/ggml/src/ggml-backend-dl.h
Line | Count | Source |
1 | | #pragma once |
2 | | |
3 | | #ifdef _WIN32 |
4 | | # define WIN32_LEAN_AND_MEAN |
5 | | # ifndef NOMINMAX |
6 | | # define NOMINMAX |
7 | | # endif |
8 | | # include <windows.h> |
9 | | # include <winevt.h> |
10 | | #else |
11 | | # include <dlfcn.h> |
12 | | # include <unistd.h> |
13 | | #endif |
14 | | #include <filesystem> |
15 | | |
16 | | namespace fs = std::filesystem; |
17 | | |
18 | | #ifdef _WIN32 |
19 | | |
20 | | using dl_handle = std::remove_pointer_t<HMODULE>; |
21 | | |
22 | | struct dl_handle_deleter { |
23 | | void operator()(HMODULE handle) { |
24 | | FreeLibrary(handle); |
25 | | } |
26 | | }; |
27 | | |
28 | | #else |
29 | | |
30 | | using dl_handle = void; |
31 | | |
32 | | struct dl_handle_deleter { |
33 | 0 | void operator()(void * handle) { |
34 | 0 | dlclose(handle); |
35 | 0 | } |
36 | | }; |
37 | | |
38 | | #endif |
39 | | |
40 | | using dl_handle_ptr = std::unique_ptr<dl_handle, dl_handle_deleter>; |
41 | | |
42 | | dl_handle * dl_load_library(const fs::path & path); |
43 | | void * dl_get_sym(dl_handle * handle, const char * name); |
44 | | const char * dl_error(); |
45 | | |