#include <sys/queue.h>
#include <elf.h>
-#include <gelf.h>
-
-typedef struct ElfuData {
- Elf_Data data;
-
- CIRCLEQ_ENTRY(ElfuData) elem;
-} ElfuData;
+#include <libelf/gelf.h>
typedef struct ElfuScn {
GElf_Shdr shdr;
- CIRCLEQ_HEAD(DataList, ElfuData) dataList;
+ Elf_Data data;
+
+ struct ElfuScn *linkptr;
+ struct ElfuScn *infoptr;
+ CIRCLEQ_ENTRY(ElfuScn) elemChildScn;
CIRCLEQ_ENTRY(ElfuScn) elem;
} 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;
CIRCLEQ_HEAD(ScnList, ElfuScn) scnList;
CIRCLEQ_HEAD(PhdrList, ElfuPhdr) phdrList;
+ CIRCLEQ_HEAD(OrphanScnList, ElfuScn) orphanScnList;
ElfuScn *shstrtab;
} ElfuElf;