| #ifndef SYSROOT_DLFCN_H_ |
| #define SYSROOT_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 // SYSROOT_DLFCN_H_ |