diff options
Diffstat (limited to 'src/format/elf/elf-int.h')
-rw-r--r-- | src/format/elf/elf-int.h | 23 |
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 */ |