aboutsummaryrefslogtreecommitdiff
path: root/elf.h
blob: 5d878f503ddc9c0e18eb205447dcdcdda56fcab2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef LTRACE_ELF_H
#define LTRACE_ELF_H

#include <gelf.h>
#include <stdlib.h>

#include "ltrace.h"

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 library_symbol *read_elf (const char *);

extern GElf_Addr arch_plt_sym_val (struct ltelf *, size_t, GElf_Rela *);

#endif