| #ifndef _DLFCN_H |
| #define _DLFCN_H |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #include <features.h> |
| |
| #define RTLD_LAZY 1 |
| #define RTLD_NOW 2 |
| #define RTLD_NOLOAD 4 |
| #define RTLD_NODELETE 4096 |
| #define RTLD_GLOBAL 256 |
| #define RTLD_LOCAL 0 |
| |
| #define RTLD_NEXT ((void *)-1) |
| #define RTLD_DEFAULT ((void *)0) |
| |
| #define RTLD_DI_LINKMAP 2 |
| |
| int dlclose(void *); |
| char *dlerror(void); |
| void *dlopen(const char *, int); |
| void *dlsym(void *__restrict, const char *__restrict); |
| |
| #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) |
| typedef struct { |
| const char *dli_fname; |
| void *dli_fbase; |
| const char *dli_sname; |
| void *dli_saddr; |
| } Dl_info; |
| int dladdr(const void *, Dl_info *); |
| int dlinfo(void *, int, void *); |
| #endif |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif |