xref: /optee_os/lib/libdl/include/dlfcn.h (revision c96bced4504bd39ff8ccc57a21d29fa97aff4506)
1*c96bced4SJerome Forissier /* SPDX-License-Identifier: BSD-2-Clause */
2*c96bced4SJerome Forissier /*
3*c96bced4SJerome Forissier  * Copyright (c) 2019 Linaro limited
4*c96bced4SJerome Forissier  */
5*c96bced4SJerome Forissier 
6*c96bced4SJerome Forissier #ifndef _DLFCN_H_
7*c96bced4SJerome Forissier #define _DLFCN_H_
8*c96bced4SJerome Forissier 
9*c96bced4SJerome Forissier /* Relocations are performed when the object is loaded. */
10*c96bced4SJerome Forissier #define RTLD_NOW	2
11*c96bced4SJerome Forissier /* All symbols are available for relocation processing of other modules. */
12*c96bced4SJerome Forissier #define RTLD_GLOBAL	0x100
13*c96bced4SJerome Forissier /* Do not unload the shared object during dlclose(). */
14*c96bced4SJerome Forissier #define RTLD_NODELETE	0x1000
15*c96bced4SJerome Forissier /* Other flags are not supported */
16*c96bced4SJerome Forissier 
17*c96bced4SJerome Forissier /* Note: @flags must be (RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE) */
18*c96bced4SJerome Forissier void *dlopen(const char *filename, int flags);
19*c96bced4SJerome Forissier int dlclose(void *handle);
20*c96bced4SJerome Forissier void *dlsym(void *handle, const char *symbol);
21*c96bced4SJerome Forissier 
22*c96bced4SJerome Forissier #endif /* _DLFCN_H_ */
23