Abstract model more - break 'make check'
[centaur.git] / include / libelfu / modeltypes.h
1 #ifndef __LIBELFU_MODELTYPES_H__
2 #define __LIBELFU_MODELTYPES_H__
3
4 #include <sys/queue.h>
5
6 #include <elf.h>
7 #include <libelf/gelf.h>
8
9
10 typedef struct ElfuScn {
11   GElf_Shdr shdr;
12
13   Elf_Data data;
14
15   struct ElfuScn *link;
16
17   CIRCLEQ_ENTRY(ElfuScn) elemPhdrToScn;
18   CIRCLEQ_ENTRY(ElfuScn) elem;
19 } ElfuScn;
20
21
22 typedef struct ElfuPhdr {
23   GElf_Phdr phdr;
24
25   CIRCLEQ_HEAD(PhdrToScnList, ElfuScn) phdrToScnList;
26
27   CIRCLEQ_ENTRY(ElfuPhdr) elem;
28 } ElfuPhdr;
29
30
31 typedef struct {
32   int elfclass;
33   GElf_Ehdr ehdr;
34
35   CIRCLEQ_HEAD(ScnList, ElfuScn) scnList;
36   CIRCLEQ_HEAD(PhdrList, ElfuPhdr) phdrList;
37
38   ElfuScn *shstrtab;
39 } ElfuElf;
40
41
42 #endif