#pragma once
#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