123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- #ifndef _LINK_H
- #define _LINK_H 1
- #include <features.h>
- #include <elf.h>
- #include <dlfcn.h>
- #include <sys/types.h>
- #define ElfW(type) _ElfW (Elf, __ELF_NATIVE_CLASS, type)
- #define _ElfW(e,w,t) _ElfW_1 (e, w, _##t)
- #define _ElfW_1(e,w,t) e##w##t
- #include <bits/elfclass.h> /* Defines __ELF_NATIVE_CLASS. */
- struct r_debug
- {
- int r_version;
- struct link_map *r_map;
-
- ElfW(Addr) r_brk;
- enum
- {
-
- RT_CONSISTENT,
- RT_ADD,
- RT_DELETE
- } r_state;
- ElfW(Addr) r_ldbase;
- };
- extern struct r_debug _r_debug;
- extern ElfW(Dyn) _DYNAMIC[];
- struct link_map
- {
-
- ElfW(Addr) l_addr;
- char *l_name;
- ElfW(Dyn) *l_ld;
- struct link_map *l_next, *l_prev;
- };
- #ifdef __USE_GNU
- struct dl_phdr_info
- {
- ElfW(Addr) dlpi_addr;
- const char *dlpi_name;
- const ElfW(Phdr) *dlpi_phdr;
- ElfW(Half) dlpi_phnum;
- };
- __BEGIN_DECLS
- extern int dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info,
- size_t size, void *data),
- void *data) __THROW;
- __END_DECLS
- #endif
- #endif
|