summaryrefslogtreecommitdiff
path: root/plugins/elf/format.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/elf/format.c')
-rw-r--r--plugins/elf/format.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/plugins/elf/format.c b/plugins/elf/format.c
index d48eef9..755bc12 100644
--- a/plugins/elf/format.c
+++ b/plugins/elf/format.c
@@ -36,6 +36,7 @@
#include "elf-int.h"
+#include "helper_arm.h"
#include "program.h"
#include "section.h"
#include "strings.h"
@@ -292,6 +293,25 @@ GBinFormat *g_elf_format_new(GBinContent *content, GExeFormat *parent, GtkStatus
}
+ /* Opérations spécifiques à l'architecture */
+
+ switch (ELF_HDR(result, result->header, e_machine))
+ {
+ case EM_ARM:
+ result->ops.get_type_desc = (get_elf_prgm_type_desc_cb)get_elf_program_arm_type_desc;
+ result->ops.fix_virt = (fix_elf_virt_addr_cb)fix_elf_arm_virtual_address;
+ result->ops.get_linkage_offset = (get_elf_linkage_offset_cb)retrieve_arm_linkage_offset;
+ break;
+
+ default:
+ log_variadic_message(LMT_ERROR, "Architecture not supported for ELF binaries");
+ goto gefn_error;
+ break;
+
+ }
+
+ /* Chargements des informations utiles */
+
/**
* On inscrit les éléments préchargés avant tout !
*