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