jcs's openbsd hax
openbsd
1/* $OpenBSD: link_elf.h,v 1.8 2022/01/28 04:59:15 guenther Exp $ */
2
3/*
4 * Public domain.
5 */
6
7#ifndef _LINK_ELF_H
8#define _LINK_ELF_H
9
10#include <elf_abi.h>
11
12#ifndef DT_PROCNUM
13#define DT_PROCNUM 0
14#endif
15
16/*
17 * struct link_map is a part of the protocol between the debugger and
18 * ld.so. ld.so may have additional fields in its version of this
19 * structure but those are ld.so private fields.
20 */
21struct link_map {
22 caddr_t l_addr; /* Base address of library */
23 const char *l_name; /* Absolute path to library */
24 void *l_ld; /* pointer to _DYNAMIC */
25 struct link_map *l_next;
26 struct link_map *l_prev;
27};
28
29struct dl_phdr_info {
30 Elf_Addr dlpi_addr;
31 const char *dlpi_name;
32 const Elf_Phdr *dlpi_phdr;
33 Elf_Half dlpi_phnum;
34};
35
36__BEGIN_DECLS
37int dl_iterate_phdr (int (*)(struct dl_phdr_info *, size_t, void *),
38 void *);
39void *dl_unwind_find_exidx(const void *, int *);
40__END_DECLS
41
42#endif /* !_LINK_ELF_H */