1#define _GNU_SOURCE
2#include <dlfcn.h>
3
4__attribute__((__visibility__("hidden")))
5int __dl_invalid_handle(void *);
6
7__attribute__((__visibility__("hidden")))
8void __dl_seterr(const char *, ...);
9
10int dlinfo(void *dso, int req, void *res)
11{
12	if (__dl_invalid_handle(dso)) return -1;
13	if (req != RTLD_DI_LINKMAP) {
14		__dl_seterr("Unsupported request %d", req);
15		return -1;
16	}
17	*(struct link_map **)res = dso;
18	return 0;
19}
20