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