link.h 539 B

123456789101112131415161718192021222324252627
  1. #ifndef _LINK_H
  2. #define _LINK_H
  3. #include <elf.h>
  4. #define __NEED_size_t
  5. #include <bits/alltypes.h>
  6. #if UINTPTR_MAX > 0xffffffff
  7. #define ElfW(type) Elf64_ ## type
  8. #else
  9. #define ElfW(type) Elf32_ ## type
  10. #endif
  11. struct dl_phdr_info {
  12. ElfW(Addr) dlpi_addr;
  13. const char *dlpi_name;
  14. const ElfW(Phdr) *dlpi_phdr;
  15. ElfW(Half) dlpi_phnum;
  16. unsigned long long int dlpi_adds;
  17. unsigned long long int dlpi_subs;
  18. size_t dlpi_tls_modid;
  19. void *dlpi_tls_data;
  20. };
  21. int dl_iterate_phdr(int (*)(struct dl_phdr_info *, size_t, void *), void *);
  22. #endif