aboutsummaryrefslogtreecommitdiff
path: root/elf.h
diff options
context:
space:
mode:
authorJuan Cespedes <cespedes@debian.org>2004-11-10 00:15:33 +0100
committerJuan Cespedes <cespedes@debian.org>2004-11-10 00:15:33 +0100
commitd914a206a11cc1011a45f00674b1e16988fae77f (patch)
tree77b4ecf3d7c51911e04566cce1c2319715448faf /elf.h
parent337ea4581657020f6e9ae93e30cb4a7ddd993903 (diff)
downloadltrace-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.h39
1 files changed, 19 insertions, 20 deletions
diff --git a/elf.h b/elf.h
index 26c6a14..5d878f5 100644
--- a/elf.h
+++ b/elf.h
@@ -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