Refactor mdoel-related code
[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 <gelf.h>
8
9 typedef struct ElfuData {
10   Elf_Data data;
11
12   CIRCLEQ_ENTRY(ElfuData) elem;
13 } ElfuData;
14
15
16 typedef struct ElfuScn {
17   GElf_Shdr shdr;
18
19   CIRCLEQ_HEAD(DataList, ElfuData) dataList;
20
21   CIRCLEQ_ENTRY(ElfuScn) elem;
22 } ElfuScn;
23
24
25 typedef struct ElfuPhdr {
26   GElf_Phdr phdr;
27
28   CIRCLEQ_ENTRY(ElfuPhdr) elem;
29 } ElfuPhdr;
30
31
32 typedef struct {
33   int elfclass;
34   GElf_Ehdr ehdr;
35
36   CIRCLEQ_HEAD(ScnList, ElfuScn) scnList;
37   CIRCLEQ_HEAD(PhdrList, ElfuPhdr) phdrList;
38
39   ElfuScn *shstrtab;
40 } ElfuElf;
41
42
43 #endif