move dlinfo out of dynlink.c
[oweals/musl.git] / src / ldso / dlinfo.c
1 #define _GNU_SOURCE
2 #include <dlfcn.h>
3
4 __attribute__((__visibility__("hidden")))
5 int __dl_invalid_handle(void *);
6
7 __attribute__((__visibility__("hidden")))
8 void __dl_seterr(const char *, ...);
9
10 int 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 }