diff options
Diffstat (limited to 'plugins/elf/elf-int.h')
-rw-r--r-- | plugins/elf/elf-int.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/plugins/elf/elf-int.h b/plugins/elf/elf-int.h index 3b4b67c..291000d 100644 --- a/plugins/elf/elf-int.h +++ b/plugins/elf/elf-int.h @@ -34,6 +34,27 @@ +/* Fournit la description humaine d'un type de segment ELF. */ +typedef const char * (* get_elf_prgm_type_desc_cb) (uint32_t); + +/* Fournit une adresse virtuelle prête à emploi. */ +typedef virt_t (* fix_elf_virt_addr_cb) (virt_t); + +/* Retrouve le décalage appliqué lors d'une résolution. */ +typedef bool (* get_elf_linkage_offset_cb) (GElfFormat *, const mrange_t *, uint64_t *); + + + +/* Particularités propre aux architectures */ +typedef struct _elf_arch_ops +{ + get_elf_prgm_type_desc_cb get_type_desc;/* Description de type */ + fix_elf_virt_addr_cb fix_virt; /* Retire toute forme d'infos */ + get_elf_linkage_offset_cb get_linkage_offset; /* Décalage de relocation*/ + +} elf_arch_ops; + + /* Format d'exécutable générique (instance) */ struct _GElfFormat { @@ -43,6 +64,8 @@ struct _GElfFormat bool is_32b; /* Format du binaire */ SourceEndian endian; /* Boutisme du format */ + elf_arch_ops ops; /* Opérations spécifiques */ + }; /* Format d'exécutable générique (classe) */ |