1#ifndef	_DLFCN_H
2#define	_DLFCN_H
3
4#ifdef __cplusplus
5extern "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
22int    dlclose(void *);
23char  *dlerror(void);
24void  *dlopen(const char *, int);
25void  *dlsym(void *__restrict, const char *__restrict);
26
27#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
28typedef struct {
29	const char *dli_fname;
30	void *dli_fbase;
31	const char *dli_sname;
32	void *dli_saddr;
33} Dl_info;
34int dladdr(const void *, Dl_info *);
35int dlinfo(void *, int, void *);
36#endif
37
38#ifdef __cplusplus
39}
40#endif
41
42#endif
43