summaryrefslogtreecommitdiff
path: root/src/format/elf/elf-int.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2008-10-19 15:05:04 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2008-10-19 15:05:04 (GMT)
commit10deb6bbbeeaacfec577f5b24c5f821492af77f3 (patch)
tree9db0a1679c518f6a95cdb25e38c7a281b8ea30c1 /src/format/elf/elf-int.h
parent43f740ee35b452980e8d190660896a535816dfc3 (diff)
Registered symbols found in the PLT.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@35 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/format/elf/elf-int.h')
-rw-r--r--src/format/elf/elf-int.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/format/elf/elf-int.h b/src/format/elf/elf-int.h
index f366c71..6e7bca1 100644
--- a/src/format/elf/elf-int.h
+++ b/src/format/elf/elf-int.h
@@ -84,6 +84,39 @@ typedef union _Elf_Phdr
#define ELF_PHDR(fmt, hdr, fld) (fmt->is_32b ? hdr.header32.fld : hdr.header64.fld)
+/* Entrée de la table de relocalisation */
+
+typedef union _Elf_Rel
+{
+ Elf32_Rel rel32; /* Version 32 bits */
+ Elf64_Rel rel64; /* Version 64 bits */
+
+} Elf_Rel;
+
+#define ELF_SIZEOF_REL(fmt) (fmt->is_32b ? sizeof(Elf32_Rel) : sizeof(Elf64_Rel))
+
+#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))
+
+
+/* Information sur un symbole */
+
+typedef union _Elf_Sym
+{
+ Elf32_Sym sym32; /* Version 32 bits */
+ Elf64_Sym sym64; /* Version 64 bits */
+
+} Elf_Sym;
+
+#define ELF_SIZEOF_SYM(fmt) (fmt->is_32b ? sizeof(Elf32_Sym) : sizeof(Elf64_Sym))
+
+#define ELF_SYM(fmt, sb, fld) (fmt->is_32b ? sb.sym32.fld : sb.sym64.fld)
+
+
+
+
#endif /* _FORMAT_ELF_ELF_INT_H */