diff options
author | Juan Cespedes <cespedes@debian.org> | 2004-11-10 00:15:33 +0100 |
---|---|---|
committer | Juan Cespedes <cespedes@debian.org> | 2004-11-10 00:15:33 +0100 |
commit | d914a206a11cc1011a45f00674b1e16988fae77f (patch) | |
tree | 77b4ecf3d7c51911e04566cce1c2319715448faf /elf.h | |
parent | 337ea4581657020f6e9ae93e30cb4a7ddd993903 (diff) | |
download | ltrace-d914a206a11cc1011a45f00674b1e16988fae77f.tar.gz |
Version: 0.3.36
* Fixed "--indent" option
* Got rid of Debian and RedHat specific parts in tarball
Diffstat (limited to 'elf.h')
-rw-r--r-- | elf.h | 39 |
1 files changed, 19 insertions, 20 deletions
@@ -1,32 +1,31 @@ #ifndef LTRACE_ELF_H #define LTRACE_ELF_H -#include <elf.h> -#include "ltrace.h" +#include <gelf.h> +#include <stdlib.h> -#if ELFSIZE == 64 -#define Elf_Sym Elf64_Sym -#define Elf_Ehdr Elf64_Ehdr -#define Elf_Shdr Elf64_Shdr -#else -#define Elf_Sym Elf32_Sym -#define Elf_Ehdr Elf32_Ehdr -#define Elf_Shdr Elf32_Shdr -#endif +#include "ltrace.h" -struct ltelf { - int fd; - void* maddr; - Elf_Ehdr* ehdr; - char* strtab; - Elf_Sym* symtab; - int symtab_len; +struct ltelf +{ + int fd; + Elf *elf; + GElf_Ehdr ehdr; + Elf_Data *dynsym; + size_t dynsym_count; + const char *dynstr; + GElf_Addr plt_addr; + Elf_Data *relplt; + size_t relplt_count; + Elf32_Word *hash; + int hash_malloced; }; extern int library_num; extern char *library[MAX_LIBRARY]; -extern struct ltelf library_lte[MAX_LIBRARY]; -extern struct library_symbol * read_elf(const char *); +extern struct library_symbol *read_elf (const char *); + +extern GElf_Addr arch_plt_sym_val (struct ltelf *, size_t, GElf_Rela *); #endif |