dladdr support for dynamic linker (nonstandard extension)
[musl] / include / dlfcn.h
index cdca9ec..e98c8ca 100644 (file)
@@ -1,19 +1,35 @@
 #ifndef        _DLFCN_H
 #define        _DLFCN_H
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define RTLD_LAZY   1
 #define RTLD_NOW    2
 #define RTLD_GLOBAL 256
 #define RTLD_LOCAL  0
 
-#if 1
-#define RTLD_NEXT    ((void *) -1l)
-#define RTLD_DEFAULT ((void *) 0)
-#endif
+#define RTLD_NEXT    ((void *)-1)
+#define RTLD_DEFAULT ((void *)0)
 
 int    dlclose(void *);
 char  *dlerror(void);
 void  *dlopen(const char *, int);
 void  *dlsym(void *, const char *);
 
+#ifdef _GNU_SOURCE
+typedef struct {
+       const char *dli_fname;
+       void *dli_fbase;
+       const char *dli_sname;
+       void *dli_saddr;
+} Dl_info;
+int dladdr(void *, Dl_info *);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif