Clean up code using ElfuScn
[centaur.git] / include / libelfu / types.h
index b216e53a7ee03364dfa312d83cea2cfb7ef8fe16..ab9f76ceee987ede5acd898a3446c3c8bc3bf177 100644 (file)
@@ -7,51 +7,8 @@
 #include <gelf.h>
 
 
-typedef struct ElfuScn {
-  GElf_Shdr shdr;
-
-  Elf_Data data;
-
-  struct ElfuScn *linkptr;
-  struct ElfuScn *infoptr;
-
-  struct ElfuScn *oldptr;
-
-  struct ElfuSymtab *symtab;
-  struct ElfuReltab *reltab;
-
-  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;
-
-
-typedef struct {
-  int elfclass;
-  GElf_Ehdr ehdr;
-
-  CIRCLEQ_HEAD(PhdrList, ElfuPhdr) phdrList;
-  CIRCLEQ_HEAD(OrphanScnList, ElfuScn) orphanScnList;
-
-  ElfuScn *shstrtab;
-} ElfuElf;
-
-
-
-
-
 typedef struct ElfuSym {
-  char *name;
+  GElf_Word name;
 
   GElf_Addr value;
   GElf_Word size;
@@ -60,7 +17,7 @@ typedef struct ElfuSym {
   unsigned char type;
   unsigned char other;
 
-  ElfuScn *scnptr;
+  struct ElfuScn *scnptr;
   int shndx;
 
   CIRCLEQ_ENTRY(ElfuSym) elem;
@@ -94,4 +51,48 @@ typedef struct ElfuReltab {
 } ElfuReltab;
 
 
+
+
+
+
+typedef struct ElfuScn {
+  GElf_Shdr shdr;
+
+  struct ElfuScn *linkptr;
+  struct ElfuScn *infoptr;
+  char *databuf;
+
+  struct ElfuScn *oldptr;
+
+  struct ElfuSymtab symtab;
+  struct ElfuReltab reltab;
+
+  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;
+
+
+typedef struct {
+  int elfclass;
+  GElf_Ehdr ehdr;
+
+  CIRCLEQ_HEAD(PhdrList, ElfuPhdr) phdrList;
+  CIRCLEQ_HEAD(OrphanScnList, ElfuScn) orphanScnList;
+
+  ElfuScn *shstrtab;
+
+  ElfuScn *symtab;
+} ElfuElf;
+
 #endif