link.h 521 B

12345678910111213141516171819202122232425262728
  1. /*
  2. * Copyright (c) 2021, Gunnar Beutner <gunnar@beutner.name>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #ifndef __serenity__
  8. # include <LibC/elf.h>
  9. #else
  10. # include <elf.h>
  11. #endif
  12. #include <limits.h>
  13. #include <sys/cdefs.h>
  14. __BEGIN_DECLS
  15. struct dl_phdr_info {
  16. ElfW(Addr) dlpi_addr;
  17. const char* dlpi_name;
  18. const ElfW(Phdr) * dlpi_phdr;
  19. ElfW(Half) dlpi_phnum;
  20. };
  21. int dl_iterate_phdr(int (*callback)(struct dl_phdr_info* info, size_t size, void* data), void* data);
  22. __END_DECLS