summaryrefslogtreecommitdiff
path: root/src/ldso/dlinfo.c
blob: a173d1ac63ef1294decefa6b00db9a9bd7f35ce6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#define _GNU_SOURCE
#include <dlfcn.h>

__attribute__((__visibility__("hidden")))
int __dl_invalid_handle(void *);

__attribute__((__visibility__("hidden")))
void __dl_seterr(const char *, ...);

int dlinfo(void *dso, int req, void *res)
{
	if (__dl_invalid_handle(dso)) return -1;
	if (req != RTLD_DI_LINKMAP) {
		__dl_seterr("Unsupported request %d", req);
		return -1;
	}
	*(struct link_map **)res = dso;
	return 0;
}