summaryrefslogtreecommitdiff
path: root/src/format/elf/elf-int.h
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2008-10-12 20:54:54 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2008-10-12 20:54:54 (GMT)
commit43f740ee35b452980e8d190660896a535816dfc3 (patch)
tree8ed84ae291950efd4d37a1dd553e3caac4290fc9 /src/format/elf/elf-int.h
parentc1b34ed255813ad28bf69fc28592d4cd253f7248 (diff)
Provided default code parts to analyze.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@34 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/format/elf/elf-int.h')
-rw-r--r--src/format/elf/elf-int.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/format/elf/elf-int.h b/src/format/elf/elf-int.h
index 2ec33c3..f366c71 100644
--- a/src/format/elf/elf-int.h
+++ b/src/format/elf/elf-int.h
@@ -50,6 +50,7 @@ struct _elf_format
exe_format dummy; /* A laisser en premier */
Elf32_Ehdr header; /* En-tête du format */
+ bool is_32b; /* Format du binaire */
char *sec_names; /* Noms des sections */
size_t sec_size; /* Taille de ces définitions */
@@ -61,6 +62,28 @@ struct _elf_format
+/* En-tête de section ELF */
+typedef union _Elf_Shdr
+{
+ Elf32_Shdr section32; /* Version 32 bits */
+ Elf64_Shdr section64; /* Version 64 bits */
+
+} Elf_Shdr;
+
+#define ELF_SHDR(fmt, sec, fld) (fmt->is_32b ? sec.section32.fld : sec.section64.fld)
+
+
+/* En-tête de programme ELF */
+typedef union _Elf_Phdr
+{
+ Elf32_Phdr header32; /* Version 32 bits */
+ Elf64_Phdr header64; /* Version 64 bits */
+
+} Elf_Phdr;
+
+#define ELF_PHDR(fmt, hdr, fld) (fmt->is_32b ? hdr.header32.fld : hdr.header64.fld)
+
+
#endif /* _FORMAT_ELF_ELF_INT_H */