67a5c8436231e723caddad794994c11b4fc4cd1d
[elfdbg/.git] / elf.h
1 #ifndef ELFDBG_ELF_H
2 #define ELFDBG_ELF_H 1
3
4 #include <elf.h>
5 #include <sys/stat.h>
6
7 #include "compat.h"
8
9 typedef struct Elf_Obj {
10     int         fd; /* file descriptor */
11     struct stat sb; /* file stat */
12     char        *mm; /* memory mapping */
13     char        *strtab; /* string table */
14     size_t      strtab_size; /* string table size */
15     Elf_Ehdr    *ehdr; /* header pointer */
16     size_t      ehdr_size; /* header size */
17     Elf_Shdr    *shdr; /* section header pointer */
18     size_t      shdr_size; /* section header size */
19 } Elf_Obj;
20
21 Elf_Obj *elf_init(const char *);
22 int elf_destroy(Elf_Obj *);
23 Elf_Shdr *elf_strtab(Elf_Obj *);
24 char *elf_str_get(Elf_Obj *, int);
25 int elf_debug(Elf_Obj *);
26 void elf_debug_print(Elf_Obj *);
27
28 #endif /* ELFDBG_ELF_H */