Juan Cespedes | 1cd999a | 2001-07-03 00:46:04 +0200 | [diff] [blame] | 1 | #ifndef LTRACE_ELF_H |
| 2 | #define LTRACE_ELF_H |
| 3 | |
| 4 | #include <elf.h> |
Juan Cespedes | 5e01f65 | 1998-03-08 22:31:44 +0100 | [diff] [blame] | 5 | #include "ltrace.h" |
Juan Cespedes | 96935a9 | 1997-08-09 23:45:39 +0200 | [diff] [blame] | 6 | |
Juan Cespedes | efe85f0 | 2004-04-04 01:31:38 +0200 | [diff] [blame] | 7 | #if ELFSIZE == 64 |
| 8 | #define Elf_Sym Elf64_Sym |
| 9 | #define Elf_Ehdr Elf64_Ehdr |
| 10 | #define Elf_Shdr Elf64_Shdr |
| 11 | #else |
| 12 | #define Elf_Sym Elf32_Sym |
| 13 | #define Elf_Ehdr Elf32_Ehdr |
| 14 | #define Elf_Shdr Elf32_Shdr |
| 15 | #endif |
| 16 | |
Juan Cespedes | 1cd999a | 2001-07-03 00:46:04 +0200 | [diff] [blame] | 17 | struct ltelf { |
| 18 | int fd; |
| 19 | void* maddr; |
Juan Cespedes | efe85f0 | 2004-04-04 01:31:38 +0200 | [diff] [blame] | 20 | Elf_Ehdr* ehdr; |
Juan Cespedes | 1cd999a | 2001-07-03 00:46:04 +0200 | [diff] [blame] | 21 | char* strtab; |
Juan Cespedes | efe85f0 | 2004-04-04 01:31:38 +0200 | [diff] [blame] | 22 | Elf_Sym* symtab; |
Juan Cespedes | 1cd999a | 2001-07-03 00:46:04 +0200 | [diff] [blame] | 23 | int symtab_len; |
| 24 | }; |
| 25 | |
| 26 | extern int library_num; |
| 27 | extern char *library[MAX_LIBRARY]; |
| 28 | extern struct ltelf library_lte[MAX_LIBRARY]; |
| 29 | |
Juan Cespedes | 5e01f65 | 1998-03-08 22:31:44 +0100 | [diff] [blame] | 30 | extern struct library_symbol * read_elf(const char *); |
Juan Cespedes | 96935a9 | 1997-08-09 23:45:39 +0200 | [diff] [blame] | 31 | |
Juan Cespedes | 1cd999a | 2001-07-03 00:46:04 +0200 | [diff] [blame] | 32 | #endif |