1 #ifndef	_DLFCN_H
2 #define	_DLFCN_H
3 
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 
8 #include <features.h>
9 
10 #define RTLD_LAZY   1
11 #define RTLD_NOW    2
12 #define RTLD_NOLOAD 4
13 #define RTLD_NODELETE 4096
14 #define RTLD_GLOBAL 256
15 #define RTLD_LOCAL  0
16 
17 #define RTLD_NEXT    ((void *)-1)
18 #define RTLD_DEFAULT ((void *)0)
19 
20 #define RTLD_DI_LINKMAP 2
21 
22 int    dlclose(void *);
23 char  *dlerror(void);
24 void  *dlopen(const char *, int);
25 void  *dlsym(void *__restrict, const char *__restrict);
26 
27 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
28 typedef struct {
29 	const char *dli_fname;
30 	void *dli_fbase;
31 	const char *dli_sname;
32 	void *dli_saddr;
33 } Dl_info;
34 int dladdr(const void *, Dl_info *);
35 int dlinfo(void *, int, void *);
36 #endif
37 
38 #if _REDIR_TIME64
39 __REDIR(dlsym, __dlsym_time64);
40 #endif
41 
42 #ifdef __cplusplus
43 }
44 #endif
45 
46 #endif
47