Implement orphaned sections
[centaur.git] / include / libelfu / modeltypes.h
index 33a68a3d66ea27420579b4efbbd44e3bac1a2df8..bea93222f358088a38696aac2f0f1aa80c456bb1 100644 (file)
@@ -4,7 +4,7 @@
 #include <sys/queue.h>
 
 #include <elf.h>
-#include <gelf.h>
+#include <libelf/gelf.h>
 
 
 typedef struct ElfuScn {
@@ -12,6 +12,10 @@ typedef struct ElfuScn {
 
   Elf_Data data;
 
+  struct ElfuScn *linkptr;
+  struct ElfuScn *infoptr;
+
+  CIRCLEQ_ENTRY(ElfuScn) elemChildScn;
   CIRCLEQ_ENTRY(ElfuScn) elem;
 } ElfuScn;
 
@@ -19,6 +23,10 @@ typedef struct ElfuScn {
 typedef struct ElfuPhdr {
   GElf_Phdr phdr;
 
+  CIRCLEQ_HEAD(ChildScnList, ElfuScn) childScnList;
+  CIRCLEQ_HEAD(ChildPhdrList, ElfuPhdr) childPhdrList;
+
+  CIRCLEQ_ENTRY(ElfuPhdr) elemChildPhdr;
   CIRCLEQ_ENTRY(ElfuPhdr) elem;
 } ElfuPhdr;
 
@@ -29,6 +37,7 @@ typedef struct {
 
   CIRCLEQ_HEAD(ScnList, ElfuScn) scnList;
   CIRCLEQ_HEAD(PhdrList, ElfuPhdr) phdrList;
+  CIRCLEQ_HEAD(OrphanScnList, ElfuScn) orphanScnList;
 
   ElfuScn *shstrtab;
 } ElfuElf;