/src/llama.cpp/ggml/src/ggml-backend-dl.cpp
Line | Count | Source |
1 | | #include "ggml-backend-dl.h" |
2 | | |
3 | | #ifdef _WIN32 |
4 | | |
5 | | dl_handle * dl_load_library(const fs::path & path) { |
6 | | // suppress error dialogs for missing DLLs |
7 | | DWORD old_mode = SetErrorMode(SEM_FAILCRITICALERRORS); |
8 | | SetErrorMode(old_mode | SEM_FAILCRITICALERRORS); |
9 | | |
10 | | HMODULE handle = LoadLibraryW(path.wstring().c_str()); |
11 | | |
12 | | SetErrorMode(old_mode); |
13 | | |
14 | | return handle; |
15 | | } |
16 | | |
17 | | void * dl_get_sym(dl_handle * handle, const char * name) { |
18 | | DWORD old_mode = SetErrorMode(SEM_FAILCRITICALERRORS); |
19 | | SetErrorMode(old_mode | SEM_FAILCRITICALERRORS); |
20 | | |
21 | | void * p = (void *) GetProcAddress(handle, name); |
22 | | |
23 | | SetErrorMode(old_mode); |
24 | | |
25 | | return p; |
26 | | } |
27 | | |
28 | | const char * dl_error() { |
29 | | return ""; |
30 | | } |
31 | | |
32 | | #else |
33 | | |
34 | 0 | dl_handle * dl_load_library(const fs::path & path) { |
35 | 0 | dl_handle * handle = dlopen(path.string().c_str(), RTLD_NOW | RTLD_LOCAL); |
36 | 0 | return handle; |
37 | 0 | } |
38 | | |
39 | 0 | void * dl_get_sym(dl_handle * handle, const char * name) { |
40 | 0 | return dlsym(handle, name); |
41 | 0 | } |
42 | | |
43 | 0 | const char * dl_error() { |
44 | 0 | const char *rslt = dlerror(); |
45 | 0 | return rslt != nullptr ? rslt : ""; |
46 | 0 | } |
47 | | |
48 | | #endif |