blob: 26c6a142b50fe094d39e8dced75f0ca8be49e986 [file] [log] [blame]
Juan Cespedes1cd999a2001-07-03 00:46:04 +02001#ifndef LTRACE_ELF_H
2#define LTRACE_ELF_H
3
4#include <elf.h>
Juan Cespedes5e01f651998-03-08 22:31:44 +01005#include "ltrace.h"
Juan Cespedes96935a91997-08-09 23:45:39 +02006
Juan Cespedesefe85f02004-04-04 01:31:38 +02007#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 Cespedes1cd999a2001-07-03 00:46:04 +020017struct ltelf {
18 int fd;
19 void* maddr;
Juan Cespedesefe85f02004-04-04 01:31:38 +020020 Elf_Ehdr* ehdr;
Juan Cespedes1cd999a2001-07-03 00:46:04 +020021 char* strtab;
Juan Cespedesefe85f02004-04-04 01:31:38 +020022 Elf_Sym* symtab;
Juan Cespedes1cd999a2001-07-03 00:46:04 +020023 int symtab_len;
24};
25
26extern int library_num;
27extern char *library[MAX_LIBRARY];
28extern struct ltelf library_lte[MAX_LIBRARY];
29
Juan Cespedes5e01f651998-03-08 22:31:44 +010030extern struct library_symbol * read_elf(const char *);
Juan Cespedes96935a91997-08-09 23:45:39 +020031
Juan Cespedes1cd999a2001-07-03 00:46:04 +020032#endif