1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15 
16 #ifndef OHOS_ABILITY_RUNTIME_DYNAMIC_LOADER_H
17 #define OHOS_ABILITY_RUNTIME_DYNAMIC_LOADER_H
18 
19 #ifdef __OHOS__
20 #include <dlfcn.h>
21 #endif
22 
23 extern "C" {
24 #ifdef __OHOS__
25 void* DynamicLoadLibrary(Dl_namespace *ns, const char* dlPath, unsigned int mode);
26 #else
27 void* DynamicLoadLibrary(const char* dlPath, unsigned int mode);
28 #endif
29 void* DynamicFindSymbol(void* so, const char* symbol);
30 const char* DynamicGetError();
31 void DynamicFreeLibrary(void* so);
32 #ifdef __OHOS__
33 void DynamicInitNamespace(Dl_namespace* ns, void* parent, const char* entries, const char* name);
34 #endif
35 };
36 
37 #endif //OHOS_ABILITY_RUNTIME_DYNAMIC_LOADER_H
38