|
/* $OpenBSD: link_elf.h,v 1.6 2006/02/06 16:51:50 jmc 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 *);
|
|
__END_DECLS
|
|
|
|
#endif /* !_LINK_ELF_H */
|