dlinfo.c 369 B

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