summaryrefslogtreecommitdiff
path: root/src/format/elf/elf_def.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2015-01-31 00:55:26 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2015-01-31 00:55:26 (GMT)
commit21a05df6423bdc13ca148ff2b96aec80bf7af2b2 (patch)
tree87043734800103178ee49e771dcacab18b19cc74 /src/format/elf/elf_def.h
parentd246c98c515cb44c5bc4c742a674bae2e824872b (diff)
Defined many entry points from many identified potential candidates.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@463 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/format/elf/elf_def.h')
-rw-r--r--src/format/elf/elf_def.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/format/elf/elf_def.h b/src/format/elf/elf_def.h
index b02469a..a43b417 100644
--- a/src/format/elf/elf_def.h
+++ b/src/format/elf/elf_def.h
@@ -278,7 +278,7 @@ typedef union _elf_phdr
} elf_phdr;
-#define ELF_PHDR(fmt, hdr, fld) (fmt->is_32b ? hdr.phdr32.fld : hdr.phdr64.fld)
+#define ELF_PHDR(fmt, hdr, fld) (fmt->is_32b ? (hdr).phdr32.fld : (hdr).phdr64.fld)
#define ELF_SIZEOF_PHDR(fmt) (fmt->is_32b ? sizeof(elf32_phdr) : sizeof(elf64_phdr))
@@ -481,6 +481,20 @@ typedef union _elf_dyn
#define DT_JMPREL 23 /* Relocalisations PLT */
+#define DT_PLTGOT 3 /* Processor defined value */
+
+#define DT_INIT 12 /* Address of init function */
+#define DT_FINI 13 /* Address of termination function */
+
+#define DT_INIT_ARRAY 25 /* Array with addresses of init fct */
+#define DT_FINI_ARRAY 26 /* Array with addresses of fini fct */
+#define DT_INIT_ARRAYSZ 27 /* Size in bytes of DT_INIT_ARRAY */
+#define DT_FINI_ARRAYSZ 28 /* Size in bytes of DT_FINI_ARRAY */
+
+#define DT_PREINIT_ARRAY 32 /* Array with addresses of preinit fct*/
+#define DT_PREINIT_ARRAYSZ 33 /* size in bytes of DT_PREINIT_ARRAY */
+
+
/* ---------------------------- SYMBOLES DE BINAIRES ELF ---------------------------- */
@@ -517,7 +531,7 @@ typedef union _elf_sym
} elf_sym;
-#define ELF_SYM(fmt, sb, fld) (fmt->is_32b ? sb.sym32.fld : sb.sym64.fld)
+#define ELF_SYM(fmt, sb, fld) (fmt->is_32b ? (sb).sym32.fld : (sb).sym64.fld)
#define ELF_ST_BIND(fmt, sym) (fmt->is_32b ? ELF32_ST_BIND(sym.sym32.st_info) : ELF64_ST_BIND(sym.sym64.st_info))
#define ELF_ST_TYPE(fmt, sym) (fmt->is_32b ? ELF32_ST_TYPE(sym.sym32.st_info) : ELF64_ST_TYPE(sym.sym64.st_info))
@@ -568,7 +582,7 @@ typedef union _elf_rel
} elf_rel;
-#define ELF_REL(fmt, rl, fld) (fmt->is_32b ? rl.rel32.fld : rl.rel64.fld)
+#define ELF_REL(fmt, rl, fld) (fmt->is_32b ? (rl).rel32.fld : (rl).rel64.fld)
#define ELF_REL_SYM(fmt, rl) (fmt->is_32b ? ELF32_R_SYM(rl.rel32.r_info) : ELF64_R_SYM(rl.rel64.r_info))
#define ELF_REL_TYPE(fmt, rl) (fmt->is_32b ? ELF32_R_TYPE(rl.rel32.r_info) : ELF64_R_TYPE(rl.rel64.r_info))