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