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